Configure um observador do Data Guard no Google Cloud Compute Engine

Consoante os seus requisitos de alta disponibilidade, pode querer automatizar a comutação por falha entre bases de dados. Depois de validar a implementação do Data Guard, tem a opção de configurar um observador do Data Guard no Compute Engine para o fazer. Um observador é um processo que monitoriza uma configuração do Data Guard para iniciar uma comutação por falha automática se as condições o justificarem.

Este guia aborda a instalação do cliente da base de dados Oracle 19c numa máquina virtual (VM) observadora e a configuração da comutação por falha de início rápido.

Os exemplos seguintes são usados ao longo deste guia:

Nome exclusivo da base de dados Nomes de anfitrião do servidor Nomes das instâncias do RAC Função
DBDG_SITE1 site1db1, site1db2 DBDG_SITE11, DBDG_SITE12 Primary
DBDG_SITE2 site2db1, site2db2 DBDG_SITE21, DBDG_SITE22 Modo de espera

Instale o software cliente da base de dados Oracle

  1. Crie uma máquina virtual (VM) no Compute Engine que cumpra os seguintes critérios:

    • Sistema operativo. Red Hat Enterprise Linux 7.

    • Redes. Uma sub-rede com regras de firewall que permitem o acesso a partir da sua nuvem privada virtual aos anfitriões da Solução Bare Metal que executam as bases de dados primárias e de reserva.

    • Armazenamento. -- Pelo menos 20 GB alocados ao disco de arranque.

  2. Inicie sessão na VM e verifique se o nome de anfitrião SCAN de cada cluster de base de dados é resolvido no DNS:

    host DBDG_SITE1_SCAN_HOSTNAME
    host DBDG_SITE2_SCAN_HOSTNAME
    

    Se os nomes de anfitrião não forem resolvidos, adicione os endereços IP para cada nome de anfitrião SCAN ao ficheiro /etc/hosts na VM. Substitua os endereços IP de exemplo pelos endereços IP de cada cluster:

    # 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. Instale o RPM da base de dados Oracle. Instale apenas o software. Não tem de configurar uma base de dados na VM do observador.

  4. O RPM da base de dados Oracle instala software num diretório predefinido. Adicione as seguintes entradas a /home/oracle/.bash_profile para adicionar o diretório base do software Oracle ao caminho:

    cat >> /home/oracle/.bash_profile << EOL
    export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1
    export PATH=\$PATH:\$ORACLE_HOME/bin
    EOL
    
  5. Obtenha as variáveis de ambiente da Oracle na sessão do terminal:

    source ~/.bash_profile
    

Configure a conetividade da base de dados

  1. Configure as definições da Oracle Net no ficheiro $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. A versão 12.2 e superior da base de dados Oracle inclui suporte para o observador ser executado no modo de segundo plano. Para o fazer, tem de criar uma carteira para realizar a autenticação sem palavra-passe na base de dados. Inicie sessão como o utilizador oracle na VM do observador e execute as seguintes tarefas para criar uma carteira:

    1. Adicione as seguintes entradas a $ORACLE_HOME/network/admin/sqlnet.ora:

      WALLET_LOCATION =
         (SOURCE =
            (METHOD = FILE)
            (METHOD_DATA = (DIRECTORY = /home/oracle/wallet))
      )
      SQLNET.WALLET_OVERRIDE = TRUE
      
    2. Crie o diretório da carteira na VM que aloja o observador:

      mkdir /home/oracle/wallet
      
    3. Inicialize a carteira e, em seguida, forneça uma palavra-passe para a carteira quando lhe for pedido:

      mkstore -wrl /home/oracle/wallet -create
      
    4. Crie uma entrada na carteira para cada base de dados na configuração do Data Guard. O comando mkstore pede a palavra-passe SYS para a base de dados, seguida da palavra-passe da carteira fornecida no passo anterior:

      mkstore -wrl /home/oracle/wallet -createCredential DBDG_SITE1 sys
      mkstore -wrl /home/oracle/wallet -createCredential DBDG_SITE2 sys
      
    5. Confirme se a carteira contém credenciais para cada base de dados na configuração do Data Guard. O argumento -listCredential para mkstore pede a palavra-passe da carteira:

      mkstore -wrl /home/oracle/wallet -listCredential
      
  3. Inicie sessão na VM do observador como Oracle e, em seguida, teste a conetividade às bases de dados primárias e de reserva. Estabeleça ligação às bases de dados principal e secundária com o SQL*Plus através das credenciais da carteira:

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

    Se a configuração da carteira for bem-sucedida, o comando sqlplus inicia sessão diretamente na base de dados sem pedir uma palavra-passe.

Configure e ative a comutação por falha de início rápido

  1. Crie um diretório para armazenar a configuração do observador e os ficheiros de registo:

    mkdir /home/oracle/fsfo
    
  2. Faça a ligação ao agente do Data Guard na base de dados principal através da carteira:

    dgmgrl
    CONNECT /@DBDG_SITE1;
    
  3. Veja o estado do Data Guard para verificar se a configuração está marcada como SUCCESS:

    SHOW CONFIGURATION;
    
  4. Ative a comutação em caso de falha de início rápido (FSFO):

    ENABLE FAST_START FAILOVER;
    

    A ativação do FSFO não torna a configuração preparada para a comutação por falha automática. A ativação pós-falha automática requer um observador.

  5. Iniciar observador do Data Guard:

    START OBSERVER observer1 IN BACKGROUND FILE IS '/home/oracle/fsfo/observer1_DBDG.dat' LOGFILE IS '/home/oracle/fsfo/observer1_DBDG.log';
    
  6. Numa sessão de terminal separada, valide a configuração:

    SHOW CONFIGURATION VERBOSE;
    

    O exemplo seguinte mostra o modo detalhado do comando show configuration. Se o estado da configuração for SUCCESS, a configuração está concluída.

    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