Convalida prontezza DR

Esaminare le procedure ottimali per la disponibilità al disaster recovery e verificare la configurazione del disaster recovery per gli eventi pianificati e non pianificati.

Informazioni sulla prontezza DR

Rivedere le procedure ottimali per la disponibilità al ripristino delle catastrofi (DR).

Utilizzare Active Data Guard per scaricare il carico di lavoro di sola lettura nel database in standby per fornire la convalida continua a livello di applicazione che il database in standby è pronto per la produzione. Ciò fornisce un livello di affidabilità oltre alla convalida a livello di blocco Oracle continua eseguita dai processi di applicazione Oracle Data Guard.

Utilizzare un database in standby snapshot per creare una replica esatta di un database di produzione a scopo di sviluppo e test. Posizionare periodicamente il standby in modalità lettura/scrittura (utilizzando Data Guard Snapshot Standby) per convalidarne la disponibilità a supportare i carichi di lavoro di produzione in lettura/scrittura. Un database in standby snapshot può essere utilizzato anche per un livello finale di test funzionali e delle prestazioni delle patch e degli aggiornamenti poiché la dimensione del sistema DR è simile al sistema di produzione. Un database in standby snapshot continua a ricevere redo dal database primario in cui viene archiviato per un uso successivo, che fornisce sempre protezione dei dati. Tuttavia, il tempo di recupero (RTO) verrà esteso in base alla quantità di tempo necessaria per convertire il standby snapshot nel database in standby se è richiesto un failover durante il test in corso. È necessaria un'ulteriore memorizzazione per l'area di recupero rapido quando un standby è in modalità snapshot (per contenere i redo archiviati ricevuti dal database di produzione primario per usi successivi e i redo e i flashback log correnti generati dal database in standby snapshot).

Di seguito sono riportati alcuni dei vantaggi derivanti dall'utilizzo di un database in standby snapshot.

  • Fornisce una replica esatta di un database di produzione per lo sviluppo e il test mantenendo la protezione dei dati in qualsiasi momento. È possibile utilizzare l'opzione Oracle Real Application Testing per acquisire il carico di lavoro del database primario, quindi ripeterlo ai fini del test in standby snapshot.
  • Viene facilmente aggiornato per contenere i dati di produzione correnti convertendoli in standby fisico e risincronizzando.

Converti database in standby in standby snapshot

Quando si desidera una replica esatta di un database di produzione, è possibile utilizzare Oracle Data Guard Broker per convertire il database in standby fisico in un database in standby snapshot e convalidare il failover.

Uno standby snapshot è un database in standby completamente aggiornabile creato da un database in standby fisico. Nei database in standby snapshot vengono ricevuti i dati redo ma non applicati finché il database in standby snapshot non viene convertito in un database in standby fisico.

L'interfaccia della riga di comando Oracle Data Guard (DGMGRL) consente di gestire una configurazione broker Oracle Data Guard e i suoi vari membri direttamente dall'interfaccia della riga di comando.

  1. Eseguire il login a una sessione DGMGRL sull'istanza di database in standby con il nome utente e la password sys.
    DGMRGL> connect
    Username: sys
    Password:
    L'output sarà simile al seguente:
    Connected to "ORCLCDB_iad1s3"
    Connected as SYSDBA.
  2. Convertire il database in standby fisico in un database in standby snapshot.
    DGMGRL> convert database standby_database_unique_name (standbyDB) to snapshot standby;
    Al termine della conversione, l'output avrà una linea simile alla seguente:
    Converting database "standby_database_unique_name" to a Snapshot Standby database, please wait...
    Database "standby_database_unique_name" converted successfully
  3. Visualizzare la configurazione per verificare la conversione.
    DGMGRL> show configuration;
    L'output sarà simile al seguente:
    Configuration - onpremdr
      Protection Mode: MaxPerformance
      Members:
      orclcdb_iad1s3 - Primary database
        orclcdb        - Physical standby database 
    Fast-Start Failover:  Disabled
    Configuration Status:
    SUCCESS   (status updated 26 seconds ago)
  4. Convertire il database in standby snapshot in un database in standby fisico.
    DGMGRL> convert database standby_database_unique_name to physical standby;
    L'output sarà simile al seguente:
    Converting database "orclcdb" to a Physical Standby database, please wait...
    Operation requires a connection to database "orclcdb_iad1s3"
    Connecting ...
    Connected to "ORCLCDB_IAD1S3"
    Connected as SYSDBA.
    Operation requires shut down of instance "ORCLCDB" on database "orclcdb"
    Shutting down instance "ORCLCDB"...
    Connected to "ORCLCDB"
    Database closed.
    Database dismounted.
    ORACLE instance shut down.
    Operation requires start up of instance "ORCLCDB" on database "orclcdb"
    Starting instance "ORCLCDB"...
    Connected to an idle instance.
    ORACLE instance started.
    Connected to "ORCLCDB"
    Database mounted.
    Connected to "ORCLCDB"
    Continuing to convert database "orclcdb" ...
    Database "orclcdb" converted successfully
  5. Visualizzare la configurazione per verificare la conversione.
    DGMGRL> show configuration;
    L'output sarà simile al seguente:
    Configuration - onpremdr
    
      Protection Mode: MaxPerformance
      Members:
      orclcdb_iad1s3 - Primary database
        orclcdb        - Physical standby database 
          Warning: ORA-16854: apply lag could not be determined
    
    Fast-Start Failover:  Disabled
    
    Configuration Status:
    WARNING   (status updated 11 seconds ago)

