第五课Failover故障切换
F5负载均衡器双机切换机制及配置
F5负载均衡器双机切换触发机制及配置1 F5双机的切换触发机制1.1 F5双机的通信机制F5负载均衡器的主备机之间的心跳信息可以通过以下两种方式进行交互:●通过F5 failover 串口线交换心跳信息(电压信号不断地由一方送到另外一方)处于Standby的系统不断监控Failover上的电平,一旦发现电平降低,Standby Unit会立即变成Active,会发生切换(Failover)。
通过串口监控电平信号引起的切换可以在一秒中以内完成(大概200~300ms)。
四层交换机在系统启动的时候也会监控Failover线缆的电平以决定系统是处于Active状态还是Standby状态。
在串口Failover线缆上不传输任何数据信息。
●Failover线缆也可以不采用串口线,而直接采用网络线。
(但F5不建议这样做,因为网络层故障就可能会两台负载均衡器都处于Active状态)。
如果采用网络层监控实现Failover, Bigip将通过1027与1028端口交换心跳信息。
经验证明:两台F5之间一定要用failover cable连接起来,不连接failover cable而直接采用网络线连接在一起不可靠,而且造成了网上事故。
F5双机之间的数据信息是通过网络来完成的。
因此运行于HA方式的两台F5设备在网络层必须是相通的。
(可以用网线将两台F5设备直接相连起来,也可以通过其它的二层设备将两台F5设备相连,使F5设备在网络上可以连通对端的Failover IP地址)。
两台运行于HA方式的四层交换机之间通过网络层交互的信息主要包括:●用于配置同步的信息:通过手工执行config sync会引起Active到Standby系统的配置信息传输。
●用于在发生Failover时连接维持的信息:如果设置了Connection Mirroring,处于Active的四层交换机会将连接表每十秒中发送一次到Standby的系统。
failover
Failover1 Failover OverviewFailover特性是Cisco安全产品高可用性的一个解决方案,目的是为了提供不间断的服务,当主设备down掉的时候,备用设备能够马上接管主设备的工作,进而保持通信的连通性;Failover配置要求两个进行Failover的设备通过专用的failover线缆和可选的Stateful Failover线缆互相连接;活动设备的接口被monitor,用于发现是否要进行Failover切换;Failover分为failover和Stateful Failover,即故障切换和带状态的故障切换;不带状态的failover在进行切换的时候,所有活动的连接信息都会丢失,所有Client都需要重新建立连接信息,那么这会导致流量的间断;带状态的failover,主设备将配置信息拷贝给备用设备的同时,也会把自己的连接状态信息拷贝给备用设备,那么当主的设备down的时候,由于备用设备上保存有连接信息,因此Client不需要重新建立连接,那么也就不会导致流量的中断;Failover link两个failover设备频繁的在failover link上进行通信,进而检测对等体的状态。
以下信息是通过failover link通信的信息:设备状态(active or standby);电源状态(只用于基于线缆的failover;)Hello messages (keep-alives);Network link 状态;MAC地址交换;配置的复制和同步;(Note :所有通过failover 和stateful failover线缆的信息都是以明文传送的,除非你使用failover key来对信息进行加密;)在stateful link上,拷贝给备用设备的连接状态信息有:NAT 转换表;TCP连接状态;UDP连接状态;ARP表2层转发表(运行在透明模式的时候)HTTP连接状态信息(如果启用了HTTP复制)ISAKMP和IPSec SA表GTP PDP连接数据库以下信息不会拷贝给备用设备:HTTP连接状态信息(除非启用了HTTP复制)用户认证表(uauth)路由表DHCP服务器地址租期Failover包括LAN-Based Failover和Cable-Based Failover;对于PIX设备,只支持基于线缆(Cable-Based)的Failover;Failover linkLAN-Based Failover link可以使用未使用的接口来作为failover link。
第五课.Failover(故障切换)
蓝狐网络技术培训学校
5.1 故障恢复产生背景
● 传统备份组网方案适用于接入点是路由器等转发设备的情况。因为经过设 传统备份组网方案适用于接入点是路由器等转发设备的情况。 备的每个报文都是查找转发表进行转发,链路切换后, 备的每个报文都是查找转发表进行转发,链路切换后,后续报文的转发不 受影响。 受影响。 ● 但是当接入点是状态防火墙等设备时,由于状态防火墙是基于连接状态的, 但是当接入点是状态防火墙等设备时,由于状态防火墙是基于连接状态的, 当用户发起会话时,状态防火墙只会对会话的首包进行检查,如果首包允 当用户发起会话时,状态防火墙只会对会话的首包进行检查, 许通过则会建立一个会话表项(表项里包括源IP、源端口、目的IP、 许通过则会建立一个会话表项(表项里包括源IP、源端口、目的IP、目的 IP IP 端口等信息),只有匹配该会话表项的后续报文(包括返回报文) 端口等信息),只有匹配该会话表项的后续报文(包括返回报文)才能够 ),只有匹配该会话表项的后续报文 通过防火墙。如果链路切换后,后续报文找不到正确的表项, 通过防火墙。如果链路切换后,后续报文找不到正确的表项,会导致当前 业务中断。 业务中断。
蓝狐网络技术培训学校
故障恢复
故障恢复产生背景 故障恢复功能简介 故障恢复技术特点 故障恢复详细配置 故障恢复组网应用
蓝狐网络技术培训学校
failover功能简介 failover功能简介
Primary: Active Security Appliance 192.168.2.2 10.0.2.1 Serial Cable 192.168.2.7 10.0.2.7 Secondary: Standby Security Appliance
故障恢复(Failover) 故障恢复(Failover)
Failover的切换以及注意事项的理解
注:对于在多CONTEXT的环境中,如何实现故障切换,MAC地址如何工作的理解。
希望大家能够在实验环境中反复测试验证。
1.多个Context模式下:不考虑PIX FAILOVER的情形(网络中只有一个PIX的情形):1.1数据的分类:1)首先考虑数据的分类,也就是数据包如何进入ASA,数据保进入到ASA主机内部的时候又如何进入到每个Context,此时需要考虑到数据的分类。
2)如果数据是发起的流量,根据接口、数据包的目的MAC地址和在交换机上配置的VLAN来隔离。
如果数据是返回的流量,根据接口,MAC地址,NAT的翻译后的地址来确定流入哪个Context,具体顺序应该是接口优先、MAC地址、NAT匹配。
关于如何区分,上课已经讲过。
1.2缺省情况下:每个CONTEXT的MAC地址的分配1)当配置多CONTEXT的时候,如果同时配置了failover,每个CONTEXT的接口会自动产生一个虚拟的MAC地址,但是如果不配置failover,那么,将会使用物理的接口地址作为mac地址。
2)当配置单Context的时候,缺省都是使用物理接口的MAC地址。
3)一个接口或者一个子接口可以分配给多个Context,但是只能在router模式下进行,桥接的模式下不可以。
道理上课已经讲过。
1.3如何修改缺省的mac地址:4)在单个context的模式下:手工在接口上指定,配置mac atuto,failover 命令指定。
5)在多个context的模式下:配置mac atuto,failover 命令指定。
1.4根据实际情况,当不考虑failover的时候,如果在router模式下,没有配置NAT,而且又将同一个接口(包含子接口)分配给不同的context的时候,必须要修改mac地址。
2.多个Context模式下:考虑PIX FAILOVER的情形2.1Faiover的切换顺序:、1)必须在两个设备上做好Failover的基本配置,具体包括:配置两个failover的主从单元;Failover的接口;ip地址;Failover LAN启用。
failoverRAC环境的物理STANDBY的 FAILOVER切换切换
failover:RAC环境的物理STANDBY的FAILOVER切换切换疯狂代码 / ĵ:http://DataBase/Article20602.html物理STANDBYFAILOVER般发生在主库出现故障且短时间内无法恢复情况这是STANDBY数据库真正发挥作用时候切换后物理STANDBY切换为PRIMARY数据库原来PRIMARY数据库即使恢复的后也和新PRIMARY数据库没有关系这篇描述RAC环境数据库FAILOVER切换到个单例子数据库DATA GUARD物理STANDBY FAILOVER切换:/post/468/423789这个RAC环境到单例子STANDBY配置已经运行了段时间了但是今天由于RAC环境添加了新表空间而单例子STANDBY数据库所在服务器上已经没有足够空间来存放新数据文件了导致应用归档日志时出现了信息为1111 SQL> startup mountORACLE 例程已经启动Total Global Area 2147483648 sFixed Size 2031480 sVariable Size 520093832 sDatabase Buffers 1610612736 sRedo Buffers 14745600 s数据库装载完毕SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION; 数据库已更改SQL> SELECT ERROR_CODE, MESSAGE FROM V$DATAGUARD_STATUS2 ORDER BY TIMESTAMP;ERROR_CODE MESSAGE---------- ----------------------------------------------------------------------0 ARC0: Archival started0 ARC1: Archival started0 ARC0: Becoming the 'no FAL' ARCH0 ARC0: Becoming the 'no SRL' ARCH0 ARC1: Becoming the heartbeat ARCH0 Attempt to start background Managed Standby Recovery process0 MRP0: Background Managed Standby Recovery process started0 Managed Standby Recovery not using Real Time Apply1111 MRP0: Background Media Recovery terminated with error 11110 MRP0: Background Media Recovery process shutdown已选择10行检查alert文件可以看到下面:Attempt to start background Managed Standby Recovery process (testrac_standby)MRP0 started with pid=18, OS id=27195Fri Sep 26 14:47:54 2008MRP0: Background Managed Standby Recovery process started (testrac_standby)Managed Standby Recovery not using Real Time ApplyMRP0: Background Media Recovery terminated with error 1111Fri Sep 26 14:47:59 2008Errors in file /data/oracle/admin/testrac/bdump/testrac_standby_mrp0_27195.trc:ORA-01111: name for data file 16 is unknown - rename to correct fileORA-01110: data file 16: '/data/oracle/product/10.2/database/dbs/UNNAMED00016'ORA-01157: cannot identy/lock data file 16 - see DBWR trace fileORA-01111: name for data file 16 is unknown - rename to correct fileORA-01110: data file 16: '/data/oracle/product/10.2/database/dbs/UNNAMED00016'Fri Sep 26 14:47:59 2008Errors in file /data/oracle/admin/testrac/bdump/testrac_standby_mrp0_27195.trc:ORA-01111: name for data file 16 is unknown - rename to correct fileORA-01110: data file 16: '/data/oracle/product/10.2/database/dbs/UNNAMED00016'ORA-01157: cannot identy/lock data file 16 - see DBWR trace fileORA-01111: name for data file 16 is unknown - rename to correct fileORA-01110: data file 16: '/data/oracle/product/10.2/database/dbs/UNNAMED00016'Fri Sep 26 14:47:59 2008MRP0: Background Media Recovery process shutdown (testrac_standby)虽然当前问题很容易解决但是随后添加大量数据文件在当前服务器上是无法存放因此直接将STANDBY数据库执行FAILOVER操作使得当前数据库脱离PRIMARY数据库成为独立数据库般进行FAILOVER时候应该尽可能应用日志不过当前不需要这个操作可以直接对数据库进行FAILOVER切换: SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH;ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH*第 1 行出现:ORA-00283: 恢复会话因而取消ORA-01111: 数据文件 16 名称未知 - 请重命名以更正文件ORA-01110: 数据文件 16: '/data/oracle/product/10.2/database/dbs/UNNAMED00016'ORA-01157: 无法标识/锁定数据文件 16 - 请参阅 DBWR 跟踪文件ORA-01111: 数据文件 16 名称未知 - 请重命名以更正文件ORA-01110: 数据文件 16: '/data/oracle/product/10.2/database/dbs/UNNAMED00016'看来alert文件中出现还是要解决:SQL> SELECT TABLESPACE_NAME, FILE_NAME FROM DBA_DATA_FILES2 WHERE FILE_ID = 16;TABLESPACE_NAME FILE_NAME------------------------------ ------------------------------------------------------------CENTER +DISK/testrac/datafile/center01.dbf在PRIMARY数据库查询FILE_ID为16数据文件名称在本地找到对应数据文件名称后:SQL> SHOW PARAMETER STANDBY_FILENAME TYPE VALUE------------------------------------ ----------- ------------------------------standby_file_management AUTOSQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT = 'MANUAL';系统已更改SQL> ALTER DATABASE RENAME FILE '/data/oracle/product/10.2/database/dbs/UNNAMED00016' 2 TO '/data1/oradata/testrac/TESTRAC_STANDBY/datafile/o1_mf_center_4fq77tnx_.dbf';数据库已更改SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH;ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH*第 1 行出现:ORA-00283: 恢复会话因而取消ORA-01110: 数据文件 16:'/data1/oradata/testrac/TESTRAC_STANDBY/datafile/o1_mf_center_4fq77tnx_.dbf'ORA-01122: 数据库文件 16 验证失败ORA-01110: 数据文件 16:'/data1/oradata/testrac/TESTRAC_STANDBY/datafile/o1_mf_center_4fq77tnx_.dbf'ORA-01205: 不是数据文件 - 头部类型编号是 0看来虽然操作系统中包含了这个文件但是文件创建还是有问题需要通过CREATE DATAFILE方式重建下: SQL> ALTER DATABASE CREATE DATAFILE'/data1/oradata/testrac/TESTRAC_STANDBY/datafile/o1_mf_center_4fq77tnx_.dbf';数据库已更改下面再次执行FINISH命令:SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH;ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH*第 1 行出现:ORA-00283: 恢复会话因而取消ORA-01274: 无法添加数据文件 '+DISK/testrac/datafile/center02.dbf' - 无法创建文件SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH NOWAIT;ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH NOWAIT*第 1 行出现:ORA-00283: 恢复会话因而取消ORA-01111: 数据文件 18 名称未知 - 请重命名以更正文件ORA-01110: 数据文件 18: '/data/oracle/product/10.2/database/dbs/UNNAMED00018'ORA-01157: 无法标识/锁定数据文件 18 - 请参阅 DBWR 跟踪文件ORA-01111: 数据文件 18 名称未知 - 请重命名以更正文件ORA-01110: 数据文件 18: '/data/oracle/product/10.2/database/dbs/UNNAMED00018'由于开始没有指定NOWAIT导致STANDBY应用日志时候又创建出个数据文件而且针对这个数据文件在本地上还没有创建出对应操作系统文件所以无论是RENAME还是CREATE DATAFILE都会报错:SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH;ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH*第 1 行出现:ORA-00283: 恢复会话因而取消ORA-01274: 无法添加数据文件 '+DISK/testrac/datafile/center02.dbf' - 无法创建文件SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH NOWAIT;ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH NOWAIT*第 1 行出现:ORA-00283: 恢复会话因而取消ORA-01111: 数据文件 18 名称未知 - 请重命名以更正文件ORA-01110: 数据文件 18: '/data/oracle/product/10.2/database/dbs/UNNAMED00018'ORA-01157: 无法标识/锁定数据文件 18 - 请参阅 DBWR 跟踪文件ORA-01111: 数据文件 18 名称未知 - 请重命名以更正文件ORA-01110: 数据文件 18: '/data/oracle/product/10.2/database/dbs/UNNAMED00018'在操作系统执行拷贝操作创建出个合适大小文件:bash-2.03$ cp o1_mf_center_4fq77tnx_.dbf /data1/oradata/testrac/center02.dbf下面再次进行RENAME操作:SQL> ALTER DATABASE RENAME FILE '/data/oracle/product/10.2/database/dbs/UNNAMED00018'2 TO '/data1/oradata/testrac/center02.dbf';数据库已更改SQL> ALTER DATABASE CREATE DATAFILE '/data1/oradata/testrac/center02.dbf';数据库已更改SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH NOWAIT;ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH NOWAIT*第 1 行出现:ORA-00283: 恢复会话因而取消ORA-16171: 由于线程 1, 序列 721-721 间隔, 因此不允许使用 RECOVER...FINISH这个是由于怕Oracle继续在STANDBY上添加表空间而将所有日志转移到其他位置下面将所需日志拷贝到所需位置SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH NOWAIT;ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH NOWAIT*第 1 行出现:ORA-00283: 恢复会话因而取消ORA-16173: 活动归档网络连接不兼容这个是由于主库到本地归档仍然在继续在主库取消LOG_ARCHIVE_DEST设置:SQL> alter system log_archive_dest_2 = '';系统已更改再次出现该死添加数据文件:SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH NOWAIT;ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH NOWAIT*第 1 行出现:ORA-00283: 恢复会话因而取消ORA-01274: 无法添加数据文件 '+DISK/testrac/datafile/center03.dbf' - 无法创建文件由于空间实在不足只好拷贝个控制文件作为假数据文件然后RENAME FILE删除这个新增文件:SQL> ALTER DATABASE RENAME FILE '/data/oracle/product/10.2/database/dbs/UNNAMED00019' 2* TO '/data1/oradata/testrac/center03.dbf';数据库已更改SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH NOWAIT;ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH NOWAIT*第 1 行出现:ORA-00283: 恢复会话因而取消ORA-01110: 数据文件 19: '/data1/oradata/testrac/center03.dbf'ORA-01122: 数据库文件 19 验证失败ORA-01110: 数据文件 19: '/data1/oradata/testrac/center03.dbf'ORA-01251: 读取了文件号 19 未知文件头部版本SQL> alter database datafile '/data1/oradata/testrac/center03.dbf' offline;alter database datafile '/data1/oradata/testrac/center03.dbf' offline*第 1 行出现:ORA-01668: 对于数据文件脱机, 备用数据库要求使用 DROP 选项SQL> alter database datafile '/data1/oradata/testrac/center03.dbf' offline drop;数据库已更改依次处理后续所有新增数据文件SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH FORCE;ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH FORCE*第 1 行出现:ORA-00283: 恢复会话因而取消ORA-16171: 由于线程 1, 序列 724-724 间隔, 因此不允许使用 RECOVER...FINISH查询了METALINK没有发现有关ORA-16171有价值描述如果FAILOVER应为存在GAP就无法执行切换那么FAILOVER价值何在呢假如主库数据库出现了损毁STANDBY数据库难道就没有办法直接打开吗Oracle在这里实现看来有还定问题看来常规办法是不能解决了下面尝试通过重建控制文件方式将当前数据库直接做为PRIMARY数据库打开 SQL> SELECT DATABASE_ROLE FROM V$DATABASE;DATABASE_ROLE----------------PHYSICAL STANDBY备份控制文件到trace:SQL> ALTER DATABASE BACKUP CONTROLFILE TO TRACE;数据库已更改通过备份控制文件脚本重建控制文件:SQL> SHUTDOWN IMMEDIATEORA-01109: 数据库未打开已经卸载数据库ORACLE 例程已经关闭SQL> STARTUP NOMOUNTORACLE 例程已经启动Total Global Area 2147483648 sFixed Size 2031480 sVariable Size 520093832 sDatabase Buffers 1610612736 sRedo Buffers 14745600 sSQL> CREATE CONTROLFILE REUSE DATABASE "TESTRAC" RESETLOGS FORCE LOGGING ARCHIVELOG2 MAXLOGFILES 1923 MAXLOGMEMBERS 34 MAXDATAFILES 10245 MAXINSTANCES 326 MAXLOGHISTORY 29207 LOGFILE8 GROUP 1 '/export/home/oracle/oradata/testrac/group_1.258.618591139' SIZE 512M,9 GROUP 2 '/export/home/oracle/oradata/testrac/group_2.260.618591151' SIZE 512M10 -- STANDBY LOGFILE11 DATAFILE12 '/data1/oradata/testrac/system.262.618591167',13 '/data1/oradata/testrac/undotbs1.263.618591197',14 '/data1/oradata/testrac/sysaux.264.618591225',15 '/data1/oradata/testrac/undotbs2.266.618591249',16 '/data1/oradata/testrac/users.267.618591279',17 '/export/home/oracle/oradata/testrac/zhejiang01.dbf',18 '/export/home/oracle/oradata/testrac/zhejiang02.dbf',19 '/data1/oradata/testrac/nd01.dbf',20 '/export/home/oracle/oradata/testrac/zhejiang03.dbf',21 '/data1/oradata/testrac/ndindex01.dbf',22 '/export/home/oracle/oradata/testrac/zhejiang04.dbf',23 '/data1/oradata/testrac/zhejiang05.dbf',24 '/data/oradata/testrac/lt_index_ts01.dbf',25 '/opt/oracle/oradata/testrac/zhejiang06.dbf',26 '/data1/oradata/testrac/gpo.367.624623443',27 '/data1/oradata/testrac/TESTRAC_STANDBY/datafile/o1_mf_center_4fq77tnx_.dbf',28 '/data1/oradata/testrac/center02.dbf',29 '/data1/oradata/testrac/center03.dbf',30 '/data1/oradata/testrac/center04.dbf',31 '/data1/oradata/testrac/center05.dbf',32 '/data1/oradata/testrac/center06.dbf',33 '/data1/oradata/testrac/center07.dbf',34 '/data1/oradata/testrac/center08.dbf',35 '/data1/oradata/testrac/center09.dbf',36 '/data1/oradata/testrac/center10.dbf',37 '/data1/oradata/testrac/center11.dbf'38 CHARACTER SET ZHS16GBK39 ;CREATE CONTROLFILE REUSE DATABASE "TESTRAC" RESETLOGS FORCE LOGGING ARCHIVELOG *第 1 行出现:ORA-01503: CREATE CONTROLFILE ??ORA-01160: ???? data fileORA-01110: ???? : '/data1/oradata/testrac/center03.dbf'SQL> CREATE CONTROLFILE REUSE DATABASE "TESTRAC" RESETLOGS FORCE LOGGING ARCHIVELOG2 MAXLOGFILES 1923 MAXLOGMEMBERS 34 MAXDATAFILES 10245 MAXINSTANCES 326 MAXLOGHISTORY 29207 LOGFILE8 GROUP 1 '/export/home/oracle/oradata/testrac/group_1.258.618591139' SIZE 512M,9 GROUP 2 '/export/home/oracle/oradata/testrac/group_2.260.618591151' SIZE 512M10 -- STANDBY LOGFILE11 DATAFILE12 '/data1/oradata/testrac/system.262.618591167',13 '/data1/oradata/testrac/undotbs1.263.618591197',14 '/data1/oradata/testrac/sysaux.264.618591225',15 '/data1/oradata/testrac/undotbs2.266.618591249',16 '/data1/oradata/testrac/users.267.618591279',17 '/export/home/oracle/oradata/testrac/zhejiang01.dbf',18 '/export/home/oracle/oradata/testrac/zhejiang02.dbf',19 '/data1/oradata/testrac/nd01.dbf',20 '/export/home/oracle/oradata/testrac/zhejiang03.dbf',21 '/data1/oradata/testrac/ndindex01.dbf',22 '/export/home/oracle/oradata/testrac/zhejiang04.dbf',23 '/data1/oradata/testrac/zhejiang05.dbf',24 '/data/oradata/testrac/lt_index_ts01.dbf',25 '/opt/oracle/oradata/testrac/zhejiang06.dbf',26 '/data1/oradata/testrac/gpo.367.624623443',27 '/data1/oradata/testrac/TESTRAC_STANDBY/datafile/o1_mf_center_4fq77tnx_.dbf',28 '/data1/oradata/testrac/center02.dbf'29 CHARACTER SET ZHS16GBK30 ;控制文件已创建SQL> RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCELORA-00279: ?? 7947644359 (? 07/27/2008 06:23:00 ??) ???? 1 ????ORA-00289: ??: /data1/archivelog1_724_626291662.dbfORA-00280: ?? 7947644359 (???? 1) ??? #724 ?指定日志: {<RET>=suggested | filename | AUTO | CANCEL}CANCEL介质恢复已取消SQL> ALTER DATABASE ADD LOGFILE THREAD 22 GROUP3 '/export/home/oracle/oradata/testrac/group_3.268.618595573' SIZE 512M REUSE,3 GROUP4 '/export/home/oracle/oradata/testrac/group_4.270.618595587' SIZE 512M REUSE;数据库已更改SQL> ALTER DATABASE OPEN RESETLOGS;数据库已更改SQL> ALTER TABLESPACE TEMP ADD TEMPFILE'/data1/oradata/testrac/TESTRAC_STANDBY/datafile/o1_mf_temp_3mtmrs33_.tmp' REUSE;表空间已更改SQL> SELECT NAME, DATABASE_ROLE FROM V$DATABASE;NAME DATABASE_ROLE--------- ----------------TESTRAC PRIMARY既然center03.dbf开始数据文件都有问题导致控制文件无法创建干脆直接从控制文件中去掉反正这些文件也是被OFFLINE DROP执行RECOVER后OPEN RESETLOGS打开这样STANDBY数据库就人为被切换为PRIMARY模式了 2009-2-12 3:32:30疯狂代码 /。
oracle failover语句
文章标题:深入理解Oracle Failover语句在Oracle数据库管理中,Failover语句是一个非常重要的概念,它涉及到数据库的高可用性和容错性。
在本篇文章中,我们将从浅入深地探讨Oracle Failover语句,帮助读者全面理解这一概念。
一、Failover语句的基本概念在Oracle数据库中,Failover是指在主数据库出现故障时,系统能够自动切换到备用数据库,以确保数据库系统的高可用性和容错性。
Failover语句是为了实现这一功能而设计的,它能够在主数据库故障时自动将连接切换到备用数据库,从而保证应用系统的正常运行。
二、Failover语句的语法和用法在使用Failover语句时,我们需要通过特定的语法来指定备用数据库的连接信息,并且在主数据库故障时自动切换连接。
以下是Failover 语句的简单示例:```sqlCONNECT username/password@TNSalias F本人LOVER mode ```在这个示例中,`CONNECT`表示连接到数据库,`username/password`是数据库用户名和密码,`TNSalias`是TNS连接别名,`F本人LOVER mode`表示使用Failover模式连接数据库。
三、深入探讨Failover语句的实现原理Failover语句的实现原理涉及到Oracle数据库的集群技术和自动故障转移机制。
当主数据库出现故障时,备用数据库会接管主数据库的工作,并通过Failover语句将客户端连接切换到自己身上,从而实现故障转移。
这一过程涉及到数据库的高可用性和容错性机制,需要系统管理员进行详细的配置和管理。
四、Failover语句的应用场景和注意事项在实际应用中,Failover语句主要用于那些对数据库高可用性要求很高的场景,比如金融、电信等行业。
但是,在使用Failover语句时,我们也需要注意一些事项,比如数据库的连接负载、网络带宽、故障切换时间等因素,以确保故障转移的高效和可靠。
postgres 集群方案
postgres 集群方案PostgreSQL是一种开源的关系型数据库管理系统,常用于处理大规模的数据和高并发的应用。
在某些场景下,单个PostgreSQL服务器无法满足业务需求,这时候就需要考虑搭建PostgreSQL集群来提高数据库的性能和可用性。
本文将介绍一个基于物理复制和逻辑复制的PostgreSQL集群方案。
一、物理复制方案物理复制是指在数据库级别复制数据,将主数据库的所有物理文件复制到一个或多个从数据库中。
这种方案适合于数据量较大,对数据一致性要求较高的场景。
1. Master-Slave模式在Master-Slave模式下,一个主数据库(Master)负责处理写入操作,而一个或多个从数据库(Slave)复制主数据库的数据,并可用于读取操作。
当主数据库故障时,可以手动将一个从数据库切换为主数据库,以保证系统的可用性。
2. Master-Multi-Slave模式Master-Multi-Slave模式是在Master-Slave模式的基础上进行扩展的一种方案,即一个主数据库和多个从数据库,所有从数据库都复制主数据库的数据。
这样可以更好地分担读取压力,并提高系统的读取性能。
二、逻辑复制方案逻辑复制是指在逻辑级别复制数据,将主数据库的逻辑数据更改操作复制到一个或多个从数据库中。
这种方案适合于对数据一致性要求不是特别高,但对数据同步速度要求较高的场景。
1. 发布/订阅模式在发布/订阅模式下,主数据库将更改操作发布到订阅者,然后订阅者将这些操作应用到自己的数据库中。
该模式可以实现多个从数据库订阅主数据库的更改操作,从而提高系统的扩展性。
2. 逻辑复制插件模式逻辑复制插件模式是通过在主数据库上安装逻辑复制插件,将更改操作发送到从数据库。
这种模式与发布/订阅模式相似,但更加灵活,可以根据需求选择合适的插件和配置。
三、高可用性方案除了上述的复制方案外,提高数据库的可用性也是构建PostgreSQL 集群的重要目标之一。
主次中心站切换软件安装和使用说明
主次中心站切换软件安装和使用说明本说明包括以下几部分内容:一、概述二、主站安装和配置说明三、次站安装和配置说明四、运行failover程序五、主次中心站切换操作说明一、概述进程管理软件由两部分组成,一是运行在次中心站服务器上的standby程序,二是运行在主中心站值班调度计算机上的failover程序。
standby程序定时将主中心站的文件数据和数据库数据复制到次中心站,并且定时检测主次中心站之间的网络是否中断,一旦发现网络中断,则自动切换为主站运行。
failover程序提供图形用户界面,实时显示主次中心站各软件的运行情况,一旦发现软件模块工作异常,即弹出对话框向用户报告,请求人工干预。
如果主中心站服务器出现硬件故障(多次PING不通),则自动控制次中心站服务器,使它切换为主站运行。
次中心站的关系数据库inms工作在standby模式,定时从主服务器备份的数据库和日志,通过FTP协议传送到次服务器上,作“只读”恢复,即次服务器上的inms数据库保持和主服务器同步,但是只能“只读”访问,不可写入任何数据。
直到次服务器切换为主站运行以后,才可以向inms数据库中写入。
另外,每次当主服务器完整备份数据库以后,次中心站会将本地FTP主要目录下的内容和主中心站进行一次同步。
下载最新修改的文件,删除主中心站上不存在的文件和目录。
二、主站安装和配置说明主站安装和配置包括以下内容:●设置INMS数据库为自动增长模式●设置数据库备份计划(定期完整备份数据库,定时备份数据库日志)●建立FTP虚拟目录●配置主站运行的实时数据库A、设置INMS数据库为自动增长模式1.打开SQL Server的Enterprise Manager窗口,展开Databases树结点,在inms数据库项目上右击鼠标,屏幕显示快捷菜单,选中“属性”项。
2.屏幕显示“inms数据库属性”对话框,按下图设置数据文件为自动增长模式,每次增长50M,数据库空间大小不受限制。
rac failover的实现方式
rac failover的实现方式RAC(Real Application Clusters)是一种实现高可用性和容错性的数据库架构。
在RAC中,Failover是指在主节点(Primary)发生故障或不可用时,自动将主节点的功能切换到备用节点(Standby)上,确保系统的持续运行。
本文将介绍RAC Failover的实现方式及其原理。
一、故障检测与切换机制RAC Failover的实现依赖于故障检测与切换机制。
当主节点发生故障时,备用节点会检测到主节点的不可用性,并触发切换操作。
故障检测可以通过心跳检测、网络探测等方式实现。
当检测到主节点故障后,备用节点会接管主节点的功能,并成为新的主节点。
二、自动切换与手动切换RAC Failover可以分为自动切换和手动切换两种方式。
自动切换是指在主节点故障后,备用节点自动接管主节点的功能,不需要人工干预。
手动切换是指需要管理员手动触发切换操作,将备用节点切换为新的主节点。
三、冷备与热备RAC Failover的实现方式还可以根据备用节点的状态分为冷备和热备。
冷备是指备用节点处于关闭状态,当主节点故障时,需要启动备用节点并接管主节点的功能。
热备是指备用节点处于运行状态,可以即时接管主节点的功能。
四、故障恢复与数据同步RAC Failover的实现还需要考虑故障恢复和数据同步的问题。
故障恢复是指在主节点故障后,系统能够迅速恢复到正常运行状态。
数据同步是指在主节点故障前后,数据的一致性和完整性得到保证。
为了实现故障恢复和数据同步,可以使用数据复制、日志传输等技术手段。
五、负载均衡与高可用性RAC Failover的实现不仅可以提供高可用性,还可以实现负载均衡。
在RAC架构中,多个节点可以同时提供数据库服务,分担系统负载。
当主节点故障时,备用节点能够接管主节点的功能,保证系统的连续运行,同时还能够继续处理用户的请求,实现负载均衡。
六、故障切换的影响与性能优化RAC Failover的实现会对系统的性能产生一定的影响。
防火墙故障切换
防火墙故障切换一、实验拓扑二、知识了解第一个:Failover 线,又叫心跳线,是一条故障切换线;参与failover 的防火墙通过这条线决定本身的状态,即选举主备或在主设备发生故障时,次设备成为主设备继续提供安全服务;可以是一条专用Cable 或LAN 线;传递配置信息和检测信息,以及状态信息。
第二个;Statful failover 线,又叫状态线;时刻传递状态信息从主到次;接该线的接口必须大于等于用户数据接口的速率(inside 、outside 接口);可以使用一个专用以太接口或共享LAN-base 的Failover 线,也可以共享用户但不建议。
第三个;Failover 组网拓扑(方式):基于Cable 、基于LAN ;基于Cable :专用线缆,仅限于PIX ,ASA 不支持;专用的Cable 线能快速检测对等体电源失效;备份设备不用配置,不占有以太接口;防火墙内外口、DMZ 区各占用一个子网;主备关系由电缆决定;Primary 和Secondary ;限制,Cable 线只有6Feet ;拷贝速度慢,115Kb/s ;基于LAN :使用以太网互联传递Failover 信息;配置信息等;为了Failover 线是活动的,需要在防火墙间加交换机;禁用交换机的DTP 、PAGP 等协议,手工配置access 、portfast 等;切换时,Failover 线不交换IP 、MAC ;距离不受限制;但是交换机容易单点故障;第四个:Failover 工作模式 :A/S 主备、A/A 负载均衡;强制切换为主Failover activeA/S 主备特点:一台设备为主,另外一台为备份;同时只有一台防火墙处理用户数据;主设备发生故障时,次设备成为主设备并接管原主设备的所有接口Ip 地址和MAC 地址;对于用户来说,整个切换是透明的。
A/A 负载均衡:两台防火墙同时都处理用户数据,把每台防火墙划分为两个虚拟防火墙,分Fa0/0Fa0/1Fa0/3Fa0/0别挑选出一个Context组成failover 组,共两组;每个组挑出一个Active防火墙,Active设备,Active设备分别属于不同物理防火墙;standby设备成为Active 设备时接管原active设备的接口IP地址和MAC地址;对于用户来说,整个切换过程是透明的。
failover机制
பைடு நூலகம்
通俗地说即当a无法为客户服务时系统能够自动地切换使b能够及时地顶上继续为客户提供服务且客户感觉不到这个为他提供服务的对象已经更换
failover机 制
Failover 失效转移 通俗地说,即当A无法为客户服务时,系统能够自动地切换,使B能够及时地顶上继续为客户提供服务,且客户感觉不到这个为他提供服务 的对象已经更换。 这里的A和B可以存在于各种领域,但一般fail-over特指计算机领域的数据库、应用服务、硬件设备等的失效转移。
(整理)F5负载均衡器双机切换机制及配置.
F5负载均衡器双机切换触发机制及配置1 F5双机的切换触发机制1.1 F5双机的通信机制F5负载均衡器的主备机之间的心跳信息可以通过以下两种方式进行交互:●通过F5 failover 串口线交换心跳信息(电压信号不断地由一方送到另外一方)处于Standby的系统不断监控Failover上的电平,一旦发现电平降低,Standby Unit会立即变成Active,会发生切换(Failover)。
通过串口监控电平信号引起的切换可以在一秒中以内完成(大概200~300ms)。
四层交换机在系统启动的时候也会监控Failover线缆的电平以决定系统是处于Active状态还是Standby状态。
在串口Failover线缆上不传输任何数据信息。
●Failover线缆也可以不采用串口线,而直接采用网络线。
(但F5不建议这样做,因为网络层故障就可能会两台负载均衡器都处于Active状态)。
如果采用网络层监控实现Failover, Bigip将通过1027与1028端口交换心跳信息。
经验证明:两台F5之间一定要用failover cable连接起来,不连接failover cable而直接采用网络线连接在一起不可靠,而且造成了网上事故。
F5双机之间的数据信息是通过网络来完成的。
因此运行于HA方式的两台F5设备在网络层必须是相通的。
(可以用网线将两台F5设备直接相连起来,也可以通过其它的二层设备将两台F5设备相连,使F5设备在网络上可以连通对端的Failover IP地址)。
两台运行于HA方式的四层交换机之间通过网络层交互的信息主要包括:●用于配置同步的信息:通过手工执行config sync会引起Active到Standby系统的配置信息传输。
●用于在发生Failover时连接维持的信息:如果设置了Connection Mirroring,处于Active的四层交换机会将连接表每十秒中发送一次到Standby的系统。
MHA介绍和基础、原理、架构、工具介绍
MHA介绍和基础、原理、架构、⼯具介绍⼀.MHA简介软件简介MHA(Master High Availability)⽬前在MySQL⾼可⽤⽅⾯是⼀个相对成熟的解决⽅案,它由⽇本DeNA公司youshimaton(现就职于Facebook公司)开发,是⼀套优秀的作为MySQL⾼可⽤性环境下故障切换和主从提升的⾼可⽤软件。
在MySQL故障切换过程中,MHA能做到在10~30秒之内⾃动完成数据库的故障切换操作,并且在进⾏故障切换的过程中,MHA能在最⼤程度上保证数据的⼀致性,以达到真正意义上的⾼可⽤。
MHA还提供在线主库切换的功能,能够安全地切换当前运⾏的主库到⼀个新的主库中 (通过将从库提升为主库),⼤概0.5-2秒内即可完成。
该软件由两部分组成:MHA Manager(管理节点)和MHA Node(数据节点)。
MHA Manager可以单独部署在⼀台独⽴的机器上管理多个master-slave集群,也可以部署在⼀台slave节点上。
MHA Node运⾏在每台MySQL服务器上,MHA Manager会定时探测集群中的master节点,当master出现故障时,它可以⾃动将最新数据的slave提升为新的master,然后将所有其他的slave重新指向新的例如,如果主服务器硬件故障或⽆法通过ssh访问,MHA没法保存⼆进制⽇志,只进⾏故障转移⽽丢失了最新的数据。
使⽤MySQL 5.5的半同步复制,可以⼤⼤降低数据丢失的风险。
MHA可以与半同步复制结合起来。
如果只有⼀个slave已经收到了最新的⼆进制⽇志,MHA可以将最新的⼆进制⽇志应⽤于其他所有的slave服务器上,因此可以保证所有节点的数据⼀致性。
⽬前MHA主要⽀持⼀主多从的架构,要搭建MHA,要求⼀个复制集群中必须最少有三台数据库服务器,⼀主⼆从,即⼀台充当master,⼀台充当备⽤master,另外⼀台充当从库,因为⾄少需要三台服务器,出于机器成本的考虑,淘宝也在该基础上进⾏了改造,⽬前淘宝TMHA已经⽀持⼀主⼀从。
failover_mode参数使用方法
一、f本人lover_mode参数的概念f本人lover_mode参数是应用在数据库系统中的一个重要参数,它用于指定数据库的故障转移模式。
在数据库系统中,故障转移是一种常见的处理故障的方法,它可以实现在主数据库出现故障时,自动切换到备用数据库,确保系统的持续可用性。
f本人lover_mode参数的作用就是指定这种故障转移的模式,以确保整个系统在出现故障时能够快速而可靠地进行故障转移,保障系统的稳定运行。
了解和正确使用f 本人lover_mode参数是数据库管理和运维中非常重要的一部分。
二、f本人lover_mode参数的取值范围在数据库系统中,f本人lover_mode参数通常有多种取值,每种取值代表着不同的故障转移模式,根据实际情况选择合适的取值是确保系统可用性的关键。
常见的f本人lover_mode参数取值包括:1. automatic:自动模式。
当主数据库出现故障时,系统会自动切换到备用数据库,并且在主数据库恢复后自动切换回主数据库。
2. manual:手动模式。
当主数据库出现故障时,需要手动介入来切换到备用数据库,同样在主数据库恢复后也需要手动介入切换回主数据库。
3. standby:待机模式。
备用数据库处于待机状态,不对外提供服务,只有在主数据库出现故障时才会切换到备用数据库,待机模式适用于对数据库切换时延迟要求较高的场景。
4. forced:强制模式。
也称为强制切换模式,主数据库出现故障时会立即进行强制切换到备用数据库,不考虑主数据库的恢复情况。
5. immediate:立即模式。
主数据库出现故障时,立即进行切换到备用数据库,不等待主数据库的恢复情况。
不同的取值代表着不同的故障转移策略,企业需要根据自身业务需求和系统架构选择合适的故障转移模式。
三、f本人lover_mode参数的使用方法正确地使用f本人lover_mode参数可以帮助企业确保数据库系统在出现故障时能够快速切换到备用数据库,并保证系统的持续可用性。
通过Keepalived实现Redis Failover自动故障切换功能
通过Keepalived实现Redis Failover自动故障切换功能详细可参考/archives/1942.html设计思路:redis 主和redis从正常同步;redis主keepalived 启动,执行redis_master.sh脚本,vip在自己身上;redis 从keepalived 启动,执行redis_slave.sh脚本;redis主服务关闭,则redis主执行redis_fault.sh脚本,vip落在redis 从上,redis从执行redis-_master.sh脚本,变成主;redis主服务开启,则redis主执行redis_slave.sh脚本变成从,vip还在redis 从上,还是主;redis从服务关闭,则redis从执行redis_fault.sh脚本,vip落在redis主上,redis主执行redis-_master.sh脚本,变成主;redis从服务开启,则redis从执行redis_slave.sh脚本变成从,vip还在redis主上,redis主继续做主,此时为redis初试主从状态;环境:192.168.1.235 redis192.168.1.236 redis-slave192.168.1.237 vip一:安装keepalived(redis和redis-slave两台服务器都安装)yum -y install ipvsadmwget /software/keepalived-1.2.2.tar.gztar -zxvf keepalived-1.2.2.tar.gzcd keepalived-1.2.2./configureconfigure时若出现以下结果:不推荐使用yum install -y kernel-devel安装安装完成后建立一下链接在配置:ln -s /usr/src/kernels/2.6.18-194.el5-i686/ /usr/src/linux/上述过程完毕后,在进行configure:makemake installcp /usr/local/etc/rc.d/init.d/keepalived /etc/init.d/chmod 755 /etc/init.d/keepalivedcp /usr/local/sbin/keepalived /usr/sbin/cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/#运行由于keepalived配置文件不是在启动时一次性加载并读取完成的,所以必须是完整路径,可以根据log判断是否加载了正确的配置文件keepalived –f /usr/local/etc/keepalived/keepalived.conf运行过程可以查看log:tail -f /var/log/message二:安装redis(redis和redis-slave两台服务器都安装)tar -zxvf redis-2.4.17.tar.gzcd redis-2.4.17./configuremakemake installredis-slve只需注意一点[root@redis bin]# pwd/usr/local/bin[root@redis bin]# vim redis.conf116 slaveof 192.168.1.235 6379三:通过Keepalived实现Redis Failover自动故障切换修改Master和Slave的/etc/hosts文件[root@redis rc.d]# cat /etc/hosts192.168.1.235 redis192.168.1.236 redis-slaveMaster上是[root@redis rc.d]# cat /etc/sysconfig/networkNETWORKING=yesHOSTNAME=redisSlave上是[root@redis-slave linux]# cat /etc/sysconfig/networkNETWORKING=yesHOSTNAME=redis-slave修改完主机名重启机器生效默认安装完成keepalived之后是没有配置文件的,因此我们需要手动创建:首先,在Master上创建如下配置文件:[root@redis linux]# vim /etc/keepalived/keepalived.confglobal_defs {notification_email {xiesongmeng@}notification_email_from keepalived@redisrouter_id redis}vrrp_script chk_redis {script "/etc/keepalived/scripts/redis_check.sh"interval 1}vrrp_instance mes_Redis {state MASTERinterface eth0garp_master_delay 10smtp_alertvirtual_router_id 3priority 100nopreemptadvert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.1.237}track_script {chk_redis}notify_master /etc/keepalived/scripts/redis_master.shnotify_backup /etc/keepalived/scripts/redis_slave.shnotify_fault /etc/keepalived/scripts/redis_fault.shnotify_stop /etc/keepalived/scripts/redis_stop.sh}然后,在Slave上创建如下配置文件:[root@redis-slave linux]# vim /etc/keepalived/keepalived.conf global_defs {notification_email {xiesongmeng@}notification_email_from keepalived@redis-slaverouter_id redis-salve}vrrp_script chk_redis {script "/etc/keepalived/scripts/redis_check.sh"interval 1}vrrp_instance mes_Redis {state BACKUPinterface eth0garp_master_delay 10smtp_alertvirtual_router_id 3priority 90nopreemptadvert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.1.237}track_script {chk_redis}notify_master /etc/keepalived/scripts/redis_master.sh notify_backup /etc/keepalived/scripts/redis_slave.shnotify_fault /etc/keepalived/scripts/redis_fault.shnotify_stop /etc/keepalived/scripts/redis_stop.sh }在Master和Slave上创建监控Redis的脚本mkdir /etc/keepalived/scriptsvim /etc/keepalived/scripts/redis_check.sh#!/bin/bashALIVE=`/usr/local/bin/redis-cli PING`if [ "$ALIVE" == "PONG" ]; thenecho $ALIVEexit 0elseecho $ALIVEexit 1fi编写以下负责运作的关键脚本:notify_master /etc/keepalived/scripts/redis_master.shnotify_backup /etc/keepalived/scripts/redis_slave.shnotify_fault /etc/keepalived/scripts/redis_fault.shnotify_stop /etc/keepalived/scripts/redis_stop.sh因为Keepalived在转换状态时会依照状态来呼叫:当进入Master状态时会呼叫notify_master当进入Backup状态时会呼叫notify_backup当发现异常情况时进入Fault状态呼叫notify_fault当Keepalived程序终止时则呼叫notify_stop首先,在Redis Master上创建notity_master与notify_backup脚本:vim /etc/keepalived/scripts/redis_master.sh#!/bin/bashREDISCLI="/usr/local/bin/redis-cli"LOGFILE="/var/log/keepalived-redis-state.log"echo "[master]" >> $LOGFILEdate >> $LOGFILEecho "Being master...." >> $LOGFILE 2>&1echo "Run SLAVEOF cmd ..." >> $LOGFILE$REDISCLI SLAVEOF 192.168.1.236 6379 >> $LOGFILE 2>&1sleep 10 #延迟10秒以后待数据同步完成后再取消同步状态echo "Run SLAVEOF NO ONE cmd ..." >> $LOGFILE$REDISCLI SLAVEOF NO ONE >> $LOGFILE 2>&1vim /etc/keepalived/scripts/redis_slave.sh#!/bin/bashREDISCLI="/usr/local/bin/redis-cli"LOGFILE="/var/log/keepalived-redis-state.log"echo "[backup]" >> $LOGFILEdate >> $LOGFILEecho "Being slave...." >> $LOGFILE 2>&1sleep 15 #延迟15秒待数据被对方同步完成之后再切换主从角色echo "Run SLAVEOF cmd ..." >> $LOGFILE$REDISCLI SLAVEOF 192.168.1.236 6379 >> $LOGFILE 2>&1接着,在Redis Slave上创建notity_master与notify_backup脚本:vim /etc/keepalived/scripts/redis_master.sh#!/bin/bashREDISCLI="/usr/local/bin/redis-cli"LOGFILE="/var/log/keepalived-redis-state.log"echo "[master]" >> $LOGFILEdate >> $LOGFILEecho "Being master...." >> $LOGFILE 2>&1echo "Run SLAVEOF cmd ..." >> $LOGFILE$REDISCLI SLAVEOF 192.168.1.235 6379 >> $LOGFILE 2>&1sleep 10 #延迟10秒以后待数据同步完成后再取消同步状态echo "Run SLAVEOF NO ONE cmd ..." >> $LOGFILE$REDISCLI SLAVEOF NO ONE >> $LOGFILE 2>&1vim /etc/keepalived/scripts/redis_slave.sh#!/bin/bashREDISCLI="/usr/local/bin/redis-cli"LOGFILE="/var/log/keepalived-redis-state.log"echo "[backup]" >> $LOGFILEdate >> $LOGFILEecho "Being slave...." >> $LOGFILE 2>&1sleep 15 #延迟15秒待数据被对方同步完成之后再切换主从角色echo "Run SLAVEOF cmd ..." >> $LOGFILE$REDISCLI SLAVEOF 192.168.1.235 6379 >> $LOGFILE 2>&1然后在Master与Slave创建如下相同的脚本:vim /etc/keepalived/scripts/redis_fault.sh#!/bin/bashLOGFILE=/var/log/keepalived-redis-state.logecho "[fault]" >> $LOGFILEdate >> $LOGFILEvim /etc/keepalived/scripts/redis_stop.sh#!/bin/bashLOGFILE=/var/log/keepalived-redis-state.logecho "[stop]" >> $LOGFILEdate >> $LOGFILE在Master与Slave给脚本都加上可执行权限:chmod +x /etc/keepalived/scripts/*.sh脚本创建完成以后,我们开始按照如下流程进行测试:1.启动Master上的Redis[root@redis bin]# pwd/usr/local/bin[root@redis bin]# ./redis-server redis.conf2.启动Slave上的Redis[root@redis bin]# pwd/usr/local/bin[root@redis bin]# ./redis-server redis.conf3.启动Master上的Keepalived/etc/init.d/keepalived start4.启动Slave上的Keepalived/etc/init.d/keepalived start5.尝试通过VIP连接Redis:[root@redis bin]#pwd/usr/local/bin[root@redis bin]# ./redis-cli -h 192.168.1.237 inforole:masterslave0:192.168.1.236,6379,online连接成功,Slave也连接上来了6.尝试插入一些数据:[root@redis bin]# ./redis-cli -h 192.168.1.237 SET Hello Redis 从VIP读取数据[root@redis bin]# ./redis-cli -h 192.168.1.237 GET Hello "Redis"从Master读取数据[root@redis bin]# ./redis-cli -h 192.168.1.235 GET Hello"Redis"从Slave读取数据[root@redis-slave bin]# ./redis-cli -h 192.168.1.235 GET Hello "Redis"下面,模拟故障产生:将Master上的Redis进程杀死:[root@redis bin]# ./redis-cli shutdown查看Master上的Keepalived日志[root@redis scripts]# tail /var/log/keepalived-redis-state.log[fault]Thu Sep 27 08:29:01 CST 2012同时Slave上的日志显示:[root@redis-slave scripts]# tail /var/log/keepalived-redis-state.log [master]Thu Nov 15 12:06:04 CST 2012Being master....Run SLAVEOF cmd ...OKRun SLAVEOF NO ONE cmd ...OK然后我们可以发现,Slave已经接管服务,并且担任Master的角色了。
防火墙 Failover.
防火墙 Failover一、failover相关概念:1、failover线:又叫心跳线,是一条故障切换线,参与failover 的防火墙通过这条线决定本身的状态。
Failover 线有2种:专用的cable 线和LAN线2、statful failover线:即状态线,时刻传递状态信息由主到次,该线的带宽必须大于等于用户接口的带宽,状态有3种:专用以太口或共享LAN-base的failover线或共享用户接口(不建议)3、failover 组网拓扑:有2种:基于专用cable和基于LAN二、试验拓扑:三、试验配置:FW5(config# activation-key 0x5236f5a7 0x97def6da 0x732a91f5 0xf5deef57(添加UR许可,有UR许可才支持Failover)1、基于Lan base的A/S模式FW5(活动设备)FW5(config# failover link bluefox e3(指定Failover状态接口)FW5(config# failover interface ip bluefox 192.168.6.5 255.255.255.0 standby 192.168.6.6(配置状态接口的IP)FW5(config# interface e3(打开接口)FW5(config-if# no shFW5(config-if# exitFW5(config# failover lan enable (启用lan base)FW5(config# failover lan unit primary (指定该设备为主设备)FW5(config# failover lan interface bluefox e3(指定Failover线(可与状态线共用))FW5(config# failover interface ip bluefox 192.168.6.5 255.255.255.0 standby 192.168.6.6(共用时可不配)FW5(config# failoverFW5(config# interface e0FW5(config-if# nameif outsideFW5(config-if# ip add 192.168.7.5 255.255.255.0 standby 192.168.7.6FW5(config-if# no shFW5(config-if# exitFW5(config# interface e1FW5(config-if# nameif insideFW5(config-if# ip add 192.168.5.5 255.255.255.0 standby 192.168.5.6FW5(config-if# no shFW5(config-if# exitFW5(config# interface e2FW5(config-if# nameif dmzFW5(config-if# security-level 50FW5(config-if# ip add 192.168.8.5 255.255.255.0 standby 192.168.8.6 FW5(config-if# no shFW5(config-if# exitFW6(备份设备)FW6(config# interface e3FW6(config-if# no shFW6(config-if# exit(打开状态线)FW6(config# failover lan enable (启用lan base)FW6(config# failover lan unit secondary (指定该设备为辅助设备)FW6(config# failover lan interface bluefox e3(指定Failover线)FW6(config# failover interface ip bluefox 192.168.6.5 255.255.255.0 standby 192.168.6.6FW6(config# failover(启用Failover)测试与分析:FW5FW6FW5由以上各图知FW5为主、FW6为备份设备.在FW6上手动抢占FW6已成为主设备。
后端开发知识:如何进行后端开发的负载均衡和故障切换
后端开发知识:如何进行后端开发的负载均衡和故障切换随着业务规模的不断扩大,负载均衡和故障切换成为了后端开发不可避免的话题。
为了满足高并发、高可用性、高稳定性等需求,我们需要掌握一些负载均衡和故障切换的基本知识和技能,本文就为大家详细介绍后端开发如何进行负载均衡和故障切换。
一、负载均衡的概念和原理负载均衡(Load Balance)是一种通过多台服务器共同承担服务负载的技术,可以实现在多台服务器上分布式地处理客户端的请求,提高服务器承载的能力以及系统的可用性和稳定性。
负载均衡的实现原理可以简单概括为:通过一些算法,将客户端的请求分布到多个服务器上处理,从而达到均衡负载的目的。
在实际项目中,我们可以使用多种负载均衡算法,例如:1、轮询算法(Round Robin):按照轮询的方式,将每个请求依次调度到不同的服务器上处理。
2、随机算法(Random):随机选择一台服务器进行请求处理,可以有效避免请求集中在某一台服务器上。
3、最小连接数算法(Least Connection):根据服务器当前连接数的统计数据,选择连接数最少的服务器进行请求处理。
4、IP哈希算法(IP Hash):根据客户端请求的IP地址的哈希值,按照规则将请求转发到某台服务器上。
二、负载均衡的实现方式针对不同的场景和需求,我们可以使用多种方式来实现负载均衡,例如:1、硬件负载均衡:使用专业的负载均衡设备(如F5、瑞斯康达等),可以实现对服务器硬件资源的分配和管理,提高系统的可用性和稳定性。
硬件负载均衡设备通常可以实现丰富的负载均衡算法和策略,并提供监控和故障恢复等功能。
2、DNS负载均衡:通过DNS解析服务器实现负载均衡,将不同的请求分配到不同的IP地址上,然后通过路由器或交换机等设备将请求路由到不同的服务器上。
DNS负载均衡相对简单易实现,但仅能实现简单的轮询和随机算法。
3、软件负载均衡:使用第三方负载均衡软件或自研轮询、哈希算法等负载均衡模块,实现负载均衡服务。
failover测试文档
Oracle10g rac dataguard failover故障切换测试把dataguard设置为最大可用,dataguard可以同步日志,无问题,开始测试,如果主库有日志未发送到备库,请参考附录,.第一步,主库服务器不用操作,然后在备库执行:alter database recover managed standby database cancel;create restore point dgfail guarantee flashback database;alter database recover managed standby database finish force;alter database commit to switchover to primary;shutdown immediate;startup;结果如下:SQL> alter database recover managed standby database cancel;Database altered.SQL> create restore point dgfail guarantee flashback database;Restore point created.SQL> alter database recover managed standby database finish force;Database altered.SQL> alter database commit to switchover to primary;Database altered.SQL> shutdown immediate;ORA-01507: database not mountedORACLE instance shut down.SQL> startup;ORACLE instance started.Total System Global Area 989855744 bytesFixed Size 2088760 bytesVariable Size 444596424 bytesDatabase Buffers 536870912 bytesRedo Buffers 6299648 bytesDatabase mounted.Database opened.第二步,开始在备库创建表空间和用户:SQL> create tablespace testls datafile '/opt/app/oracle/oradata/standby/testls.dbf' size 50M;Tablespace created.SQL> create user ls identified by ls default tablespace testls;User created.SQL> grant dba to ls;Grant succeeded.SQL> connect ls/lsConnected.SQL> create table ls (test int);Table created.SQL> insert into ls values(1);1 row created.SQL> insert into ls values(2);1 row created.SQL> select * from ls;TEST----------12备库可以进行ddl和dml操作。
利用MySQL工具进行故障切换第二部分:mysqlfailover
利用MySQL工具进行故障切换第二部分:mysqlfailover————————————————————————————————作者:————————————————————————————————日期:利用MySQL工具进行故障切换——第二部分:mysqlfailover 在本系列的前面的文章我们看到在MySQL 5.6中,当GTID启用时如何使用mysqlrpladmin 执行手动故障转移/切换。
现在我们将回顾MySQL实用程序中的另一个工具mysqlfailover(1.4.3版本),它可以用于故障的自动转移。
Summary●如果MySQL 5.6的GTID复制启用的话,mysqlfailover可以执行故障自动转移。
●所有的从机都必须使用——主信息资料库列表。
(All slaves must use --master-info-repository=TABLE.)●监控节点是一个单故障点:别忘了监视它。
(The monitoring node is a single point of failure: don’t forget to monitor it! )●错误事项检测效果很好,但是你必须使用保守的选项来确保故障转移将永远不会发生错误。
(Detection of errant transactions works well, but you have to use the -- pedanticoption to make sure failover will never happen if there is an errant transaction. )●有一些局限性,比如不能只失败一次或过度的CPU利用率,但这对大多数设置影响不是很大。
(There are a few limitations such as the inability to only fail over once, or excessive CPU utilization, but they are probably not showstoppers for most setups. )Setup我们将使用与上次相同的设置:一个主机和两个从机,并且都使用了GTID复制。
[整理]F5负载均衡器双机切换机制及配置.
F5负载均衡器双机切换触发机制及配置1 F5双机的切换触发机制1.1 F5双机的通信机制F5负载均衡器的主备机之间的心跳信息可以通过以下两种方式进行交互:●通过F5 failover 串口线交换心跳信息(电压信号不断地由一方送到另外一方)处于Standby的系统不断监控Failover上的电平,一旦发现电平降低,Standby Unit会立即变成Active,会发生切换(Failover)。
通过串口监控电平信号引起的切换可以在一秒中以内完成(大概200~300ms)。
四层交换机在系统启动的时候也会监控Failover线缆的电平以决定系统是处于Active状态还是Standby状态。
在串口Failover线缆上不传输任何数据信息。
●Failover线缆也可以不采用串口线,而直接采用网络线。
(但F5不建议这样做,因为网络层故障就可能会两台负载均衡器都处于Active状态)。
如果采用网络层监控实现Failover, Bigip将通过1027与1028端口交换心跳信息。
经验证明:两台F5之间一定要用failover cable连接起来,不连接failover cable而直接采用网络线连接在一起不可靠,而且造成了网上事故。
F5双机之间的数据信息是通过网络来完成的。
因此运行于HA方式的两台F5设备在网络层必须是相通的。
(可以用网线将两台F5设备直接相连起来,也可以通过其它的二层设备将两台F5设备相连,使F5设备在网络上可以连通对端的Failover IP地址)。
两台运行于HA方式的四层交换机之间通过网络层交互的信息主要包括:●用于配置同步的信息:通过手工执行config sync会引起Active到Standby系统的配置信息传输。
●用于在发生Failover时连接维持的信息:如果设置了Connection Mirroring,处于Active的四层交换机会将连接表每十秒中发送一次到Standby的系统。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
蓝狐网络技术培训学校
故障恢复
故障恢复产生背景 故障恢复功能简介 故障恢复技术特点 故障恢复详细配置 故障恢复组网应用
蓝狐网络技术培训学校
故障恢复技术特点
故障恢复设备要求 故障恢复工作方式 故障恢复工作模式 故障恢复健康监测
蓝狐网络技术培训学校
蓝狐网络技术培训学校
故障恢复技术特点
故障恢复设备要求 故障恢复工作方式 故障恢复工作模式 故障恢复健康监测
蓝狐网络技术培训学校
故障恢复工作方式
基于cable的工作方式 基于LAN的工作方式
蓝狐网络技术培训学校
5.4 故障恢复链路类型
蓝狐网络技术培训学校
5.4.2 基于cable的工作方式
Primary Security Appliance
Primary Labeled Connector
Secondary Security Appliance
Secondary Labeled Connector
LAN-Based
ห้องสมุดไป่ตู้
Cable-Based
Stateful
蓝狐网络技术培训学校
5.4.1 故障恢复链路类型
● 串行电缆的故障恢复链路(仅PIX 500系列支持):
此电缆是一个专用串行电缆,能提供较快的收敛。安全设备可 以感知对等体单元的功率损耗。 故障切换中的两个单元通过故障切换电缆连通.故障切换电缆 是一个改良长6英尺的RS-232系列链路电缆,以115kbit/s的速度传 输数据 故障切换电缆每端都有标签,一端标为”主要”,应该连接到主 要单元.另一端则标为”辅助”连接到辅助单元.对备用单元的改 变永远不会复制到活跃单元.
Primary Security Appliance
192.168.0.0 /24 10.0.0.0 /24 e0 e2 Cable-Based LAN-Based e0 e2 e3 e1 e1 e3 .11 Stateful Link
Internet
.1
Secondary Security Appliance
第五章:故障恢复
故障恢复产生背景 故障恢复功能简介 故障恢复技术特点 故障恢复详细配置 故障恢复组网应用
蓝狐网络技术培训学校
5.1 故障恢复产生背景
● 在当今网络中,用户对一些 重要业务入口或接入点的可 靠性要求越来越高,如何保
证网络避免单点故障,保证
网络的不间断传输,成为网 络急需解决的一个问题
蓝狐网络技术培训学校
5.1 故障恢复产生背景
● 传统备份组网方案适用于接入点是路由器等转发设备的情况。因为经过设 备的每个报文都是查找转发表进行转发,链路切换后,后续报文的转发不 受影响。 ● 但是当接入点是状态防火墙等设备时,由于状态防火墙是基于连接状态的, 当用户发起会话时,状态防火墙只会对会话的首包进行检查,如果首包允 许通过则会建立一个会话表项(表项里包括源IP、源端口、目的IP、目的
基于Cable: 专用的线缆,仅限于PIX,ASA没有; 专用的Cable线能快速检测对等体电源失效; 备份设备不用配置,不用占有以太接口; 主备关系由电缆决定;Primary和Secondary; 备份设备不需要任何配置,通电即可 距离限制,Cable线只有6feet; 拷贝速度慢,115kb/s;
连接都被丢弃. 客户端应用程序必须重新连接 提供硬件冗余 提供serial-based或者LAN-based failover
Stateful failover
TCP连接保持活跃状态
客户端应用程序不需要重新连接. 提供冗余和状态连接 通过 stateful link. 提供
蓝狐网络技术培训学校
5.2 故障恢复简介
端口等信息),只有匹配该会话表项的后续报文(包括返回报文)才能够
通过防火墙。如果链路切换后,后续报文找不到正确的表项,会导致当前 业务中断。
蓝狐网络技术培训学校
故障恢复
故障恢复产生背景 故障恢复功能简介 故障恢复技术特点 故障恢复详细配置 故障恢复组网应用
蓝狐网络技术培训学校
failover功能简介
Primary: Active Security Appliance 192.168.2.2 10.0.2.1 Serial Cable 192.168.2.7 10.0.2.7 Secondary: Standby Security Appliance
● 状态链路接口用于传递从主动单元到备用单元所有已经建立连接的状态。 在每一个状态故障恢复设置中,传递到备用单元的信息包含如下内容 NAT的转换表 TCP连接 UDP的连接状态 ARP条目 在透明防火墙模式运行下的第2层桥接表 HTTP链路状态(如启用HTTP复制) Internet安全关联和密钥管理协议(ISAKMP) IPSEC 的SA服务表
Internet
安全设备支持两种故障恢复类型:常规故障恢复和状态故障恢复
Hardware failover
Stateful failover
蓝狐网络技术培训学校
5.2 故障恢复简介
安全设备支持两种故障恢复类型:常规故障恢复和状态故障恢复
Hardware failover
5.3 故障恢复设备要求
● 故障恢复对其中的两个安全设备必须完全相同,并且通过专用故障 恢复链路(接口)连接。若启用安全设备上的故障恢复特性,则设 备需要满足下列条件:
具有相同数量的模块和硬件配置; 具有相同的接口号和类型; 具有相同的内存容量和RAM容量; 处于相同的操作模式(路由或透明,单一或多环境); 具有相同的软件版本;(主、次版本必须一致) 具有相同的特性: (DES或3DES); 合适的licensing