Configura un osservatore Data Guard su Google Cloud Compute Engine

A seconda dei tuoi requisiti di alta disponibilità, potresti voler automatizzare il failover tra database. Dopo aver convalidato il deployment di Data Guard, puoi configurare un osservatore Data Guard su Compute Engine per eseguire questa operazione. Un osservatore è un processo che monitora una configurazione di Data Guard per avviare un failover automatico se le condizioni lo consentono.

Questa guida illustra l'installazione del client di database Oracle 19c su una macchina virtuale (VM) di osservazione e la configurazione del failover di avvio rapido.

In questa guida vengono utilizzati i seguenti esempi:

Nome univoco database Nomi host dei server Nomi istanze RAC Ruolo
DBDG_SITE1 site1db1, site1db2 DBDG_SITE11, DBDG_SITE12 Principale
DBDG_SITE2 site2db1, site2db2 DBDG_SITE21, DBDG_SITE22 In attesa

Installa il software client Oracle Database

  1. Crea una macchina virtuale (VM) su Compute Engine che soddisfi i seguenti criteri:

    • Sistema operativo. Red Hat Enterprise Linux 7.

    • Networking. Una subnet con regole firewall che consentono l'accesso dal Virtual Private Cloud agli host Bare Metal Solution che eseguono i database principali e in standby.

    • Spazio di archiviazione. -- Almeno 20 GB allocati al disco di avvio.

  2. Accedi alla VM e verifica che il nome host SCAN di ogni cluster di database venga risolto in DNS:

    host DBDG_SITE1_SCAN_HOSTNAME
    host DBDG_SITE2_SCAN_HOSTNAME
    

    Se i nomi host non si risolvono, aggiungi gli indirizzi IP per ogni nome host SCAN al file /etc/hosts sulla VM. Sostituisci gli indirizzi IP di esempio con gli indirizzi IP per ogni 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. Installa l'RPM del database Oracle. Installa solo il software. Non è necessario configurare un database sulla VM dell'osservatore.

  4. Oracle Database RPM installa il software in una directory predefinita. Aggiungi le seguenti voci a /home/oracle/.bash_profile per aggiungere la home page del software Oracle al percorso:

    cat >> /home/oracle/.bash_profile << EOL
    export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1
    export PATH=\$PATH:\$ORACLE_HOME/bin
    EOL
    
  5. Acquisisci le variabili di ambiente Oracle nella sessione del terminale:

    source ~/.bash_profile
    

Configura la connettività del database

  1. Configura le impostazioni di Oracle Net nel file $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. Oracle Database 12.2 e versioni successive include il supporto per l'esecuzione dell'osservatore in modalità in background. A questo scopo, è necessario creare un portafoglio per eseguire l'autenticazione senza password nel database. Accedi come utente Oracle sulla VM dell'osservatore ed esegui le seguenti attività per creare un portafoglio:

    1. Aggiungi le seguenti voci a $ORACLE_HOME/network/admin/sqlnet.ora:

      WALLET_LOCATION =
         (SOURCE =
            (METHOD = FILE)
            (METHOD_DATA = (DIRECTORY = /home/oracle/wallet))
      )
      SQLNET.WALLET_OVERRIDE = TRUE
      
    2. Crea la directory del portafoglio sulla VM che ospita l'osservatore:

      mkdir /home/oracle/wallet
      
    3. Inizializza il portafoglio, quindi fornisci una password per il portafoglio quando ti viene richiesto:

      mkstore -wrl /home/oracle/wallet -create
      
    4. Crea una voce nel portafoglio per ogni database nella configurazione di Data Guard. Il comando mkstore richiederà la password SYS per il database, seguita dalla password del portafoglio fornita nel passaggio precedente:

      mkstore -wrl /home/oracle/wallet -createCredential DBDG_SITE1 sys
      mkstore -wrl /home/oracle/wallet -createCredential DBDG_SITE2 sys
      
    5. Verifica che il portafoglio contenga le credenziali per ogni database nella configurazione di Data Guard. L'argomento -listCredential per mkstore richiederà la password del portafoglio:

      mkstore -wrl /home/oracle/wallet -listCredential
      
  3. Accedi alla VM dell'osservatore come Oracle, quindi verifica la connettività ai database principali e in standby. Connettiti ai database principali e secondari con SQL*Plus utilizzando le credenziali di Wallet:

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

    Se la configurazione del portafoglio va a buon fine, il comando sqlplus accede direttamente al database senza richiedere una password.

Configura e abilita il failover per l'avvio rapido

  1. Crea una directory per archiviare la configurazione dell'osservatore e i file di log:

    mkdir /home/oracle/fsfo
    
  2. Connettiti al broker Data Guard sul database principale utilizzando il portafoglio:

    dgmgrl
    CONNECT /@DBDG_SITE1;
    
  3. Visualizza lo stato di Data Guard per verificare che la configurazione sia contrassegnata come SUCCESS:

    SHOW CONFIGURATION;
    
  4. Abilita Failover avvio rapido (FSFO):

    ENABLE FAST_START FAILOVER;
    

    L'abilitazione di FSFO non rende la configurazione pronta per il failover automatico. Il failover automatico richiede un osservatore.

  5. Avvia Data Guard Observationr:

    START OBSERVER observer1 IN BACKGROUND FILE IS '/home/oracle/fsfo/observer1_DBDG.dat' LOGFILE IS '/home/oracle/fsfo/observer1_DBDG.log';
    
  6. In una sessione di terminale separata, verifica la configurazione:

    SHOW CONFIGURATION VERBOSE;
    

    L'esempio seguente mostra la modalità dettagliata del comando show configuration. Se lo stato della configurazione è SUCCESS, significa che la configurazione è stata completata.

    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