Imposta i parametri di Oracle Data Guard

Prima di eseguire uno switchover, impostare i parametri Oracle Data Guard sulle istanze di database primario e in standby.

  1. Nel database primario in locale, controllare il numero SCN (System Change Number).
    select standby_became_primary_scn from v$database;
    L'output sarà simile al seguente:
    STANDBY_BECAME_PRIMARY_SCN
    --------------------------
                                  0
  2. Verificare che il flashback non sia abilitato sul database primario.
    select flashback_on from v$database;
    L'output sarà simile al seguente:
    FLASHBACK_ON
    ------------------
    NO
  3. Nell'istanza locale creare una directory di recupero con lo stesso nome di database primario dell'utente Oracle.
    In questo esempio, ORCLCDB è il nome del database in locale.
    [oracle@bastion dbhome_1]$ cd /opt/oracle/
    [oracle@bastion oracle]$ mkdir recovery
    [oracle@bastion oracle]$ cd recovery/
    [oracle@bastion recovery]$ mkdir ORCLCDB
    [oracle@bastion oracle]$ cd ORCLCDB /
    Confermare il percorso completo.
    $ pwd
    /opt/oracle/recovery/ORCLCDB
  4. Impostare la dimensione del parametro DB_RECOVERY_FILE_DEST_SIZE in modo che soddisfi la dimensione del database.
    Nell'esempio riportato di seguito viene utilizzato 20G come dimensione dei dati campione. Impostare la dimensione dei dati in base al database.
    SQL> alter system set DB_RECOVERY_FILE_DEST_SIZE=20G;
    System altered
  5. Definire la destinazione del file di recupero del database nella directory creata in precedenza.
    SQL> alter system set db_recovery_file_dest = '/opt/oracle/recovery/on_premises_SID';
    System altered
  6. Abilita flashback sul database primario.
    SQL> alter database flashback on;
    Database altered
  7. Verificare che il flashback del database sia abilitato (on).
    SQL> select flashback_on from v$database;
    L'output sarà simile al seguente:
    FLASHBACK_ON
    ------------------
    YES
  8. Determinare se il flashback è abilitato nel database in standby OCI nel cloud.
    SQL> select flashback_on from v$database;
    L'output sarà simile al seguente:
    FLASHBACK_ON
    ------------------
    NO
  9. Eseguire una query sullo stato della modalità aperta per il database in standby nel cloud.
    SQL> select open_mode from v$database;
    L'output sarà simile al seguente:
    OPEN_MODE
    -------------------- 
    MOUNTED
  10. Impostare il flashback sull'istanza di database nel cloud.
    SQL> alter database recover managed standby database cancel;
    Database altered
  11. Eseguire una query sullo stato della modalità aperta per il database in standby nel cloud.
    SQL> select open_mode from v$database;
    L'output sarà simile al seguente:
    OPEN_MODE
    -------------------- 
    MOUNTED
  12. Abilitare il flashback per il database in standby.
    SQL> alter database flashback on;
    Database altered
  13. Disconnette il database in standby dalla sessione.
    SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
    Database altered
  14. Verificare che il flashback del database sia abilitato (on).
    SQL> select flashback_on from v$database;
    FLASHBACK_ON
    ------------------
    YES
  15. Visualizza i parametri di conservazione.
    SQL> show parameter_retention;
    L'output sarà simile al seguente:
    NAME				     TYPE	 VALUE
    ------------------------------------ ----------- ------------------------------
    db_flashback_retention_target	     integer	 1440
    undo_retention			      integer	 900

