fast-start failover 就是在当主数据库出现故障时,能快速与可靠的把standby切换成主数据库,在整个过程中不需要人来干预。fast-
fast-start failover 就是在当主数据库出现故障时,能快速与可靠的把standby切换成主数据库,在整个过程中不需要人来干预。fast-start failover只能通过dgmgrl与enterprise managerg来配置。
只有maximum availability mode or maximum performance mode才能启用fast-start failover模式。在maximum availability模式下面,在切换时可以保证无数据丢失,在maximum performance mode下面,会有数据丢失,丢失多少数据由 faststartfailoverlaglimit这个参数来配置。
只要observer进程启动过,我们就不需要人为的干预。当observer与指定的备数据库与主数据库失去连接的时间超过faststartfailoverthreshold后,,observer就会启动fast-start failover 到备数据库。如果配置了faststartfailoverpmyshutdown为true,此时原来的主数据库将会自动的shutdown。如果配置faststartfailoverautoreinstate为true,当failover完成后,启动数据库时,会自动的执行reinstate database,把原来的主数据库变成备库,并与新主库进行同步。
fast-start failover包含3个过程,如下图:
测试开始:
环境:os redhat 5.6 x86_64 ,db 11.2.0.2
1,dg环境的搭建。
见oracle 11gr2 搭建活动的物理dg/dataguard (read only模式)
2,broker的配置
见
3,配置保护模式与日志传递方式
之前已经说了fast-start failover只 maximum availability mode与maximum performance mode
下面我们看一下每一种保护模式对应的日志传递方式。
3.1修改保护模式:
3.2 修改日志传递方式
4 配置数据库的flashback
4.1 主库上面
4.2 备库上面
5 配置observer服务器
5.1 配置tnsnames.ora文件。
[oracle@test admin]$ cat tnsnames.ora htzb = (description = (address_list = (address = (protocol = tcp)(host = 192.168.100.31)(port = 1521)) ) (connect_data = (server = dedicate) (service_name = htzb) ) ) htz = (description = (address_list = (address = (protocol = tcp)(host = 192.168.100.30)(port = 1521)) ) (connect_data = (server = dedicate) (service_name = htz) ) ) 5.2 启动observer进程
6 配置fast-start failover
于fst-start failove相关的其它几个参数:
faststartfailoverpmyshutdown
faststartfailoverlaglimit
faststartfailoverautoreinstate
observerconnectidentifier
这里我们都使用默认值;我们来看一下这些值的默认值;
7 启用fast-start failover
8.测试fast-start failover是否生效
dgmgrl> show configuration configuration - htz protection mode: maxavailability databases: htz - (*) physical standby database fast-start failover: enabled configuration status: success #原主库直接shutdown abort; sql> shutdown abort; oracle instance shut down. sql> #observer进程的日志 19:03:03.93 friday, september 07, 2012
initiating fast-start failover to database htz...
performing failover now, please wait...
failover succeeded, new primary is htz
19:03:13.24 friday, september 07, 2012
#提示已经把主切换到htz #在htz上面查看一下 open_mode database_role -------------------- ---------------- 已经成功手动启动原主库dgmgrl> show configuration;
configuration - htz
protection mode: maxavailability
databases:
htz - primary database
warning: ora-16817: unsynchronized fast-start failover configuration
htzb - (*) physical standby database (disabled)
ora-16661: the standby database needs to be reinstated
fast-start failover: enabled
configuration status:
warning
dgmgrl> connect sys/oracle@htzb
connected.
dgmgrl> startup
oracle instance started.
database mounted.
ora-16649: possible failover to another database prevents this database from being opened#过一分会后我们再查看一下状态dgmgrl> connect sys/oracle@htz
connected.
dgmgrl> show configuration
configuration - htz
protection mode: maxavailability
databases:
htz - primary database
htzb - (*) physical standby database
fast-start failover: enabled
configuration status:
success查看状态,一切正常。