欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Oracle DataGuard故障转移(failover)后使用RMAN还原失败的主库

程序员文章站 2022-06-22 20:29:31
(一)DG故障转移后切换为备库的方法在DG执行故障转移之后,主库与从库的关系就被破坏了。这个时候如果要恢复主从关系,可以使用下面的3种方法:将失败的主库重新搭建为备库,该方法比较耗时;使用数据库闪回方法,将失败的主数据库转换为备库,该方法依赖于闪回数据库功能,在生产环境,并未启用该功能;使用RMAN备份将失败的主库转换为备库,该方法要求在失败之前主库要有RMAN备份。这里仅......

(一)DG故障转移后切换为备库的方法

在DG执行故障转移之后,主库与从库的关系就被破坏了。这个时候如果要恢复主从关系,可以使用下面的3种方法:

  • 将失败的主库重新搭建为备库,该方法比较耗时;
  • 使用数据库闪回方法,将失败的主数据库转换为备库,该方法依赖于闪回数据库功能,在生产环境,并未启用该功能;
  • 使用RMAN备份将失败的主库转换为备库,该方法要求在失败之前主库要有RMAN备份。

这里仅对第3种方法进行说明。

 

(二)使用RMAN备份还原失败的主库为备库                
STEP1:确认旧的备库成为主库时的SCN
在新的主数据库上,使用以下SQL语句查询旧备用数据库在转换为新的主库时的SCN

SQL> SELECT TO_CHAR(STANDBY_BECAME_PRIMARY_SCN) FROM V$DATABASE;

 

STEP2:修复和恢复整个数据库
通过使用STANDBY_BECAME_PRIMARY_SCN之前的备份来修复数据库,然后执行基于时间点的恢复。
使用以下RMAN命令:

RMAN> RUN
    {
      SET UNTIL SCN <standby_became_primary_scn + 1>;
      RESTORE DATABASE;
       RECOVER DATABASE;
    }

 

STEP3:转换数据库为物理备库
在旧的主数据库上执行下面的步骤:

(1)将控制文件转换为备用控制文件

SQL> ALTER DATABASE CONVERT TO PHYSICAL STANDBY;

 

(2)关闭数据库,将数据库启动到mount状态

SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;


STEP4:以只读方式打开数据库

SQL> ALTER DATABASE OPEN READ ONLY;

该步骤的目的是使用数据字典检查使控制文件与数据库同步,执行此命令之后,检查数据库告警日志文件中建议的操作。通常,如果在故障转移期间旧的主库没有添加、删除过数据文件,用户是不需要采取任何动作的。

 

STEP5:重新开始将重做日志传输到新的备库
在新的备库创建之前,新的主库可能已经停止将重做日志传输到远程地址,如果要启动重新传输服务,在主数据库上执行下面的命令。
(1)查询当前归档日志存放地址

SQL> SELECT DEST_ID, DEST_NAME, STATUS, PROTECTION_MODE, DESTINATION, ERROR,SRL FROM V$ARCHIVE_DEST_STATUS;

(2)如有必要,启用归档目的地址

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_n=ENABLE;

(3)执行日志切换命令,确保备用数据库已经开始从新的主数据库接收日志

SQL> ALTER SYSTEM SWITCH LOGFILE;
SQL> SELECT DEST_ID, DEST_NAME, STATUS, PROTECTION_MODE, DESTINATION, ERROR,SRL FROM V$ARCHIVE_DEST_STATUS;

在新的备库上,可能需要修改LOG_ARCHIVE_DEST_n参数(尤其一主多备的环境),以确保它不会将重做数据传输到其它数据库上。

 

STEP6:开启redo应用
使用如下命令开启redo日志应用

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;

至此,就将原来的主库切换为了备库。

 

【完】

 

相关文档:
1.Oracle DataGuard主备切换(switchover)
2.Oracle Dataguard故障转移(failover)操作
3.Oracle DataGuard故障转移(failover)后使用RMAN还原失败的主库

本文地址:https://blog.csdn.net/weixin_30895723/article/details/107652271