Oracle Data Guard (四) Failover

1.检查Standby数据库上有遗漏掉Log

用下列命令检查是否有漏掉的log:

SQL> select thread#,log_sequence#,high_sequence# from v$archive_gap;


把漏掉的log文件从primary 数据库拷贝到standby数据库指定的log目录,用以下命令注册进standby数据库:

SQL> alter database register physical logfile ‘filespec1’;

2.在Standby数据库上停止log 应用进程

SQL> alter database recover managed standby database cancel;

SQL> alter database recover managed standby database finish;


如果应用所有redo log时遇到错误,可以用以下命令执行failover:
SQL> alter database activate physical standby database;

3.检查Standby数据库的状态

SQL> select switchover_status from v$database;

只有状态为 "TO PRIMARY" 或者 "SESSIONS ACTIVE" 才能对Standby数据库进行角色切换。

4.切换Standby数据库为Primary角色

SQL> alter database commit to switchover to primary with session shutdown;

SQL> alter database open;

5.修复Primary数据库

得到新Primary 角色的standby数据库的SCN:

SQL> select to_char(standby_became_primary_scn) from v$database;


还原Primary数据库到上面得到的SCN:
RMAN> RUN
{
Set until scn <standby_became_primary_scn+1>;
Restore database;
Recover database;

}


切换primary数据库为physical standby角色:

SQL> alter database covert to physical standby;

SQL> shutdown immediate;

SQL> startup mount;


打开为只读方式同步log file,然后再重启动:

SQL> alter database open read only;

SQL> shutdown immediate;

SQL> startup mount;


在primary数据库上启用log应用进程:

SQL> alter database recover managed standby database using current logfile disconnect;


另外可以从当前Primary角色的standby数据库的备份去重建primary数据库,或者重复standby执行过程,通过RMAN脚本重建primary数据库。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值