Configura un observador de Data Guard en Google Cloud Compute Engine

Según tus requisitos de alta disponibilidad, es posible que desees automatizar la conmutación por error entre las bases de datos. Después de validar tu implementación de Data Guard, tienes la opción de configurar un observador de Data Guard en Compute Engine para hacerlo. Un observador es un proceso que supervisa una configuración de Data Guard para iniciar una conmutación por error automatizada si las condiciones lo garantizan.

En esta guía, se explica cómo instalar el cliente de base de datos de Oracle 19c en una máquina virtual (VM) de observador y cómo configurar la conmutación por error de inicio rápido.

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 suspensión

Instala el software cliente de Oracle Database

  1. Crea una máquina virtual (VM) en Compute Engine que cumpla con los siguientes criterios:

    • Sistema operativo. Red Hat Enterprise Linux 7.

    • Herramientas de redes. Una subred con reglas de firewall que permitan el acceso desde la nube privada virtual a los hosts de la solución Bare Metal que ejecutan las bases de datos principal y en espera.

    • Almacenamiento. -- Al menos 20 GB asignados al disco de arranque.

  2. Accede a la VM y verifica que el nombre de host de SCAN de cada clúster de la base de datos se resuelva en DNS:

    host DBDG_SITE1_SCAN_HOSTNAME
    host DBDG_SITE2_SCAN_HOSTNAME
    

    Si los nombres de host no se resuelven, agrega las direcciones IP para cada nombre de host de SCAN al archivo /etc/hosts en la VM. Reemplaza las direcciones IP de ejemplo por las direcciones IP para cada clúster:

    # Site 1 SCAN Hosts
    192.0.2.10 DBDG_SITE1_SCAN_HOSTNAME
    192.0.2.11 DBDG_SITE1_SCAN_HOSTNAME
    192.0.2.12 DBDG_SITE1_SCAN_HOSTNAME
    
    # Site 2 SCAN Hosts
    198.51.100.10 DBDG_SITE2_SCAN_HOSTNAME
    198.51.100.11 DBDG_SITE2_SCAN_HOSTNAME
    198.51.100.12 DBDG_SITE2_SCAN_HOSTNAME
    
  3. Instala Oracle Database RPM. Instala solo el software. No es necesario configurar una base de datos en la VM de observador.

  4. Oracle Database RPM instala software en un directorio predefinido. Agrega las siguientes entradas a /home/oracle/.bash_profile para agregar la página principal del software de Oracle a la ruta de acceso:

    cat >> /home/oracle/.bash_profile << EOL
    export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1
    export PATH=\$PATH:\$ORACLE_HOME/bin
    EOL
    
  5. Obtén las variables de entorno de Oracle en la sesión de la terminal:

    source ~/.bash_profile
    

