Oracle DG主库失败Failover参考

Oracle DG(DataGuard)中,角色转换包括Switchover和Failover两种。Switchover相对比较简单和常见,这里不做赘述。这里,本文仅就Failover及然后将Failed Primary Database转换为Physical Standby Database的操作和过程做介绍和说明。
一.备库Failover为主库
1.主库失败 
--我们kill掉主库的lgwr进程模拟主库失败。
$ ps -ef | grep lgwr 
$ kill -9 6792

2.备库停止恢复应用
$ sqlplus / as sysdba
--停止恢复应用进程
SQL> alter database recover managed standby database cancel;
--检查备库切换状态和角色
SQL> select switchover_status,database_role from v$database;
--注:
1)上述SQL查询结果中转换状态为“NOT ALLOWED”。

3.备库应用所有已接收日志
--应用所有已接收日志
SQL> alter database recover managed standby database finish;
--检查备库转换状态和角色
SQL> select switchover_status,database_role from v$database;
--注:
1)上述SQL查询结果中转换状态变为“TO PRIMARY”,说明当前备库可以切换为主库。

4.备库切换为主库
--备库切换为主库
SQL> alter database commit to switchover to primary with session shutdown;
--打开数据库
SQL> alter database open;
--检查备库转换状态和角色
SQL> select switchover_status,database_role from v$database;

       SWITCHOVER_STATUS DATABASE_ROLE
       -------------------- ----------------
       RESOLVABLE GAP    PRIMARY
--注:
1)上述SQL查询结果中数据库角色变为PRIMARY,说明备库已转换为主库,Failover成功。       

二.原主库恢复上线后切换为备库
备库Failover为主库后,原主库故障解决并重新启动上线,其角色仍然是Primary,由于原备库已转换为Primary,因此,需要将原主库转换为备库,转换方法主要包括如下三种:
1)以当前新主库为基础,重新搭建备库(参照DG搭建文档,此处不再赘述)。
2)利用Oracle Flashback,将原主库转换为备库。
3)通过rman备份,将原主库转换为备库。
1.用Flashback技术将原主库转换为备库
1)新主库上获取原备库转换成主库时的SCN
SQL> select to_char(standby_became_primary_scn) from v$database;
2)根据1)中查询的SCN将原主库闪回至该SCNFlash back
SQL> shutdown immediate
SQL> startup mount
SQL> flashback database to scn 7879981;  
--注:
1)由此可见,该方法的前提数据库的flashback_on的特性已开启,开启命令为:alter database flashback on。
3)原主库转换为备库
SQL> alter database convert to physical standby;
SQL> shutdown immediate
SQL> startup
4)新备库(原主库)启用恢复应用进程
SQL> alter database recover managed standby database using current logfile disconnect from session;

2.通过RMAN将原主库转换为备库
1)新主库上获取原备库转换成主库时的SCN
SQL> select to_char(standby_became_primary_scn) from v$database;
2)根据1)中查询的SCN将原主库恢复到该SCN
RMAN > run
      {set until scn <7879981+1>;  
       restore database;            
       recover database;
      }
3)原主库转换为备库
SQL> alter database convert to physical standby;
SQL> shutdown immediate
SQL> startup mount
SQL> alter database open read only;
4)备库启用恢复应用进程
SQL> alter database recover managed standby database using current logfile disconnect from session;
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lhdz_bj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值