配置备库以延迟应用从主库接收的归档日志,这种延迟应用策略通常被称为“时间延迟应用”,它可以用于保护数据库免受误操作的影响,例如误删除的数据。通过设置延迟,可以在数据被误操作后的一段时间内切换到备库,从而恢复数据。
设置备库应用数据的时间比主库晚的步骤
- 停止备库上的恢复进程:
在设置延迟之前,首先需要停止备库上的恢复进程。
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
- 设置延迟应用时间:
使用 ALTER SYSTEM 命令设置 LOG_ARCHIVE_DEST_n 参数的 DELAY 属性来定义延迟的时间。
ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=standby_db_name VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=standby_unique_name DELAY=120';
在上面的例子中,设置了一个 2 小时(120 分钟)的延迟。
- 重新启动备库上的恢复进程:
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;
注意事项:
- 设置延迟应用可能会导致备库与主库之间的数据差异增大,因此在决策时需要权衡。
- 在紧急情况下,如果需要立即应用延迟的日志,可以再次停止备库的恢复进程,修改 LOG_ARCHIVE_DEST_n 参数以移除 DELAY 属性,然后重新启动恢复进程。
- 需要确保的备库有足够的磁盘空间来存储延迟应用的归档日志。
直接在备库上设置延迟应用策略
除了上面在主库上设置延迟传输日志的方法外,还可以直接在备库上设置延迟应用策略。
命令如下:
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION DELAY 60;
启动备库的管理恢复进程。使用当前的在线日志文件进行恢复。在恢复时断开会话。设置 60 分钟的延迟应用策略。
反之,在日志记录传输到备库后立即应用它们,可以使用以下命令:
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;