Crea la base de datos en espera de Data Guard

Una vez que la base de datos principal se prepara para Data Guard, estará lista para duplicarse en el sitio en espera. En la siguiente guía, se usa la duplicación activa para crear una copia coherente de la base de datos.

Te recordamos que los siguientes ejemplos se usan en esta guía:

Nombre único de la base de datos Nombres de host del servidor Nombres de instancias de RAC Rol
DBDG_SITE1 site1db1, site1db2 DBDG_SITE11, DBDG_SITE12 Principal
DBDG_SITE2 site2db1, site2db2 DBDG_SITE21, DBDG_SITE22 En suspensión

Los servidores de la solución Bare Metal que ejecutan Oracle en esta guía se configuran con las siguientes variables de entorno:

Nombre de variable de entorno Valor
ORACLE_BASE /apps/oracle/oracle_base
ORACLE_HOME /apps/oracle/19.0.0/db_home1

Es posible que debas modificar las rutas de las variables de entorno según la configuración.

Configura la base de datos en espera

Configura la conectividad de la base de datos

Accede a cada servidor de la solución Bare Metal en la ubicación en espera y modifica el archivo $ORACLE_HOME/network/admin/tsnames.ora para actualizar la configuración del servicio neto:

DBDG_SITE2 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = DBDG_SITE2_SCAN_HOSTNAME)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = DBDG_SITE2) (UR=A)
   )
 )

DBDG_SITE1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = DBDG_SITE1_SCAN_HOSTNAME)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = DBDG_SITE1)
    )
  )

Configura un objeto de escucha temporal

Para evitar que se reinicie el objeto de escucha que se usa en otras conexiones de bases de datos, la duplicación de la base de datos se realiza mediante un objeto de escucha temporal. En este ejemplo, se usa el puerto 1523, pero puedes usar cualquier puerto que esté abierto para la comunicación entre los clústeres. Borra este objeto de escucha temporal después de la duplicación de la base de datos.

  1. Accede al primer servidor de la solución Bare Metal en la ubicación en espera que se usará durante el proceso de duplicación de la base de datos. Modifica el archivo $ORACLE_HOME/network/admin/listener.ora para actualizar la configuración del servicio Net:

    LISTENER_DBDG_SITE2 =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = site1db1)(PORT = 1523))
        )
      )
    
    SID_LIST_LISTENER_DBDG_SITE2 =
      (SID_LIST =
        (SID_DESC =
          (GLOBAL_DBNAME = DBDG_SITE2_DGMGRL)
          (ORACLE_HOME = ORACLE_HOME)
          (SID_NAME = DBDG_SITE21)
        )
      )
    ADR_BASE_LISTENER = /apps/oracle/oracle_base
    
  2. Inicia el objeto de escucha temporal:

    lsnrctl start LISTENER_DBDG_SITE2
    

