Completare la configurazione

Configurare Oracle Data Guard, registrare il database in standby e sincronizzare le password del database in locale e in standby.

Configura broker Oracle Data Guard

Configurare Oracle Data Guard abilitando il parametro dg_broker_config_file sui database primario e in standby. Per Oracle Automatic Storage Management (Oracle ASM), posizionare i file di configurazione del broker su gruppi di dischi separati. Per Oracle Real Application Clusters (Oracle RAC), i file di configurazione del broker devono trovarsi nella memoria condivisa.

  1. Controllare il valore dg_broker_start per l'host del database in locale. Dovrebbe essere impostato su false.
    SQL> show parameter dg_broker_start;
    L'output sarà simile al seguente:
    NAME 			TYPE 			VALUE 
    ------------------------------------ ----------- ------------------------------ 
    dg_broker_start 	boolean 		FALSE 
  2. Controllare i file Oracle Data Guard per il database in locale.
    SQL> show parameter dg_broker_config_file1;
    SQL> show parameter dg_broker_config_file2;
  3. Se si dispone di Oracle RAC o Oracle ASM, è possibile modificare la posizione del file di configurazione.
    SQL> alter system set dg_broker_config_file1=broker_config_file location; 
    SQL> alter system set dg_broker_config_file2=broker_config_file location;
  4. Avviare il processo Broker Oracle Data Guard nel database primario.
    SQL> alter system set dg_broker_start=true;
    SQL> show parameter dg_broker_start 
    NAME 			TYPE 			VALUE 
    ------------------------------------ ----------- ------------------------------ 
    dg_broker_start 	boolean 		TRUE
    SQL> select pname from v$process where pname like 'DMON%';
    PNAME 
    ----- 
    DMON 
  5. Controllare il valore dg_broker_start per l'host del database in standby. Deve essere impostato su false.
    SQL> show parameter dg_broker_start;
    L'output sarà simile al seguente:
    NAME 			TYPE 			VALUE 
    ------------------------------------ ----------- ------------------------------ 
    dg_broker_start 	boolean 		FALSE 
  6. Controllare i file Oracle Data Guard nel database in standby.
    SQL> show parameter dg_broker_config_file1;
    SQL> show parameter dg_broker_config_file2;
  7. Se si dispone di Oracle RAC o Oracle ASM, è possibile modificare la posizione del file di configurazione.
    SQL> alter system set dg_broker_config_file1=broker_config_file location; 
    SQL> alter system set dg_broker_config_file2=broker_config_file location;
  8. Avviare il processo Oracle Data Guard Broker sul database in standby.
    SQL> alter system set dg_broker_start=true; 
    SQL> show parameter dg_broker_start
    NAME 			TYPE 			VALUE 
    ------------------------------------ ----------- ------------------------------ 
    dg_broker_start 	boolean 		TRUE
    SQL> select pname from v$process where pname like 'DMON%';
    PNAME 
    ----- 
    DMON 

Registra il database in standby

Utilizzare l'interfaccia della riga di comando Oracle Data Guard (DGMGRL) per registrare o aggiungere il profilo del database in standby alla configurazione del broker sull'host primario in locale.

  1. Eseguire il login all'host primario come sys.
    $ dgmgrl sys/sys password@net service name for primary database
  2. Creare una configurazione che utilizzi il nome del database primario.
    DGMGRL> CREATE CONFIGURATION configuration_name AS PRIMARY DATABASE IS primary database name CONNECT
              IDENTIFIER IS primary database name;
  3. Aggiungere il database in standby.
    DGMGRL> ADD DATABASE standby unique database name AS CONNECT IDENTIFIER IS standby unique database name MAINTAINED AS PHYSICAL; 
  4. Abilita la configurazione.
    DGMGRL> enable configuration;
  5. Visualizzare la configurazione.
    DGMGRL> show configuration;
    L'output sarà simile al seguente:
    Configuration - OnPremDr
     Protection Mode: MaxPerformance
     Members:
    ORCLCDB - Primary database
     Warning: ORA-16789: standby redo logs configured incorrectly
    orclcdb_iad1s3 - Physical standby database
    Error: ORA-16810: multiple errors or warnings detected for the member
     Fast-Start Failover: Disabled
     Configuration Status:
     ERROR (status updated 10 seconds ago)

Copia i redo log file da on premise in OCI

