故障转移后将旧主库恢复为备库(REINSTATE)
OracleData Guard命令
# 1) Bring the old primary to MOUNT (sqlplus / as sysdba):
# SQL> STARTUP MOUNT;
# (RAC: srvctl start database -db <old_primary_db_unique_name> -startoption mount)
# 2) From DGMGRL connected to the new primary:
dgmgrl sys@<new_primary_db_unique_name>
REINSTATE DATABASE '<old_primary_db_unique_name>';
# 3) Verify:
SHOW CONFIGURATION;
SHOW DATABASE '<old_primary_db_unique_name>';作用
使用 flashback database 将旧主库闪回到故障转移 SCN 之前,转换为物理备库并开始从新主库接收 redo;无需从头重建备库。
适用场景
故障转移后,当旧主库服务器/存储再次可访问时;FSFO 自动故障转移后(observer 通常会自行 reinstate)。
注意
必须在故障转移之前就已在旧主库上启用 flashback,并且 flashback 日志必须覆盖故障转移 SCN(db_flashback_retention_target、FRA 大小);否则 reinstate 会失败,必须用 RMAN duplicate 重建备库。故障转移后写入旧主库的数据会永久丢失。