Prepara la base de datos en espera

  1. Cada instancia de base de datos requiere un directorio para almacenar registros de auditoría. Crea el directorio de archivos de auditoría en cada servidor de la solución Bare Metal en la ubicación de la base de datos en espera:

    mkdir -p /apps/oracle/oracle_base/admin/DBDG_SITE2/adump
    
  2. Modifica el archivo $ORACLE_HOME/dbs/initDBDG_SITE21.ora que se copió antes en el servidor de la base de datos en espera:

    1. Configura db_unique_name como el nombre de la nueva base de datos en espera.
    2. Modifica cualquier parámetro específico de la instancia a fin de que refleje los nombres de la instancia para la base de datos en espera. Por ejemplo:
      • instance_number
      • thread
      • undo_tablespace
    3. Configura el parámetro audit_file_dest para usar el directorio que se creó en el paso anterior.
    4. Si los grupos de discos de ASM en cada ubicación usan nombres diferentes, modifica los parámetros db_file_name_convert y log_file_name_convert para que coincidan con las ubicaciones de archivos nuevas.
    5. Comenta el parámetro control_files.

    En el siguiente ejemplo, se muestra un archivo de parámetro de base de datos actualizado con modificaciones mediante los ejemplos de esta guía. Ten en cuenta que el archivo de parámetros contendrá parámetros adicionales que son específicos de la configuración de la base de datos. Solo se muestran los parámetros que requieren modificación para la instancia en espera:

    *.db_unique_name='DBDG_SITE2'
    DBDG_SITE21.instance_number=1
    DBDG_SITE22.instance_number=2
    DBDG_SITE21.thread=1
    DBDG_SITE22.thread=2
    DBDG_SITE21.undo_tablespace='UNDOTBS1'
    DBDG_SITE22.undo_tablespace='UNDOTBS2'
    *.audit_file_dest='/apps/oracle/oracle_base/admin/DBDG_SITE2/adump'
    #*.control_files='+DATA/DBDG_SITE1/CONTROLFILE/current.258.1091317089','+RECO/DBDG_SITE1/CONTROLFILE/current.257.1091317089'
    
  3. En el archivo /etc/oratab, agrega una entrada a fin de que el comando oraenv pueda establecer variables de entorno para la base de datos en espera:

    DBDG_SITE21:ORACLE_HOME:N
    

Crea la base de datos en espera

  1. Configura la variable de entorno ORACLE_SID para que puedas conectarte a la base de datos en espera:

    source oraenv <<< "DBDG_SITE21"
    

    Deberías recibir la respuesta The Oracle base has been set to /apps/oracle/oracle_base.

  2. Antes de duplicar la base de datos principal, debes iniciar de forma manual la instancia en espera en un nodo. Accede al primer servidor de la solución Bare Metal en la ubicación en espera, inicia SQL*Plus y, luego, inicia la base de datos en espera en nomount mode mediante pfile:

    sqlplus / as sysdba
    
    STARTUP NOMOUNT PFILE='/apps/oracle/19.0.0/db_home1/dbs/initDBDG_SITE21.ora';
    

    Si se ejecuta correctamente, deberías recibir una respuesta similar a la del siguiente ejemplo:

    ORACLE instance started.
    Total System Global Area 1.2885E+10 bytes
    Fixed Size 15988824 bytes
    Variable Size 1845493760 bytes
    Database Buffers 1.1006E+10 bytes
    Redo Buffers 17563648 bytes
    
  3. Sal de SQL*Plus después de iniciar la instancia:

    EXIT;
    
  4. Verifica la conectividad al servicio de base de datos en espera. Desde cada servidor de la solución Bare Metal en la ubicación de la base de datos principal, intenta conectarte a la instancia en espera mediante SQL*Plus. Ingresa la contraseña de acceso remoto de SYS de forma manual para conectarte correctamente a la instancia.

    sqlplus sys@DBDG_SITE2_FOR_DUPLICATION as sysdba
    

    Si se ejecuta de forma correcta, deberías recibir un mensaje de SQL*Plus estándar, en el que puedes verificar los parámetros de la instancia:

    SHOW PARAMETER DB_UNIQUE_NAME;
    

    Deberías recibir una respuesta similar a la que figura a continuación:

                    NAME        TYPE                          VALUE
        ---------------- ----------- ------------------------------
          db_unique_name      string      DBDG_SITE2
    
  5. Sal de SQL*Plus después de verificar el parámetro DB_UNIQUE_NAME:

    EXIT;
    
  6. Conéctate a Recovery Manager y, luego, ejecuta el comando duplicate para duplicar el modo de espera desde la base de datos principal activa:

    rman TARGET sys@DBDG_SITE1 AUXILIARY sys@DBDG_SITE2_FOR_DUPLICATION
    
    DUPLICATE TARGET DATABASE FOR STANDBY FROM ACTIVE DATABASE NOFILENAMECHECK;
    

    Si se ejecuta de forma correcta, deberías recibir un mensaje similar al siguiente ejemplo después del procesamiento:

    Finished Duplicate Db at ...
    
  7. Sal del administrador de recuperación:

    EXIT;
    

