在工作中,当主备架构下备库异常宕机,且主备库归档日志不连续时,除去通过使用主库全备来重新搭建主备数据库的方式,如果此时有不连续归档的归档备份,可通过在主库恢复主库归档后,备库重演的方式来修复备库,缩短集群恢复的时间。
以下为当业务和主库均已停止时的恢复测试过程。
主库:
ARCHIVE_LOCAL1_0x502A0380_EP0_2025-06-06_14-31-43.log
ARCHIVE_LOCAL1_0x502A0380_EP0_2025-06-06_14-31-50.log
ARCHIVE_LOCAL1_0x502A0380_EP0_2025-06-06_14-32-00.log
ARCHIVE_LOCAL1_0x502A0380_EP0_2025-06-06_14-32-13.log
ARCHIVE_LOCAL1_0x502A0380_EP0_2025-06-06_14-32-25.log
ARCHIVE_LOCAL1_0x502A0380_EP0_2025-06-06_14-32-34.log
ARCHIVE_LOCAL1_0x502A0380_EP0_2025-06-06_14-32-48.log
ARCHIVE_LOCAL1_0x502A0380_EP0_2025-06-06_14-32-59.log
STANDBY_ARCHIVE_0x502A0380_EP0_2025-06-06_14-31-41.log
STANDBY_ARCHIVE_0x502A0380_EP0_2025-06-06_14-31-48.log
STANDBY_ARCHIVE_0x502A0380_EP0_2025-06-06_14-31-57.log
STANDBY_ARCHIVE_0x502A0380_EP0_2025-06-06_14-32-11.log
STANDBY_ARCHIVE_0x502A0380_EP0_2025-06-06_14-32-23.log
STANDBY_ARCHIVE_0x502A0380_EP0_2025-06-06_14-32-32.log
STANDBY_ARCHIVE_0x502A0380_EP0_2025-06-06_14-32-45.log
STANDBY_ARCHIVE_0x502A0380_EP0_2025-06-06_14-32-58.log
kill掉备库的守护进程和数据库服务进程
前五个为模拟备库故障前,主库已存在的归档
ARCHIVE_LOCAL1_0x502A0380_EP0_2025-06-06_14-32-13.log
ARCHIVE_LOCAL1_0x502A0380_EP0_2025-06-06_14-32-25.log
ARCHIVE_LOCAL1_0x502A0380_EP0_2025-06-06_14-32-34.log
ARCHIVE_LOCAL1_0x502A0380_EP0_2025-06-06_14-32-48.log
ARCHIVE_LOCAL1_0x502A0380_EP0_2025-06-06_14-32-59.log
ARCHIVE_LOCAL1_0x502A0380_EP0_2025-06-06_14-39-07.log
ARCHIVE_LOCAL1_0x502A0380_EP0_2025-06-06_14-39-12.log
ARCHIVE_LOCAL1_0x502A0380_EP0_2025-06-06_14-40-46.log
SQL> backup archivelog all backupset '/dm/DW01/arch_all';
通过mv模拟删除掉主库的以下归档日志(前五个为模拟备库故障前,主库已存在的归档)
ARCHIVE_LOCAL1_0x502A0380_EP0_2025-06-06_14-32-13.log
ARCHIVE_LOCAL1_0x502A0380_EP0_2025-06-06_14-32-25.log
ARCHIVE_LOCAL1_0x502A0380_EP0_2025-06-06_14-32-34.log
ARCHIVE_LOCAL1_0x502A0380_EP0_2025-06-06_14-32-48.log
ARCHIVE_LOCAL1_0x502A0380_EP0_2025-06-06_14-32-59.log
ARCHIVE_LOCAL1_0x502A0380_EP0_2025-06-06_14-39-07.log
ARCHIVE_LOCAL1_0x502A0380_EP0_2025-06-06_14-39-12.log
使用主库的归档备份来恢复主库归档,恢复归档的操作可以忽略主库归档配置的归档日志存储上限,恢复全部归档日志。
RMAN> RESTORE ARCHIVE LOG FROM BACKUPSET '/dm/DW01/arch_all' TO ARCHIVEDIR '/dm/DW01/arch' OVERWRITE 1;
归档恢复完成后,正常启动主备集群
启动完成后进行故障处理,备库完成recover,恢复正常
1)根据上述测试结果可知,此方案恢复主备数据库,需要归档备份中包含所有自备库宕机到恢复开始时的归档日志文件,不然恢复后仍会出现归档日志丢失导致的备库无法恢复问题
2)如果在主库归档恢复后有新归档日志写入,则会导致旧归档日志被轮训掉,仍会出现备库无法恢复的问题。针对该情况,可尽量保持业务停止时进行恢复
文章
阅读量
获赞