您的位置:首页 > 数据库 > Oracle

oracle 11.2.0.4 physical standby failover

2016-07-14 14:59 531 查看
husical standby failover 11.2.0.4 on Oracle Linux5.8

1 Primary 还能mount起来的情况

 Standby 的mrp程序正常开启,Primary在mount情况下,确定flush redo

 Alter systemflush redo to ‘standby’;

默认是confirmapply

Ø  如果该语句正常完成,说明所有primary及online的redo都已经在standby 正常apply。可以进行failover转换,可直接进行第3步

Ø  如果该语句错误,或者由于applyredo log时间太长而终止此时要尽量将primary上的日志拷贝到standby进行apply,也就是进行第2步

2 对照primary现有archived log并apply至standby

(1)  查看standby已有最大sequence archivedlog

SELECT UNIQUE THREAD# AS THREAD, MAX(SEQUENCE#)

OVER (PARTITION BY thread#) AS LAST fromV$ARCHIVED_LOG;

然后再对比primary已有的archived log。如果在primary上还有比 standby 上max sequence更大的redo log,将其拷贝至standby,并用以下语句在standby上注册:

ALTER DATABASE REGISTER PHYSICAL LOGFILE'filespec1';

(2)  查看archivedlog gap

在standby 上用以下语句查看archived log gap

SELECT THREAD#, LOW_SEQUENCE#, HIGH_SEQUENCE#FROM V$ARCHIVE_GAP;

           1            90                 93

以上表示还缺少thread1的90 ,91,92,93日志。如果在primary上还能找到这些日志就像上一步一样在standby里面注册

3 stop redo apply

Alter database recover managed standby databasecancel;

4 finish redo apply

Alter database recover managed standby databasefinish;

该语句执行后,数据库将进入failover准备状态。Standby 会即可apply standby 上的redo log。

如果此语句出错,检查是否所有的日志都已经apply。如果错误无法解决采用以下语句failover

 ALTER DATABASE ACTIVATE PHYSICAL STANDBYDATABASE;

5 检查standbyswitchover_status

在standby上执行

Select switchover_status from v$database;

如果是toprimary或者sessionsactive表示都可以转换

 6 转换standby

在standby上执行

Alter database commit to switchover to primary withsession shutdown

7 开启 新primary

Alter database open;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  failover dataguard