Configura la conectividad de la base de datos

  1. Establece los parámetros de configuración de Oracle Net en el archivo $ORACLE_HOME/network/admin/tsnames.ora:

    DBDG_SITE1 =
      (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = DBDG_SITE1_SCAN_HOSTNAME)(PORT = 1521))
          (CONNECT_DATA =
              (SERVER = DEDICATED)
              (SERVICE_NAME = DBDG_SITE1) (UR=A)
          )
      )
    
    DBDG_SITE2 =
      (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = DBDG_SITE2_SCAN_HOSTNAME)(PORT = 1521))
          (CONNECT_DATA =
              (SERVER = DEDICATED)
              (SERVICE_NAME = DBDG_SITE2) (UR=A)
          )
      )
    
  2. La versión 12.2 de la base de datos de Oracle y las versiones posteriores incluyen compatibilidad para que el observador se ejecute en modo en segundo plano. Para hacerlo, se debe crear una cartera a fin de realizar una autenticación sin contraseña para la base de datos. Accede como el usuario de Oracle en la VM de observador y realiza las siguientes tareas para crear una cartera:

    1. Agrega las siguientes entradas a $ORACLE_HOME/network/admin/sqlnet.ora:

      WALLET_LOCATION =
         (SOURCE =
            (METHOD = FILE)
            (METHOD_DATA = (DIRECTORY = /home/oracle/wallet))
      )
      SQLNET.WALLET_OVERRIDE = TRUE
      
    2. Crea el directorio de cartera en la VM que aloja el observador:

      mkdir /home/oracle/wallet
      
    3. Inicializa la cartera y, luego, proporciona una contraseña para la cartera cuando se te solicite:

      mkstore -wrl /home/oracle/wallet -create
      
    4. Crea una entrada en la cartera de cada base de datos en la configuración de Data Guard. El comando mkstore solicitará la contraseña de SYS para la base de datos, seguida de la contraseña de la cartera proporcionada en el paso anterior:

      mkstore -wrl /home/oracle/wallet -createCredential DBDG_SITE1 sys
      mkstore -wrl /home/oracle/wallet -createCredential DBDG_SITE2 sys
      
    5. Confirma que la cartera contiene credenciales para cada base de datos en la configuración de Data Guard. El argumento -listCredential para mkstore solicitará la contraseña de cartera:

      mkstore -wrl /home/oracle/wallet -listCredential
      
  3. Accede a la VM de observador como Oracle y, luego, prueba la conectividad a las bases de datos principal y en espera. Conéctate a las bases de datos principal y secundaria con SQL*Plus mediante el uso de las credenciales de cartera:

    sqlplus /@DBDG_SITE1 as sysdba
    sqlplus /@DBDG_SITE2 as sysdba
    

    Si la configuración de la cartera se realiza correctamente, el comando sqlplus accede directamente a la base de datos sin solicitar una contraseña.

Configura y habilita la conmutación por error de inicio rápido

  1. Crea un directorio para almacenar la configuración del observador y los archivos de registro:

    mkdir /home/oracle/fsfo
    
  2. Conéctate al agente de Guard Data en la base de datos principal con la cartera:

    dgmgrl
    CONNECT /@DBDG_SITE1;
    
  3. Observa el estado de Data Guard para verificar que la configuración esté marcada como SUCCESS:

    SHOW CONFIGURATION;
    
  4. Habilita la conmutación por error de inicio rápido (FSFO):

    ENABLE FAST_START FAILOVER;
    

    La habilitación de la FSFO no prepara la configuración para la conmutación por error automática. La conmutación por error automática requiere un observador.

  5. Inicia Data Guard Observer:

    START OBSERVER observer1 IN BACKGROUND FILE IS '/home/oracle/fsfo/observer1_DBDG.dat' LOGFILE IS '/home/oracle/fsfo/observer1_DBDG.log';
    
  6. En una sesión de terminal independiente, verifica la configuración:

    SHOW CONFIGURATION VERBOSE;
    

    En el siguiente ejemplo, se muestra el modo detallado del comando show configuration. Si el estado de la configuración es SUCCESS, significa que se completó la configuración.

    Configuration - DBDG
    
      Protection Mode: MaxAvailability
      Members:
     DBDG_SITE1 - Primary database
       DBDG_SITE2 - Physical standby database
    
      (*) Fast-Start Failover target
    
      Properties:
        FastStartFailoverThreshold      = '30'
        OperationTimeout                = '30'
        TraceLevel                      = 'USER'
        FastStartFailoverLagLimit       = '45'
        CommunicationTimeout            = '180'
        ObserverReconnect               = '0'
        FastStartFailoverAutoReinstate  = 'TRUE'
        FastStartFailoverPmyShutdown    = 'TRUE'
        BystandersFollowRoleChange      = 'ALL'
        ObserverOverride                = 'FALSE'
        ExternalDestination1            = ''
        ExternalDestination2            = ''
        PrimaryLostWriteAction          = 'CONTINUE'
        ConfigurationWideServiceName    = 'DBDG_CFG'
    
    Fast-Start Failover: Enabled in Potential Data Loss Mode
      Lag Limit:          45 seconds
      Threshold:          30 seconds
      Active Target:      DBDG_SITE2
      Potential Targets:  "DBDG_SITE2"
        DBDG_SITE2   valid
      Observer:           observer1
      Shutdown Primary:   TRUE
      Auto-reinstate:     TRUE
      Observer Reconnect: (none)
      Observer Override:  FALSE
    
    Configuration Status:
    SUCCESS