Passa il database primario da locale a OCI

Quando si dispone di un'attività pianificata, ad esempio la manutenzione, è possibile fare del database in Oracle Cloud Infrastructure (OCI) il database primario con perdita di dati pari a zero. Uno switchover è un evento pianificato avviato nel database in locale e completato nell'istanza del database nel cloud.

  1. Eseguire il login a una sessione DGMGRL nel database in locale con un nome utente e una password sys.
    DGMRGL> connect
  2. Nel database in locale, verificare che il database in standby sia pronto per lo switchover e il failover.
    In questo esempio, il database primario è orclcdb e il database in standby è orclcdb_iadls3.
    DGMGRL> validate database orclcdb_iad1s3 (StandbyDatabaseOCIInstance)
    L'output sarà simile al seguente:
    Database Role:     Physical standby database
      Primary Database:  orclcdb
    
      Ready for Switchover:  Yes
      Ready for Failover:    Yes (Primary Running)
    
      Managed by Clusterware:
        orclcdb       :  NO             
        orclcdb_iad1s3:  NO             
        Validating static connect identifier for the primary database orclcdb...
        The static connect identifier allows for a connection to database "orclcdb".
    
      Log Files Cleared:
        orclcdb Standby Redo Log Files:         Cleared
        orclcdb_iad1s3 Online Redo Log Files:   Not Cleared
        orclcdb_iad1s3 Standby Redo Log Files:  Available
    
      Current Log File Groups Configuration:
        Thread #  Online Redo Log Groups  Standby Redo Log Groups Status       
                  (orclcdb)               (orclcdb_iad1s3)                     
        1         3                       2                       Insufficient SRLs
    
      Future Log File Groups Configuration:
        Thread #  Online Redo Log Groups  Standby Redo Log Groups Status       
                  (orclcdb_iad1s3)        (orclcdb)                            
        1         3                       0                       Insufficient SRLs
        Warning: standby redo logs not configured for thread 1 on orclcdb
  3. Nel database locale (primario) eseguire il comando per eseguire lo switchover al database in standby.
    DGMGRL> switchover to orclcdb_iad1s3 (StandbyDatabaseOCIInstance)
    L'output sarà simile al seguente:
    Performing switchover NOW, please wait...
    New primary database "orclcdb_iad1s3" is opening...
    Operation requires start up of instance "ORCLCDB" on database "orclcdb"
    Starting instance "ORCLCDB"...
    Connected to an idle instance.
    ORACLE instance started.
    Connected to "ORCLCDB"
    Database mounted.
    Database opened.
    Connected to "ORCLCDB"
    Switchover succeeded, new primary is "orclcdb_iad1s3"
  4. Nel database locale, visualizzare lo stato della configurazione.
    DGMGRL> show configuration
    L'output sarà simile al seguente:
    Configuration - onpremdr
    
      Protection Mode: MaxPerformance
      Members:
      orclcdb_iad1s3 - Primary database
      orclcdb        - Physical standby database 
    
    Fast-Start Failover:  Disabled
    
    Configuration Status:
    SUCCESS   (status updated 70 seconds ago)
  5. Nel database nel cloud determinare lo stato della modalità aperta.
    SQL> select open_mode from v$database;
    L'output sarà simile al seguente:
    OPEN_MODE
    -------------------- 
    READ WRITE
  6. Nel database in locale determinare lo stato della modalità aperta.
    SQL> select open_mode from v$database;
    L'output sarà simile al seguente:
    OPEN_MODE
    -------------------- 
    READ ONLY WITH APPLY
Il database in standby nel cloud è ora il database primario.

Ripristina database primario da OCI in locale

