Un failover è un evento non pianificato che presuppone la perdita del database primario. Il database in standby viene convertito in un database primario subito dopo l'applicazione di tutti i log redo
primari disponibili. È possibile utilizzare flashback e Oracle Data Guard Broker per ripristinare il database primario originale come database in standby fisico.
Dopo un failover, il database primario originale deve essere ripristinato come database in standby fisico. Reintegrare il database primario originale è più facile quando il database flashback è abilitato e Oracle Data Guard Broker è abilitato.
Il passo 3 in questo esempio chiude il database primario in locale per imitare un'indisponibilità non pianificata. In questo esempio viene utilizzato Oracle Data Guard Broker per ripristinare il database primario.
- Database in locale:
db1
- istanza database in standby fisico nel cloud:
db1_phx3g7
- Nella Oracle Exadata Database Machine locale principale eseguire il login come
sysdba
- Visualizza la configurazione per il database in locale.
DGMGRL> show configuration;
L'output dovrebbe essere simile a quanto segue:
Configuration - onpremexadr
Protection Mode: MaxPerformance
Members:
db1 - Primary database
db1_phx3g7 - Physical standby database
Warning: ORA-16809: multiple warnings detected for the member
Fast-Start Failover: Disabled
Configuration Status:
WARNING (status updated 36 seconds ago)
- Connettersi all'istanza database locale primaria ed eseguire una chiusura per imitare un'indisponibilità non pianificata.
bash-4.2$ sqlplus / as sysdba
SQL> shutdown abort;
L'output dovrebbe essere simile a quanto segue:
ORACLE instance shut down.
- In Oracle Database Exadata Cloud Service, visualizzare la configurazione per l'istanza database.
DGMGRL> show configuration;
L'output dovrebbe essere simile a quanto segue:
Configuration - onpremexadr
Protection Mode: MaxPerformance
Members:
db1 - Primary database
Error: ORA-12514: TNS:listener does not currently know of service requested in
connect descriptor
db1_phx3g7 - Physical standby database
Fast-Start Failover: Disabled
Configuration Status:
ERROR (status updated 0 seconds ago)
- Avviare il failover all'istanza Oracle Database Exadata Cloud Service.
DGMGRL> > failover to db1_phx3g7;
L'output dovrebbe essere simile a quanto segue:
Performing failover NOW, please wait...
Failover succeeded, new primary is "db1_phx3g7"
- Visualizza la configurazione per l'istanza di database in Oracle Database Exadata Cloud Service.
DGMGRL> show configuration;
L'output dovrebbe essere simile a quanto segue:
Configuration - onpremexadr
Protection Mode: MaxPerformance
Members:
db1_phx3g7 - Primary database
Warning: ORA-16809: multiple warnings detected for the member
db1 - Physical standby database (disabled)
ORA-16661: the standby database needs to be reinstated
Fast-Start Failover: Disabled
Configuration Status:
WARNING (status updated 28 seconds ago)
- Nella Oracle Exadata Database Machine (db1) in locale, che ora è in standby, avviare l'istanza su un nodo.
$srvctl start instance -db db1 -instance db11
- Utilizzare il comando
reinstate database
per rendere il database in standby primario disattivato. reinstate
rende il vecchio database in standby disattivato primario, consentendogli di ricevere redo
dati dal nuovo database primario (il database in standby attivato).
DGMGRL> reinstate database db1;
L'output dovrebbe essere simile a quanto segue:
Reinstating database
"db1", please wait...Reinstatement of database "db1" succeeded
- Visualizza la configurazione per l'istanza di database in locale.
DGMGRL> show configuration;
L'output dovrebbe essere simile a quanto segue:
Configuration - onpremexadr
Protection Mode: MaxPerformance
Members:
db1_phx3g7 - Primary database
db1 - Physical standby database
Fast-Start Failover: Disabled
Configuration Status:
SUCCESS (status updated 14 seconds ago)
- Passare a Oracle Exadata Database Machine in locale quando necessario.