Completar la configuración

Configure Oracle Data Guard, registre la base de datos en espera y sincronice las contraseñas de la base de datos local y en espera.

Configurar Oracle Data Guard Broker

Configure Oracle Data Guard activando el parámetro dg_broker_config_file en las bases de datos primaria y en espera. Para Oracle Automatic Storage Management (Oracle ASM), coloque los archivos de configuración del broker en grupos de discos separados. Para Oracle Real Application Clusters (Oracle RAC), los archivos de configuración del broker deben estar en almacenamiento compartido.

  1. Compruebe el valor dg_broker_start del host de base de datos local. Debe definirse en false.
    SQL> show parameter dg_broker_start;
    La salida se verá similar a la siguiente:
    NAME 			TYPE 			VALUE 
    ------------------------------------ ----------- ------------------------------ 
    dg_broker_start 	boolean 		FALSE 
  2. En Oracle Database Exadata Cloud Service en espera, compruebe los archivos de configuración de Oracle Data Guard.
    SQL> show parameter dg_broker_config_file1;
    A continuación se muestra la salida de ejemplo:
    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;
    A continuación se muestra la salida de ejemplo:
    NAME                                  TYPE         VALUE
    ------------------------------------ ----------- ------------------------------
    dg_broker_config_file2                string /u02/app/oracle/product/19.0.0.0/dbhome_5/dbs/dr2DB1_phx3g7.dat
  3. Muestre los archivos de datos y, a continuación, cambie la ubicación a la que desea almacenar los archivos. Por ejemplo, Oracle ASM, Oracle RAC o dispositivos.
    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. En Oracle Exadata Database Machine local principal, compruebe los archivos de configuración de Oracle Data Guard.
    SQL> show parameter dg_broker_config_file1;
    A continuación se muestra la salida de ejemplo:
    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;
    A continuación, se muestra un ejemplo de la respuesta:
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    dg_broker_config_file2                string /u01/app/oracle/product/19.0.0.0/dbhome_1/dbs/dr2db1.dat
  5. Visualice los archivos de datos y, a continuación, cambie la ubicación a la que desea almacenar los archivos.
    SQL> select name from v$datafile;
    A continuación, se muestra un ejemplo de la respuesta:
    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
    Ejecute los siguientes comandos para cambiar la ubicación del archivo de configuración:
    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. En Oracle Exadata Database Machine local principal, inicie el proceso 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. Inicie el proceso de Oracle Data Guard Broker en la base de datos en espera.
    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 

Registrar la base de datos en espera

Utilice la interfaz de línea de comandos (DGMGRL) de Oracle Data Guard para registrar o agregar el perfil de la base de datos en espera a la configuración del broker en el host principal local.

  1. Conéctese al host principal como sys.
    $ dgmgrl sys/sys password@net service name for primary database
  2. Cree una configuración que utilice el nombre de la base de datos primaria.
    DGMGRL> CREATE CONFIGURATION configuration_name AS PRIMARY DATABASE IS primary database name CONNECT IDENTIFIER IS primary database name;
    Por ejemplo:
    CREATE CONFIGURATION OnPremExaDR AS PRIMARY DATABASE IS DB1 CONNECT IDENTIFIER IS DB1;
  3. Agregar Base de Datos en Espera.
    Asegúrese de que el identificador es el mismo que el nombre del servicio, incluidas las mayúsculas y minúsculas.
    DGMGRL> ADD DATABASE standby unique database name AS CONNECT IDENTIFIER IS standby unique database name MAINTAINED AS PHYSICAL; 
    Por ejemplo:
    ADD DATABASE DB1_PHX3G7 AS CONNECT IDENTIFIER IS DB1_phx3g7 MAINTAINED AS PHYSICAL;
    Si recibe un mensaje de error de ORA-16698, verifique que el identificador es el mismo que el nombre de servicio.

    Error: ORA-16698: el miembro tiene un parámetro LOG_ARCHIVE_DEST_n con el juego de atributos SERVICE

  4. Cambie el estado de destino del archivo log.
    SQL> alter system set log_archive_dest_state_10='DEFER';
    SQL> alter system set log_archive_dest_10='';
  5. Verifique el destino del archivo 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. Active la configuración.
    DGMGRL> enable configuration;
  7. Mostrar la configuración.
    DGMGRL> show configuration;
    La salida se verá similar a la siguiente:
    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. En Oracle Database Exadata Cloud Service en Espera, conéctese para verificar la configuración.
    [oracle@exacs82-vm3sv1 ~]$ dgmgrl
    DGMGRL> connect
    Username: sys
    Password:
    Connected to "DB1_phx3g7"
    Connected as SYSDBA.
    DGMGRL> show configuration;
    La salida será similar a la siguiente:
    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

Copiar los archivos Redo Log de las remesas locales en OCI