Dopo aver fatto dell'istanza di database in Oracle Cloud Infrastructure (OCI) il database primario, utilizzare l'interfaccia della riga di comando Oracle Data Guard (DGMGRL) sull'istanza di database OCI per tornare indietro e rendere nuovamente il database in locale il database primario.

  1. Convalidare i ruoli del database per il database primario nel cloud.
    In questo esempio, ORCLCDB è il nome del database in locale e orclcdb_iad1s3 è il nome dell'istanza di database nel cloud.
    DGMGRL> validate database orclcdb;
    L'output potrebbe essere simile a quello riportato di seguito.
    Database Role: Physical standby database
      Primary Database: orclcdb_iad1s3
    
      Ready for Switchover:  Yes
      Ready for Failover:    Yes (Primary Running)
    
      Managed by Clusterware:
        orclcdb_iad1s3:  NO             
        orclcdb       :  NO             
        Validating static connect identifier for the primary database orclcdb_iad1s3...
    Unable to connect to database using (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.0.2.1)(PORT=1539)))(CONNECT_DATA=(SERVICE_NAME=ORCLCDB_iad1s3_DGMGRL.sub08120021431.onpremocidrvcn.example.com)(INSTANCE_NAME=ORCLCDB)(SERVER=DEDICATED)(STATIC_SERVICE=TRUE)))
    ORA-12541: TNS:no listener
    
    Failed.
        Warning: Ensure primary database's StaticConnectIdentifier property
        is configured properly so that the primary database can be restarted
        by DGMGRL after switchover
    
      Log Files Cleared:
        orclcdb_iad1s3 Standby Redo Log Files:  Cleared
        orclcdb Online Redo Log Files:          Not Cleared
        orclcdb Standby Redo Log Files:         Available
    
      Current Log File Groups Configuration:
        Thread #  Online Redo Log Groups  Standby Redo Log Groups Status       
                  (orclcdb_iad1s3)        (orclcdb)                            
        1         3                       2                       Insufficient SRLs
    
      Future Log File Groups Configuration:
        Thread #  Online Redo Log Groups  Standby Redo Log Groups Status       
                  (orclcdb)               (orclcdb_iad1s3)                     
        1         3                       2                       Insufficient SRLs

    Se si riceve il messaggio di avvertenza dell'identificativo di connessione statico, rivedere i parametri di configurazione, il nome del servizio SID, l'indirizzo IP dell'host o l'indirizzo della porta.

  2. Eseguire il login a una sessione DGMGRL con nome utente e password sys.
    DGMRGL> connect
  3. Rivedere l'identificativo di connessione statico per il database in locale.
    DGMGRL> show database orclcdb StaticConnectIdentifier
    Rivedere l'output per verificare che i parametri StaticConnectIdentifier siano precisi. Di seguito è riportato un esempio:
    DGMGRL> show database orclcdb StaticConnectIdentifier
      StaticConnectIdentifier = '(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.0.2.1)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=ORCLCDB)(INSTANCE_NAME=ORCLCDB)(SERVER=DEDICATED)(STATIC_SERVICE=TRUE)))'
  4. Rivedere l'identificativo di connessione statico per l'istanza di database nel cloud.
    DGMGRL> show database orclcdb_iad1s3 StaticConnectIdentifier
      StaticConnectIdentifier = 
    '(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.10.30.3)(PORT=1539)
    ))(CONNECT_DATA=(SERVICE_NAME=ORCLCDB_iad1s3_DGMGRL.sub08120021431.onpremocidrvcn.examplevcn.com) 
    INSTANCE_NAME=ORCLCDB)(SERVER=DEDICATED)))'
    Rivedere l'output per verificare che i parametri StaticConnectIdentifier, ad esempio il numero di porta e il nome del servizio, siano corretti.
  5. Correggere i parametri StaticConnectIdentifier, ad esempio il numero di porta e il nome del servizio.
    Quando si modificano le proprietà, è necessario utilizzare l'interfaccia della riga di comando Oracle Data Guard (DGMGRL) senza interruzioni di riga. In questo esempio vengono corretti il numero di porta e il nome di servizio per l'istanza di database nel cloud (orclcdb_iad1s3).
    DGMGRL> edit database 'orclcdb_iad1s3' set property StaticConnectIdentifier = '(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.0.2.1)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=ORCLCDB)(INSTANCE_NAME=ORCLCDB)(SERVER=DEDICATED)))';
    Property "staticconnectidentifier" updated
  6. Convalidare l'istanza di database nel cloud.
    DGMGRL> validate database orclcdb_iad1s3;
    L'output sarà simile al seguente:
    Database Role:    Primary database
      Ready for Switchover:  Yes
    
      Managed by Clusterware:
        orclcdb_iad1s3:  NO             
        Validating static connect identifier for the primary database orclcdb_iad1s3...
        The static connect identifier allows for a connection to database "orclcdb_iad1s3".
  7. Convalidare il database in locale.
    DGMGRL> validate database orclcdb;
    L'output sarà simile al seguente:
    Database Role:     Physical standby database
      Primary Database:  orclcdb_iad1s3
      Ready for Switchover:  Yes
      Ready for Failover:    Yes (Primary Running)
    
      Managed by Clusterware:
        orclcdb_iad1s3:  NO             
        orclcdb       :  NO             
        Validating static connect identifier for the primary database orclcdb_iad1s3...
        The static connect identifier allows for a connection to database "orclcdb_iad1s3".
    
      Standby Apply-Related Information:
        Apply State:      Running
        Apply Lag:        2 seconds (computed 7 seconds ago)
        Apply Delay:      0 minutes
    
      Log Files Cleared:
        orclcdb_iad1s3 Standby Redo Log Files:  Cleared
        orclcdb Online Redo Log Files:          Not Cleared
        orclcdb Standby Redo Log Files:         Available
    
      Current Log File Groups Configuration:
        Thread #  Online Redo Log Groups  Standby Redo Log Groups Status       
                  (orclcdb_iad1s3)        (orclcdb)                            
        1         3                       2                       Insufficient SRLs
    
      Future Log File Groups Configuration:
        Thread #  Online Redo Log Groups  Standby Redo Log Groups Status       
                  (orclcdb)               (orclcdb_iad1s3)                     
        1         3                       2                       Insufficient SRLs
  8. Visualizzare e rivedere la configurazione.
    DGMGRL> show configuration;
    L'output sarà simile al seguente:
    Configuration - onpremdr
    
      Protection Mode: MaxPerformance
      Members:
      orclcdb_iad1s3 - Primary database
        orclcdb        - Physical standby database 
    
    Fast-Start Failover:  Disabled
    
    Configuration Status:
    SUCCESS   (status updated 27 seconds ago)
  9. Passaggio dall'istanza di database in OCI al database locale.
    DGMGRL> switchover to orclcdb;
    L'output sarà simile al seguente:
    Performing switchover NOW, please wait...
    Operation requires a connection to database "orclcdb"
    Connecting ...
    Connected to "ORCLCDB"
    Connected as SYSDBA.
    New primary database "orclcdb" is opening...
    Operation requires start up of instance "ORCLCDB" on database "orclcdb_iad1s3"
    Starting instance "ORCLCDB"...
    Connected to an idle instance.
    ORACLE instance started.
    Connected to "ORCLCDB_iad1s3"
    Database mounted.
    Database opened.
    Connected to "ORCLCDB_iad1s3"
    Switchover succeeded, new primary is "orclcdb"
    Dopo aver eseguito il MOUNT del database, è possibile ricevere la seguente avvertenza:
    ORA-16000: database or pluggable database open for read-only access  
    
    Please complete the following steps to finish switchover:
           start up instance "ORCLCDB" of database "orclcdb" 

    È possibile ignorare l'avvertenza e procedere con il passo successivo.

  10. Sul database in standby, che ora è il database primario, connettersi e rivedere la configurazione.
    DGMGRL> show configuration;
    L'output sarà simile al seguente:
    Configuration - onpremdr
    
      Protection Mode: MaxPerformance
      Members:
      orclcdb        - Primary database
        orclcdb_iad1s3 - Physical standby database 
    
    Fast-Start Failover:  Disabled
    
    Configuration Status:
    SUCCESS   (status updated 86 seconds ago)
  11. Nell'istanza di database primario ORCLCDB verificare che la modalità sia read write.
    SQL> select database_role, open_mode from v$database;
    DATABASE_ROLE	 OPEN_MODE
    ---------------- --------------------
    PRIMARY 	   READ WRITE
  12. (Facoltativo) È possibile utilizzare il comando verbose per visualizzare un dump completo dello stack, inclusi il ruolo, lo stato, l'istanza, le proprietà e la posizione dell'alert log e del log del broker Data Guard.
    DGMGRL> show database verbose orclcdb

È possibile cambiare il database primario avanti e indietro tra il database in locale e l'istanza del database OCI.