Oracle Data Guard 的角色转换
[日期:2013-06-18]
来源:Linux社区 作者:newhappy
[字体:大 中 小]
二、Failover
一旦主数据库发生Crash(比如异常掉电、硬件故障),短时间内无法恢复运行,这时为了尽快的把业务恢复正常,通常需要执行failover操作,将Standby数据库强制打开。Failover 通常意味着有一定的数据丢失,而数据丢失问题在Primary Database 是 RAC 时表现的尤为突出,需要重点关注。
Failover步骤如下:
1 停止应用日志:
SQL> recover managed standby database cancel;
Media recovery complete.
2 强制结束日志应用,执行下面命令:
SQL> alter database recover managed standby database finish [force];
Database altered.
这个force是可选项,这个命令是告诉Standby Database的MRP,不要再等待Redo了,并尽可能多的应用现有的Redo记录,并要模拟一个Switchover命令。force参数的作用是关闭PFS进程,否则MRP进程看到RFS进程还存在,就会认为对应的Primary Database还是正常的,就不会允许进程failover,11g中,force参数成了缺省的参数,同时force参数也被取消了。
一旦finish命令完成,DG的数据保护模式就会降级到Maximun Performance,不论原来是什么保护级别。
3 进行正常的switchover:
SQL> alter database commit to switchover to primary with session shutdown;
Database altered.
4 open数据库。
SQL>alter database open;
在打开数据库时,这个新的Primary Database 会尝试去连接Standby Database(也就是那个出了故障的Primary Database),因此打开过程会挂起一段时间,当尝试几次后,最终会打开数据库,这时数据库的保护级别就是Maximun Performance的,以后需要手工将其提升为其他级别。
更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12