Completare la configurazione

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

Configurare Oracle Data Guard Broker

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 di database in locale. Deve essere impostato su false.
    SQL> show parameter dg_broker_start;
    L'output sarà simile a quanto segue:
    NAME 			TYPE 			VALUE 
    ------------------------------------ ----------- ------------------------------ 
    dg_broker_start 	boolean 		FALSE 
  2. In Oracle Database Exadata Cloud Service in standby, controllare i file di configurazione di Oracle Data Guard.
    SQL> show parameter dg_broker_config_file1;
    Di seguito è riportato l'output di esempio.
    NAME                                 TYPE         VALUE
    ------------------------------------ ----------- ------------------------------
    dg_broker_config_file1               string       /u02/app/oracle/product/19.0.0.0/dbhome_5/dbs/dr1DB1_phx3g7.dat
    SQL> show parameter dg_broker_config_file2;
    Di seguito è riportato l'output di esempio.
    NAME                                  TYPE         VALUE
    ------------------------------------ ----------- ------------------------------
    dg_broker_config_file2                string /u02/app/oracle/product/19.0.0.0/dbhome_5/dbs/dr2DB1_phx3g7.dat
  3. Visualizzare i file di dati, quindi modificare la posizione in cui si desidera memorizzare i file. Ad esempio, Oracle ASM, Oracle RAC o dispositivi.
    SQL> select name from v$datafile;
    NAME
    --------------------------------------------------------------------------------
    +DATAC1/DB1_PHX3G7/DATAFILE/system.348.1063638053
    +DATAC1/DB1_PHX3G7/DATAFILE/sysaux.349.1063638055
    +DATAC1/DB1_PHX3G7/DATAFILE/undotbs1.350.1063638057
    +DATAC1/DB1_PHX3G7/DATAFILE/undotbs2.351.1063638057
    +DATAC1/DB1_PHX3G7/DATAFILE/users.352.1063638059
    SQL> alter system set dg_broker_config_file1='+DATAC1/DB1_PHX3G7/dr1DB1_phx3g7.dat';
    SQL> alter system set dg_broker_config_file2='+RECOC1/DB1_PHX3G7/dr2DB1_phx3g7.dat';
  4. Nella Oracle Exadata Database Machine locale principale, controllare i file di configurazione di Oracle Data Guard.
    SQL> show parameter dg_broker_config_file1;
    Di seguito è riportato l'output di esempio.
    NAME      TYPE      VALUE
    ------------------------------------ ----------- ------------------------------
    dg_broker_config_file1             string        /u01/app/oracle/product/19.0.0.0/dbhome_1/dbs/dr1db1.dat.dat
    SQL> show parameter dg_broker_config_file2;
    Viene visualizzato un output di esempio.
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    dg_broker_config_file2                string /u01/app/oracle/product/19.0.0.0/dbhome_1/dbs/dr2db1.dat
  5. Visualizzare i file di dati, quindi modificare la posizione in cui si desidera memorizzare i file.
    SQL> select name from v$datafile;
    Viene visualizzato un output di esempio.
    NAME
    --------------------------------------------------------------------------------
    +DATAC1/DB1/DATAFILE/system.277.1063487795
    +DATAC1/DB1/DATAFILE/sysaux.270.1063487827
    +DATAC1/DB1/DATAFILE/undotbs1.259.1063487843
    +DATAC1/DB1/DATAFILE/undotbs2.275.1063487867
    +DATAC1/DB1/DATAFILE/users.269.1063487879
    Eseguire i comandi riportati di seguito per modificare la posizione del file di configurazione.
    SQL> alter system set dg_broker_config_file1='+DATAC1/DB1/dr1db1.dat';
    SQL> alter system set dg_broker_config_file2='+RECOC1/DB1/dr2db1.dat';
    SQL> alter system set dg_broker_start=false;
    SQL> alter system set dg_broker_config_file1='+DATAC1/DB1/dr1db1.dat';
    SQL> alter system set dg_broker_config_file2='+RECOC1/DB1/dr2db1.dat';
  6. In Oracle Exadata Database Machine locale primario avviare il processo Oracle Data Guard Broker.
    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 
  7. Avviare il processo Oracle Data Guard Broker nel 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 di Oracle Data Guard (DGMGRL) per registrare o aggiungere il profilo del database in standby alla configurazione del broker nell'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;
    Ad esempio:
    CREATE CONFIGURATION OnPremExaDR AS PRIMARY DATABASE IS DB1 CONNECT IDENTIFIER IS DB1;
  3. Aggiungere il database in standby.
    Assicurarsi che l'identificativo sia uguale al nome del servizio, inclusi maiuscole e minuscole.
    DGMGRL> ADD DATABASE standby unique database name AS CONNECT IDENTIFIER IS standby unique database name MAINTAINED AS PHYSICAL; 
    Ad esempio:
    ADD DATABASE DB1_PHX3G7 AS CONNECT IDENTIFIER IS DB1_phx3g7 MAINTAINED AS PHYSICAL;
    Se si riceve un messaggio di errore ORA-16698, verificare che l'identificativo sia uguale al nome del servizio.

    Errore: ORA-16698: il membro dispone di un parametro LOG_ARCHIVE_DEST_n con set di attributi SERVICE

  4. Modificare lo stato di destinazione dell'archivio di log.
    SQL> alter system set log_archive_dest_state_10='DEFER';
    SQL> alter system set log_archive_dest_10='';
  5. Verificare la destinazione dell'archivio di log.
    SQL> show parameter log_archive_dest;
    NAME                                TYPE           VALUE
    ------------------------------------ ----------- ------------------------------
    log_archive_dest                     string
    log_archive_dest_1                   string      LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=DB1_PHX3G7
    log_archive_dest_10                  string
    log_archive_dest_11                  string
    log_archive_dest_12                  string
    log_archive_dest_13                  string
    log_archive_dest_14                  string
    log_archive_dest_15                  string
    
    NAME                                 TYPE         VALUE
    ------------------------------------ ----------- ------------------------------
    log_archive_dest_16                  string
    log_archive_dest_17                  string
    log_archive_dest_18                  string
    log_archive_dest_19                  string
    log_archive_dest_2                   string     SERVICE=DB1 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=DB1
    log_archive_dest_20                  string
    log_archive_dest_21                  string
    log_archive_dest_22                  string
    log_archive_dest_23                  string
  6. Abilitare la configurazione.
    DGMGRL> enable configuration;
  7. Visualizzare la configurazione.
    DGMGRL> show configuration;
    L'output sarà simile a quanto riportato di seguito.
    Configuration - onpremexadr
      Protection Mode: MaxPerformance
      Members:
      db1        - Primary database
        Warning: ORA-16809: multiple warnings detected for the member
        db1_phx3g7 - Physical standby database 
          Error: ORA-16532: Oracle Data Guard broker configuration does not 
    exist
    Fast-Start Failover:  Disabled
    Configuration Status:
    ERROR   (status updated 21 seconds ago)
  8. In Oracle Database Exadata Cloud Service in standby eseguire il login per verificare la configurazione.
    [oracle@exacs82-vm3sv1 ~]$ dgmgrl
    DGMGRL> connect
    Username: sys
    Password:
    Connected to "DB1_phx3g7"
    Connected as SYSDBA.
    DGMGRL> show configuration;
    L'output sarà simile a quanto riportato di seguito.
    Configuration - onpremexadr
      Protection Mode: MaxPerformance
      Members:
      db1        - Primary database
        Warning: ORA-16809: multiple warnings detected for the member
        db1_phx3g7 - Physical standby database 
          Warning: ORA-16809: multiple warnings detected for the member
    Fast-Start Failover:  Disabled
    Configuration Status:
    WARNING   (status updated 43 seconds ago

Copiare i redo log file da locale a OCI

Copiare i file di log redo e 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 a quanto riportato di seguito.
    NAME
    --------------------------------------------------------------------------------
    +DATAC1/DB1/DATAFILE/system.277.1063487795
    +DATAC1/DB1/DATAFILE/sysaux.270.1063487827
    +DATAC1/DB1/DATAFILE/undotbs1.259.1063487843
    +DATAC1/DB1/DATAFILE/undotbs2.275.1063487867
    +DATAC1/DB1/DATAFILE/users.269.1063487879
  2. Visualizzare le dimensioni di ciascun gruppo per i file di dati in locale.
    select bytes, group# from v$log;
    L'output sarà simile a quanto riportato di seguito.
    BYTES     GROUP#
    ---------- ----------
     209715200	    1
     209715200	    2
     209715200	    3
     209715200	    4
  3. Visualizzare i log redo per i file di dati in locale.
    select member from v$logfile;
    L'output sarà simile a quanto riportato di seguito.
    MEMBER
    --------------------------------------------------------------------------------
    +DATAC1/DB1/ONLINELOG/group_2.272.1063449917
    +RECOC1/DB1/ONLINELOG/group_2.281.1063449917
    +DATAC1/DB1/ONLINELOG/group_1.273.1063449917
    +RECOC1/DB1/ONLINELOG/group_1.282.1063449919
    +DATAC1/DB1/ONLINELOG/group_3.268.1063450555
    +RECOC1/DB1/ONLINELOG/group_3.283.1063450557
    +DATAC1/DB1/ONLINELOG/group_4.261.1063450557
    +RECOC1/DB1/ONLINELOG/group_4.284.1063450557
  4. Aggiungere un gruppo di file di log in standby per ogni log redo.
    Ad esempio, se si dispone di tre file di log redo, aggiungere tre gruppi di file di log in standby.
    SQL> 
    alter database add standby logfile group 5 ('+DATAC1','+RECOC1');
    alter database add standby logfile group 6 ('+DATAC1','+RECOC1');
    alter database add standby logfile group 7 ('+DATAC1','+RECOC1');
  5. Visualizzare i membri del file di log.
    SQL> select member from v$logfile;
    L'output sarà simile a quanto riportato di seguito.
    MEMBER
    --------------------------------------------------------------------------------
    +DATAC1/DB1/ONLINELOG/group_2.272.1063449917
    +RECOC1/DB1/ONLINELOG/group_2.281.1063449917
    +DATAC1/DB1/ONLINELOG/group_1.273.1063449917
    +RECOC1/DB1/ONLINELOG/group_1.282.1063449919
    +DATAC1/DB1/ONLINELOG/group_5.264.1063812687
    +DATAC1/DB1/ONLINELOG/group_3.268.1063450555
    +RECOC1/DB1/ONLINELOG/group_3.283.1063450557
    +DATAC1/DB1/ONLINELOG/group_4.261.1063450557
    +RECOC1/DB1/ONLINELOG/group_4.284.1063450557
    +RECOC1/DB1/ONLINELOG/group_5.422.1063812687
    +DATAC1/DB1/ONLINELOG/group_6.262.1063812785
    +RECOC1/DB1/ONLINELOG/group_6.445.1063812785
    +DATAC1/DB1/ONLINELOG/group_7.263.1063812807
    +RECOC1/DB1/ONLINELOG/group_7.446.1063812807
  6. Visualizzare il numero di gruppo e i membri del file di log.
    SQL> select group#,member from v$logfile;
    L'output sarà simile a quanto riportato di seguito.
    GROUP#                        MEMBER
    ------------      --------------------------------------------------
     2                +DATAC1/DB1/ONLINELOG/group_2.272.1063449917
     2                +RECOC1/DB1/ONLINELOG/group_2.281.1063449917
     1                +DATAC1/DB1/ONLINELOG/group_1.273.1063449917
     1                +RECOC1/DB1/ONLINELOG/group_1.282.1063449919
     5                +DATAC1/DB1/ONLINELOG/group_5.264.1063812687
     3                +DATAC1/DB1/ONLINELOG/group_3.268.1063450555
     3                +RECOC1/DB1/ONLINELOG/group_3.283.1063450557
     4                +DATAC1/DB1/ONLINELOG/group_4.261.1063450557
     4                +RECOC1/DB1/ONLINELOG/group_4.284.1063450557
     5                +RECOC1/DB1/ONLINELOG/group_5.422.1063812687
     6                +DATAC1/DB1/ONLINELOG/group_6.262.1063812785
     6                +RECOC1/DB1/ONLINELOG/group_6.445.1063812785
     7                +DATAC1/DB1/ONLINELOG/group_7.263.1063812807
     7                +RECOC1/DB1/ONLINELOG/group_7.446.1063812807
  7. Visualizzare la configurazione in Oracle Data Guard.
    DGMGRL> show configuration
    L'output sarà simile a quanto riportato di seguito.
    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 8 seconds ago)
  8. In Oracle Database Exadata Cloud Service in standby, visualizzare i redo log.
    select member from v$logfile;
    L'output sarà simile a quanto riportato di seguito.
    MEMBER
    ---------------------------------------------------
    /opt/oracle/oradata/ORCLCDB/redo03.log
    /opt/oracle/oradata/ORCLCDB/redo02.log
    /opt/oracle/oradata/ORCLCDB/redo01.log
  9. Eseguire il login a una sessione dell'interfaccia della riga di comando Oracle Data Guard (DGMGRL) nell'istanza di database Oracle Database Exadata Cloud Service in standby con il nome utente e la password sys.
    [oracle@droci admin]$ dgmgrl 
    DGMGRL> connect
  10. Visualizzare la configurazione nel database in standby in OCI.
    DGMGRL> show configuration;
    L'output sarà simile a quanto riportato di seguito.
    Configuration - OnPremDr
    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 38 seconds ago)
  11. Modificare l'istanza di database in standby in OCI e impostare lo stato su apply-off. Quando il comando riesce, uscire dall'interfaccia della riga di comando.
    DGMGRL> edit database DB1_phx3g7 set state=apply-off;
    DGMGRL> exit
  12. Eseguire il login all'istanza di database in standby in OCI come sysdba.
    [oracle@exacs82-vm3sv1 ~]$ sqlplus / as sysdba
  13. Visualizzare il numero di gruppo e i membri del file di log.
    SQL> select group#,member from v$logfile;
    L'output sarà simile a quanto riportato di seguito.
        
    GROUP#
    ----------
    MEMBER
    --------------------------------------------------------------------------------
     2
    +DATAC1/DB1_PHX3G7/ONLINELOG/group_2.354.1063638089
     3
    +DATAC1/DB1_PHX3G7/ONLINELOG/group_3.355.1063638089
     1
    +DATAC1/DB1_PHX3G7/ONLINELOG/group_1.353.1063638089
     4
    +DATAC1/DB1_PHX3G7/ONLINELOG/group_4.356.1063638089
  14. Visualizzare le dimensioni di ogni gruppo.
    select bytes, group# from v$log;
    L'output sarà simile a quanto riportato di seguito.
    BYTES     GROUP#
    ---------- ----------
     209715200	    1
     209715200	    2
     209715200	    3
     209715200	    4
  15. Aggiungere i gruppi di file di log in standby al database in OCI.
    [oracle@exacs82-vm3sv1 ~]$ sqlplus / as sysdba
    
    alter database add standby logfile group 5 ('+DATAC1','+RECOC1');
    alter database add standby logfile group 6 ('+DATAC1','+RECOC1');
    alter database add standby logfile group 7 ('+DATAC1','+RECOC1');
  16. Visualizzare il numero di gruppo e i membri del file di log.
    SQL> select group#,member from v$logfile;
    L'output sarà simile a quanto riportato di seguito.
        GROUP#
    ----------
    MEMBER
    --------------------------------------------------------------------------------
     2
    +DATAC1/DB1_PHX3G7/ONLINELOG/group_2.354.1063638089
     3
    +DATAC1/DB1_PHX3G7/ONLINELOG/group_3.355.1063638089
     1
    +DATAC1/DB1_PHX3G7/ONLINELOG/group_1.353.1063638089
     4
    +DATAC1/DB1_PHX3G7/ONLINELOG/group_4.356.1063638089
     5
    +DATAC1/DB1_PHX3G7/ONLINELOG/group_5.358.1063813749
     5
    +RECOC1/DB1_PHX3G7/ONLINELOG/group_5.256.1063813749
     6
    +DATAC1/DB1_PHX3G7/ONLINELOG/group_6.359.1063813761
     6
    +RECOC1/DB1_PHX3G7/ONLINELOG/group_6.262.1063813761
     7
    +DATAC1/DB1_PHX3G7/ONLINELOG/group_7.360.1063813773
     7
    +RECOC1/DB1_PHX3G7/ONLINELOG/group_7.300.1063813773
  17. Nell'istanza di database OCI in standby eseguire il login a una sessione dell'interfaccia da riga di comando (DGMGRL) di Oracle Data Guard con il nome utente e la password sys.
    [oracle@exacs82-vm3sv1 ~]$ dgmgrl
    DGMGRL> connect
    Username: sys
    Password:
    Connected to "DB1_phx3g7"
    Connected as SYSDBA.
  18. Modificare l'istanza di database in standby in OCI e impostare lo stato su apply-on.
    DGMGRL> edit database db1_phx3g7 set state=apply-on;
  19. 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. Quando il comando riesce, uscire da DGMGRL.
    DGMGRL> edit database DB1 set state=transport-on;
    DGMGRL> exit
  20. Visualizzare i file di log in standby nel database in standby su OCI per verificare il database in standby.
    SQL> select * from v$logfile where type='STANDBY';
  21. Visualizzare i redo log file nel database in standby su OCI.
    SQL> select member from v$logfile where type != 'STANDBY';
    L'output sarà simile a quanto riportato di seguito.
    MEMBER
    --------------------------------------------------------------------------------
    +DATAC1/DB1_PHX3G7/ONLINELOG/group_2.354.1063638089
    +DATAC1/DB1_PHX3G7/ONLINELOG/group_3.355.1063638089
    +DATAC1/DB1_PHX3G7/ONLINELOG/group_1.353.1063638089
    +DATAC1/DB1_PHX3G7/ONLINELOG/group_4.356.1063638089
  22. Recuperare il database in standby gestito.
    SQL> recover managed standby database cancel;
    L'output sarà simile a quanto riportato di seguito.
    Media recovery complete
  23. Visualizzare i file con il parametro convert.
    SQL> show parameter convert;
    L'output sarà simile a quanto riportato di seguito.
    NAME				     TYPE	 VALUE
    ------------------------------------ ----------- ------------------------------
    db_file_name_convert		    string       DB1, DB1_phx3g7
    log_file_name_convert		   string       DB1, DB1_phx3g7
    pdb_file_name_convert		   string
  24. Visualizzare i file di database.
    select name from v$datafile;
    L'output sarà simile a quanto riportato di seguito.
    NAME
    --------------------------------------------------------------------------------
    +DATAC1/DB1_PHX3G7/DATAFILE/system.348.1063638053
    +DATAC1/DB1_PHX3G7/DATAFILE/sysaux.349.1063638055
    +DATAC1/DB1_PHX3G7/DATAFILE/undotbs1.350.1063638057
    +DATAC1/DB1_PHX3G7/DATAFILE/undotbs2.351.1063638057
    +DATAC1/DB1_PHX3G7/DATAFILE/users.352.1063638059
  25. Visualizzare i dettagli dell'archivio Oracle Data Guard.
    SQL> SELECT ROLE, THREAD#, SEQUENCE#, ACTION FROM V$DATAGUARD_PROCESS;
    L'output sarà simile a quanto riportato di seguito.
    
    ROLE	    THREAD#     SEQUENCE#  ACTION
    ------------------------ ---------- ---------- ------------
    RFS ping			     1	     0 IDLE
    RFS ping			     2	    62 IDLE
    RFS async		           2	    62 RECEIVING
    broker instance worker            0	     0 IDLE
    broker worker			0	     0 IDLE
    archive redo			 0	     0 IDLE
    archive redo			 0	     0 IDLE
    archive redo			 0	     0 IDLE
    archive local			0	     0 IDLE
    redo transport timer		0	     0 IDLE
    gap manager			  0	     0 IDLE
    
    ROLE	    THREAD#     SEQUENCE#  ACTION
    ------------------------ ---------- ---------- ------------
    broker monitor		      0	     0 IDLE
    broker net worker		   0 	    0 IDLE
    redo transport monitor	     0	     0 IDLE
    log writer			   0	     0 IDLE
    RFS async	                  0	   187 RECEIVING
    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 i file con il parametro di destinazione e verificare.
    SQL>show parameter dest;