Copiare i file di log redo e gli altri file di database dal database in locale nell'istanza OCI (Oracle Cloud Infrastructure).

  1. Visualizzare i file di database in locale.
    select name from v$datafile;
    L'output sarà simile al seguente:
    NAME
    --------------------------------------------------------------------
    /opt/oracle/oradata/ORCLCDB/system01.dbf
    /opt/oracle/oradata/ORCLCDB/sysaux01.dbf
    /opt/oracle/oradata/ORCLCDB/undotbs01.dbf
    /opt/oracle/oradata/ORCLCDB/pdbseed/system01.dbf
    /opt/oracle/oradata/ORCLCDB/pdbseed/sysaux01.dbf
    /opt/oracle/oradata/ORCLCDB/users01.dbf
    /opt/oracle/oradata/ORCLCDB/pdbseed/undotbs01.dbf
    /opt/oracle/oradata/ORCLCDB/ORCLPDB1/system01.dbf
    /opt/oracle/oradata/ORCLCDB/ORCLPDB1/sysaux01.dbf
    /opt/oracle/oradata/ORCLCDB/ORCLPDB1/undotbs01.dbf
    /opt/oracle/oradata/ORCLCDB/ORCLPDB1/users01.dbf
  2. Visualizzare le dimensioni di ciascun gruppo per i file di dati in locale.
    select bytes, group# from v$log;
    L'output sarà simile al seguente:
    BYTES     GROUP#
    ---------- ----------
     209715200	    1
     209715200	    2
     209715200	    3
  3. Visualizzare i log redo per i file di dati in locale.
    select member from v$logfile;
    L'output sarà simile al seguente:
    MEMBER
    ---------------------------------------------------
    /opt/oracle/oradata/ORCLCDB/redo03.log
    /opt/oracle/oradata/ORCLCDB/redo02.log
    /opt/oracle/oradata/ORCLCDB/redo01.log
  4. Aggiungere un gruppo di file di log in standby per ogni log redo.
    Ad esempio, se sono presenti tre file di log redo, aggiungere tre gruppi di file di log in standby.
    SQL> alter database add standby logfile group 4('/opt/oracle/oradata/ORCLCDB/redo_sb04.log') size 209715200;
    Database altered.
    
    SQL> alter database add standby logfile group 5('/opt/oracle/oradata/ORCLCDB/redo_sb05.log') size 209715200;
    Database altered.
    
    SQL> alter database add standby logfile group 6('/opt/oracle/oradata/ORCLCDB/redo_sb06.log') size 209715200;
    Database altered.
  5. Visualizza il numero di gruppo e i membri del file di log.
    SQL> select group#,member from v$logfile;
    L'output sarà simile al seguente:
    GROUP#          MEMBER
    --------------------------------------------------------------------
    	 3
    /opt/oracle/oradata/ORCLCDB/redo03.log
    
    	 2
    /opt/oracle/oradata/ORCLCDB/redo02.log
    
    	 1
    /opt/oracle/oradata/ORCLCDB/redo01.log
    
    	 4
    /opt/oracle/oradata/ORCLCDB/redo_sb04.log
    
    	 5
    /opt/oracle/oradata/ORCLCDB/redo_sb05.log
    
    	 6
    /opt/oracle/oradata/ORCLCDB/redo_sb06.log
    
    6 rows selected.
  6. Visualizzare la configurazione in Oracle Data Guard.
    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 60 seconds ago)
  7. Visualizzare i redo log nell'istanza di database OCI in standby.
    select member from v$logfile;
    L'output sarà simile al seguente:
    MEMBER
    ---------------------------------------------------
    /opt/oracle/oradata/ORCLCDB/redo03.log
    /opt/oracle/oradata/ORCLCDB/redo02.log
    /opt/oracle/oradata/ORCLCDB/redo01.log
  8. Eseguire il login a una sessione DGMGRL (Oracle Data Guard CommandLine Interface) nell'istanza di database OCI in standby con il nome utente e la password sys.
    [oracle@droci admin]$ dgmgrl 
    DGMGRL> connect
    Username: sys
    Password:
    L'output sarà simile al seguente:
    .
    .
    .
    Welcome to DGMGRL, type "help" for information.
    Connected to "ORCLCDB_iad1s3"
    Connected as SYSDBA.
  9. Visualizzare la configurazione sul database in standby in OCI.
    DGMGRL> show configuration;
    L'output sarà simile al seguente:
    Configuration - OnPremDr
    
      Protection Mode: MaxPerformance
      Members:
      ORCLCDB        - Primary database
        orclcdb_iad1s3 - Physical standby database 
          Warning: ORA-16809: multiple warnings detected for the member
    
    Fast-Start Failover:  Disabled
    
    Configuration Status:
    WARNING  (status updated 50 seconds ago)
  10. Modificare l'istanza di database in standby in OCI e impostare lo stato su apply-off, quindi uscire dall'interfaccia della riga di comando.
    DGMGRL> edit database orclcdb_iad1s3 set state=apply-off;
    Succeeded.
    DGMGRL> exit
  11. Eseguire il login all'istanza del database in standby in OCI.
    [oracle@droci admin]$ sqlplus / as sysdba
  12. Visualizza il numero di gruppo e i membri del file di log.
    SQL> select group#,member from v$logfile;
    L'output sarà simile al seguente:
        GROUP#   MEMBER
    --------------------------------------------------------------------
    	 3
    /opt/oracle/oradata/ORCLCDB/redo03.log
    
    	 2
    /opt/oracle/oradata/ORCLCDB/redo02.log
    
    	 1
              /opt/oracle/oradata/ORCLCDB/redo01.log
  13. Visualizzare la dimensione di ciascun gruppo.
    select bytes, group# from v$log;
    L'output sarà simile al seguente:
    BYTES     GROUP#
    ---------- ----------
     209715200	    1
     209715200	    3
     209715200	    2
    
  14. Aggiungere i gruppi di file di log in standby al database in OCI.
    SQL> alter database add standby logfile group 4('/opt/oracle/oradata/ORCLCDB/redo_sb04.log') size 209715200;
    Database altered.
    
    SQL> alter database add standby logfile group 5('/opt/oracle/oradata/ORCLCDB/redo_sb05.log') size 209715200;
    Database altered.
    
    SQL> alter database add standby logfile group 6('/opt/oracle/oradata/ORCLCDB/redo_sb06.log') size 209715200;
    Database altered.
  15. Visualizza il numero di gruppo e i membri del file di log.
    SQL> select group#,member from v$logfile;
    L'output sarà simile al seguente:
    GROUP#          MEMBER
    --------------------------------------------------------------------
    	 3
    /opt/oracle/oradata/ORCLCDB/redo03.log
    
    	 2
    /opt/oracle/oradata/ORCLCDB/redo02.log
    
    	 1
    /opt/oracle/oradata/ORCLCDB/redo01.log
    
    	 4
    /opt/oracle/oradata/ORCLCDB/redo_sb04.log
    
    	 5
    /opt/oracle/oradata/ORCLCDB/redo_sb05.log
    
    	 6
    /opt/oracle/oradata/ORCLCDB/redo_sb06.log
    
    6 rows selected.
  16. Eseguire il login a una sessione DGMGRL (Oracle Data Guard CommandLine Interface) nell'istanza di database OCI in standby con il nome utente e la password sys.
    [oracle@droci admin]$ dgmgrl 
    DGMGRL> connect
    Username: sys
    Password:
    .
    .
    .
    Welcome to DGMGRL, type "help" for information.
    Connected to "ORCLCDB_iad1s3"
    Connected as SYSDBA.
  17. Modificare l'istanza di database in standby in OCI e impostare lo stato su apply-on.
    DGMGRL> edit database orclcdb_iad1s3 set state=apply-on;
  18. Modificare l'istanza di database in standby in OCI e impostare lo stato di trasporto su transport-on, quindi uscire dall'interfaccia della riga di comando.
    DGMGRL> edit database orclcdb_iad1s3 set state=transport-on;
    
    Succeeded.
    DGMGRL> exit
  19. Visualizzare i file di log in standby nel database in standby su OCI.
    SQL> select * from v$logfile where type='STANDBY';
    L'output sarà simile al seguente:
    GROUP# STATUS  TYPE
    ---------- ------- -------
    MEMBER
    --------------------------------------------------------------------
    IS_	CON_ID
    --- ----------
    	 4	   STANDBY
    /opt/oracle/oradata/ORCLCDB/redo_sb04.log
    NO	     0
    
    	 5	   STANDBY
    /opt/oracle/oradata/ORCLCDB/redo_sb05.log
    NO	     0
    
    	 6	   STANDBY
    /opt/oracle/oradata/ORCLCDB/redo_sb06.log
    NO	     0
  20. Visualizzare i redo log file nel database in standby su OCI.
    SQL> select member from v$logfile where type != 'STANDBY';
    L'output sarà simile al seguente:
    MEMBER
    --------------------------------------------------------------------
    /opt/oracle/oradata/ORCLCDB/redo03.log
    /opt/oracle/oradata/ORCLCDB/redo02.log
    /opt/oracle/oradata/ORCLCDB/redo01.log
  21. Recuperare il database in standby gestito.
    SQL> recover managed standby database cancel;
    L'output sarà simile al seguente:
    Media recovery complete
  22. Visualizzare i file con il parametro convert.
    SQL> show parameter convert;
    L'output sarà simile al seguente:
    NAME				     TYPE	 VALUE
    ------------------------------------ ----------- ------------------------------
    db_file_name_convert		     string
    log_file_name_convert		     string
    pdb_file_name_convert		     string
  23. Visualizzare i file di database.
    select name from v$datafile;
    L'output sarà simile al seguente:
    NAME
    --------------------------------------------------------------------
    /opt/oracle/oradata/ORCLCDB/system01.dbf
    /opt/oracle/oradata/ORCLCDB/sysaux01.dbf
    /opt/oracle/oradata/ORCLCDB/undotbs01.dbf
    /opt/oracle/oradata/ORCLCDB/pdbseed/system01.dbf
    /opt/oracle/oradata/ORCLCDB/pdbseed/sysaux01.dbf
    /opt/oracle/oradata/ORCLCDB/users01.dbf
    /opt/oracle/oradata/ORCLCDB/pdbseed/undotbs01.dbf
    /opt/oracle/oradata/ORCLCDB/ORCLPDB1/system01.dbf
    /opt/oracle/oradata/ORCLCDB/ORCLPDB1/sysaux01.dbf
    /opt/oracle/oradata/ORCLCDB/ORCLPDB1/undotbs01.dbf
    /opt/oracle/oradata/ORCLCDB/ORCLPDB1/users01.dbf
  24. Visualizzare il SCN (System Change Number) del database.
    SQL> select current_scn from v$database;
    L'output sarà simile al seguente:
    CURRENT_SCN
    -----------
        2906060
  25. Visualizzare i dettagli dell'archivio Oracle Data Guard.
    SQL> SELECT ROLE, THREAD#, SEQUENCE#, ACTION FROM V$DATAGUARD_PROCESS;
    L'output sarà simile al seguente:
    ROLE	    THREAD#     SEQUENCE#  ACTION
    ------------------------ ---------- ---------- ------------
    RFS archive			  0	     0 IDLE
    RFS archive			  0	     0 IDLE
    RFS async		           1	    18 RECEIVING
    RFS ping		            1           18 IDLE
    broker monitor		      0	     0 IDLE
    broker instance slave	      0	     0 IDLE
    archive redo			 0	     0 IDLE
    archive local			0	     0 IDLE
    redo transport timer		0	     0 IDLE
    gap manager			  0	     0 IDLE
    log writer			   0	     0 IDLE
    broker net slave		    0	     0 IDLE
    broker worker			0	     0 IDLE
    archive redo			 0	     0 IDLE
    archive redo			 0	     0 IDLE
    redo transport monitor	     0	     0 IDLE
    
    16 rows selected.
  26. Disabilitare il recupero del database in standby gestito utilizzando il file di log.
    SQL> recover managed standby database using current logfile disconnect;
    Media recovery complete.
  27. Visualizzare il SCN (System Change Number) del database.
    SQL> select current_scn from v$database;
    L'output sarà simile al seguente:
    CURRENT_SCN
    -----------
        2906060
  28. Visualizzare i file con il parametro di destinazione.
    SQL>show parameter dest;
    L'output sarà simile al seguente:
    NAME				     TYPE	 VALUE
    ------------------------------------ ----------- -------------------
    cursor_bind_capture_destination      string	 memory+disk
    db_create_online_log_dest_1	     string	 /u03/app/oracle/redo/
    db_create_online_log_dest_2	     string
    db_create_online_log_dest_3	     string
    db_create_online_log_dest_4	     string
    db_create_online_log_dest_5	     string
    db_recovery_file_dest_size	     big integer 238G
    log_archive_dest_1		     string
    log_archive_dest_10		     string
    log_archive_dest_11		     string
    log_archive_dest_12		     string
  29. Visualizzare i commenti dal recupero.
    SQL> select comments from v$recovery_progress;
    L'output sarà simile al seguente:
    COMMENTS
    --------------------------------------------------------------------
    RCVID: 4165711446800375620
    SCN: 2907015
    
    COMMENTS
    --------------------------------------------------------------------
    RCVID: 12395680609799335065
    SCN: 2906061
  30. Visualizzare la data di recupero.
    SQL> select START_TIME,comments from v$recovery_progress order by 1;
    L'output sarà simile al seguente:
    START_TIM
    ---------
    COMMENTS
    --------------------------------------------------------------------
    03-SEP-20
    03-SEP-20
    03-SEP-20
    RCVID: 2657984638848411078
    
    
    START_TIM
    ---------
    COMMENTS
    --------------------------------------------------------------------------------
    03-SEP-20