Oracle Data Guard 的角色转换(Failover)

2017/11/02 17:07
阅读数 150

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

展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部