Recuperar o antigo primário como standby após um failover (REINSTATE)
OracleData GuardComando
# 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>';O que faz
Retorna o antigo primário a um ponto anterior ao SCN do failover com flashback database, converte-o em physical standby e começa a receber redo do novo primário; não é preciso recriar o standby do zero.
Quando usar
Após um failover, assim que o servidor/storage do antigo primário voltar a ficar acessível; após um failover automático do FSFO (o observer normalmente faz o reinstate sozinho).
Atenção
O flashback precisa ter sido habilitado no antigo primário ANTES do failover e os flashback logs devem cobrir o SCN do failover (db_flashback_retention_target, tamanho da FRA); caso contrário o reinstate falha e o standby precisa ser recriado com RMAN duplicate. Os dados gravados no antigo primário após o failover são perdidos definitivamente.
Relacionados
- Mostrar a configuração do Data Guard broker e o status dos bancos (DGMGRL)
- Verificar o papel primary/standby e a prontidão para switchover com SQL
- Medir o lag de transporte/aplicação, a taxa de aplicação e os processos do Data Guard no standby
- Validar o standby com o broker antes de switchover/failover (VALIDATE DATABASE)
- Executar um switchover planejado (DGMGRL, troca de papel sem perda de dados)
- Executar um failover após perder o primário (DGMGRL)