Copie los archivos log redo y otros archivos de base de datos de la base de datos local en la instancia de Oracle Cloud Infrastructure (OCI).

  1. Visualice los archivos de base de datos locales.
    select name from v$datafile;
    La salida se verá similar a la siguiente:
    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. Consulta del tamaño de cada grupo para los archivos de datos locales.
    select bytes, group# from v$log;
    La salida se verá similar a la siguiente:
    BYTES     GROUP#
    ---------- ----------
     209715200	    1
     209715200	    2
     209715200	    3
     209715200	    4
  3. Consulte los logs redo para los archivos de datos locales.
    select member from v$logfile;
    La salida se verá similar a la siguiente:
    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. Agregue un grupo de archivos log en espera para cada log redo.
    Por ejemplo, si tiene tres archivos log redo, agregue tres grupos de archivos log en espera.
    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. Ver los miembros del archivo log.
    SQL> select member from v$logfile;
    La salida se verá similar a la siguiente:
    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. Ver el número de grupo y los miembros del archivo log.
    SQL> select group#,member from v$logfile;
    La salida se verá similar a la siguiente:
    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. Ver la configuración en Oracle Data Guard.
    DGMGRL> show configuration
    La salida se verá similar a la siguiente:
    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. En Oracle Database Exadata Cloud Service en espera, consulte los redo logs.
    select member from v$logfile;
    La salida se verá similar a la siguiente:
    MEMBER
    ---------------------------------------------------
    /opt/oracle/oradata/ORCLCDB/redo03.log
    /opt/oracle/oradata/ORCLCDB/redo02.log
    /opt/oracle/oradata/ORCLCDB/redo01.log
  9. Conéctese a una sesión de interfaz de línea de comandos (DGMGRL) de Oracle Data Guard en la instancia de base de datos Oracle Database Exadata Cloud Service en espera con el nombre de usuario y la contraseña sys.
    [oracle@droci admin]$ dgmgrl 
    DGMGRL> connect
  10. Ver la configuración de la base de datos en espera en OCI.
    DGMGRL> show configuration;
    El resultado es similar al siguiente:
    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. Edite la instancia de base de datos en espera en OCI y defina el estado en apply-off. Cuando el comando es correcto, salga de la interfaz de línea de comandos.
    DGMGRL> edit database DB1_phx3g7 set state=apply-off;
    DGMGRL> exit
  12. Conéctese a la instancia de base de datos en espera en OCI como sysdba.
    [oracle@exacs82-vm3sv1 ~]$ sqlplus / as sysdba
  13. Consulte el número de grupo y los miembros del archivo log.
    SQL> select group#,member from v$logfile;
    El resultado es similar al siguiente:
        
    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. Consulta del tamaño de cada grupo.
    select bytes, group# from v$log;
    El resultado es similar al siguiente:
    BYTES     GROUP#
    ---------- ----------
     209715200	    1
     209715200	    2
     209715200	    3
     209715200	    4
  15. Agregue los grupos de archivos log en espera a la base de datos en 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. Consulte el número de grupo y los miembros del archivo log.
    SQL> select group#,member from v$logfile;
    El resultado es similar al siguiente:
        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. En la instancia de base de datos OCI en espera, inicie sesión en una interfaz de línea de comandos de Oracle Data Guard (DGMGRL) con el nombre de usuario y la contraseña sys.
    [oracle@exacs82-vm3sv1 ~]$ dgmgrl
    DGMGRL> connect
    Username: sys
    Password:
    Connected to "DB1_phx3g7"
    Connected as SYSDBA.
  18. Edite la instancia de base de datos en espera en OCI y defina el estado en apply-on.
    DGMGRL> edit database db1_phx3g7 set state=apply-on;
  19. Edite la instancia de base de datos en espera en OCI y defina el estado de transporte en transport-on y, a continuación, salga de la interfaz de línea de comandos. Cuando el comando es correcto, salga de DGMGRL.
    DGMGRL> edit database DB1 set state=transport-on;
    DGMGRL> exit
  20. Consulte los archivos log en espera en la base de datos en espera de OCI para verificar la espera.
    SQL> select * from v$logfile where type='STANDBY';
  21. Ver los archivos redo log en la base de datos en espera en OCI.
    SQL> select member from v$logfile where type != 'STANDBY';
    El resultado es similar al siguiente:
    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. Recuperar la base de datos en espera gestionada.
    SQL> recover managed standby database cancel;
    El resultado es similar al siguiente:
    Media recovery complete
  23. Visualice los archivos con el parámetro convert.
    SQL> show parameter convert;
    La salida se verá similar a la siguiente:
    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. Ver los archivos de base de datos.
    select name from v$datafile;
    La salida se verá similar a la siguiente:
    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. Consulte los detalles del archivo Oracle Data Guard.
    SQL> SELECT ROLE, THREAD#, SEQUENCE#, ACTION FROM V$DATAGUARD_PROCESS;
    La salida se verá similar a la siguiente:
    
    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. Desactive la recuperación de la base de datos en espera gestionada mediante el archivo log.
    SQL> recover managed standby database using current logfile disconnect;
    Media recovery complete.
  27. Muestre los archivos con el parámetro de destino y verifique.
    SQL>show parameter dest;