DBAtlas · Атлас эксплуатации баз данных

Восстановить старый primary как standby после failover (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>';

Что делает

Откатывает старый primary с помощью flashback database к моменту до SCN failover, преобразует его в физический standby и начинает приём redo от нового primary; пересоздавать standby с нуля не нужно.

Когда использовать

После failover, когда сервер/хранилище старого primary снова доступны; после автоматического failover FSFO (observer обычно выполняет reinstate сам).

Внимание

Flashback должен быть включён на старом primary ДО failover, а flashback logs должны покрывать SCN failover (db_flashback_retention_target, размер FRA); иначе reinstate завершится ошибкой и standby придётся пересоздавать через RMAN duplicate. Данные, записанные в старый primary после failover, теряются безвозвратно.

Открыть в DBAtlas →

Связанные материалы