Finaliza la creación de la base de datos en espera

  1. Durante la duplicación de la base de datos, ASM crea nuevos archivos de control para la base de datos en espera. Conéctate a la nueva instancia en espera y obtén los nuevos nombres de archivo de control. En el siguiente ejemplo, se muestran dos archivos de control almacenados en los grupos de discos +DATA y +RECO:

    sqlplus / as sysdba
    
    SET LINESIZE 140
    COLUMN NAME FORMAT a15
    COLUMN VALUE FORMAT a125
    SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME='control_files';
    

    Los nombres del archivo de control se muestran en el campo “Valor”:

               NAME     VALUE
    --------------- ----------------------------------------------------------------------------------------------------
      control_files   +DATA/DBDG_SITE2/CONTROLFILE/current.258.1091317089, +RECO/DBDG_SITE2/CONTROLFILE/current.257.1091317089
    
  2. Registra los nombres de archivo de control del paso anterior y reemplaza las entradas para el parámetro control_files en $ORACLE_HOME/dbs/initDBDG_SITE21.ora con los valores nuevos. Si hay varios archivos de control, encapsula cada uno entre comillas simples separadas por comas:

    *.control_files='+DATA/DBDG_SITE2/CONTROLFILE/current.258.1091317089','+RECO/DBDG_SITE2/CONTROLFILE/current.257.1091317089'
    
  3. Conéctate a la base de datos en espera con SQL*Plus y crea un spfile nuevo a partir del pfile modificado:

    sqlplus / as sysdba
    
    CREATE SPFILE='+DATA/DBDG_SITE2/spfileDBDG_SITE2' FROM PFILE='/apps/oracle/19.0.0/db_home1/dbs/initDBDG_SITE21.ora';
    
  4. Copia el archivo de contraseña en el grupo de discos de ASM mediante el comando asmcmd:

    asmcmd cp /apps/oracle/19.0.0/db_home1/dbs/orapwDBDG_SITE21.ora +DATA/DBDG_SITE2/orapwDBDG_SITE2
    
  5. Cierra la instancia de base de datos en espera y borra el pfile temporal y el archivo de contraseña:

    sqplus / as sysdba
    
    SHUTDOWN IMMEDIATE;
    EXIT;
    
    rm $ORACLE_HOME/dbs/orapwDBDG_SITE21.ora $ORACLE_HOME/dbs/initDBDG_SITE2.ora
    
  6. Detén el objeto de escucha temporal usado para la duplicación de la base de datos en el primer servidor de la solución Bare Metal en la ubicación de la base de datos en espera:

    lsnrctl stop LISTENER_DBDG_SITE2
    
  7. Quita las entradas temporales del archivo $ORACLE_HOME/network/admin/listener.ora en el primer servidor de la solución Bare Metal en la ubicación de la base de datos en espera.

  8. Agrega las instancias y la base de datos en espera nuevas al registro de clústeres con el comando srvctl:

    srvctl add database \
      -db DBDG_SITE2 \
      -oraclehome /apps/oracle/19.0.0/db_home1 \
      -spfile +DATA/DBDG_SITE2/spfileDBDG_SITE2 \
      -pwfile +DATA/DBDG_SITE2/orapwDBDG_SITE2 \
      -role PHYSICAL_STANDBY \
      -startoption MOUNT
    
    srvctl add instance \
      -db DBDG_SITE2 \
      -instance DBDG_SITE21 \
      -node site2db1
    
    srvctl add instance \
      -db DBDG_SITE2 \
      -instance DBDG_SITE22 \
      -node site2db2
    
  9. Inicia la base de datos en espera con el comando srvctl:

    srvctl start database -db DBDG_SITE2
    

Próximos pasos

A continuación, configura y habilita el agente de Data Guard.