Crear la base de datos de espera de Data Guard

Una vez que la base de datos principal se haya preparado para Data Guard, se podrá duplicar en el sitio de standby. En la siguiente guía se utiliza la duplicación activa para crear una copia coherente de la base de datos.

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

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 espera

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

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

Es posible que tengas que modificar las rutas de las variables de entorno en función de tu configuración.

Configurar la base de datos de espera

Configurar la conectividad de la base de datos

Inicia sesión en cada servidor de Bare Metal Solution de la ubicación de espera y modifica el archivo $ORACLE_HOME/network/admin/tsnames.ora para actualizar la configuración del servicio de red:

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)
    )
  )

Configurar un detector temporal

Para evitar reiniciar el listener usado para otras conexiones de bases de datos, la duplicación de la base de datos se realiza mediante un listener 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. Eliminas este listener temporal después de duplicar la base de datos.

  1. Inicia sesión en el primer servidor de Solución Bare Metal de la ubicación de espera que se va a 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 de red:

    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 escucha temporal:

    lsnrctl start LISTENER_DBDG_SITE2
    

Preparar la base de datos de espera

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

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

    1. Asigna el valor db_unique_name al nuevo nombre de la base de datos de espera.
    2. Modifica los parámetros específicos de la instancia para que reflejen los nombres de la instancia de la base de datos de espera. Por ejemplo:
      • instance_number
      • thread
      • undo_tablespace
    3. Define el parámetro audit_file_dest para usar el directorio creado en el paso anterior.
    4. Si los grupos de discos de ASM de cada ubicación usan nombres diferentes, modifica los parámetros db_file_name_convert y log_file_name_convert para que coincidan con las nuevas ubicaciones de los archivos.
    5. Comenta el parámetro control_files.

    En el siguiente ejemplo se muestra un archivo de parámetros de base de datos actualizado con las modificaciones que se han realizado siguiendo los ejemplos de esta guía. Ten en cuenta que el archivo de parámetros contendrá parámetros adicionales específicos de la configuración de tu base de datos. Solo se muestran los parámetros que requieren una modificación para el modo de 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, añade una entrada para que el comando oraenv pueda definir variables de entorno para la base de datos de espera:

    DBDG_SITE21:ORACLE_HOME:N
    

Crear la base de datos de espera

  1. Define la variable de entorno ORACLE_SID para que puedas conectarte a la base de datos de reserva:

    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 manualmente la instancia de espera en un nodo. Inicia sesión en el primer servidor de Bare Metal Solution de la ubicación de espera, inicia SQL*Plus y, a continuación, inicia la base de datos de espera en nomount mode mediante el comando pfile:

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

    Si la solicitud se hace 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 con el servicio de base de datos de espera. Desde cada servidor de Solución Bare Metal de la ubicación de la base de datos principal, intenta conectarte a la instancia de espera mediante SQL*Plus. Introduce manualmente la contraseña de inicio de sesión remoto de SYS para conectarte correctamente a la instancia.

    sqlplus sys@DBDG_SITE2_FOR_DUPLICATION as sysdba
    

    Si la operación se realiza correctamente, deberías recibir un mensaje estándar de SQL*Plus, donde puedes comprobar los parámetros de la instancia:

    SHOW PARAMETER DB_UNIQUE_NAME;
    

    Deberías recibir una respuesta similar a la siguiente:

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

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

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

    Si se completa correctamente, después del procesamiento deberías recibir un mensaje similar al siguiente:

    Finished Duplicate Db at ...
    
  7. Salir del Gestor de recuperación:

    EXIT;
    

Finalizar la creación de la base de datos de 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 de espera y obtén los nombres de los nuevos archivos 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 de los archivos 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. Anota los nombres de los archivos de control del paso anterior y sustituye las entradas del parámetro control_files en $ORACLE_HOME/dbs/initDBDG_SITE21.ora por los nuevos valores. Si hay varios archivos de control, encierra cada uno entre comillas simples y sepáralos con 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 nuevo spfile 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ñas en el grupo de discos de ASM con 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 de espera y elimina los archivos temporales pfile y 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 listener temporal que se usa para duplicar la base de datos en el primer servidor de Bare Metal Solution de la ubicación de la base de datos de espera:

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

  8. Añade la nueva base de datos de espera y las instancias al registro del clúster mediante 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 de espera con el comando srvctl:

    srvctl start database -db DBDG_SITE2
    

Pasos siguientes

A continuación, configure y habilite el broker de Data Guard.