Configurer un observateur Data Guard sur Google Cloud Compute Engine

Selon vos exigences de haute disponibilité, vous pouvez automatiser le basculement entre les bases de données. Une fois que vous avez validé votre déploiement Data Guard, vous pouvez configurer un observateur Data Guard sur Compute Engine. Un observateur est un processus qui surveille une configuration Data Guard afin d'initier un basculement automatisé si les conditions le justifient.

Ce guide explique comment installer le client de base de données Oracle 19c sur une machine virtuelle (VM) observateur et configurer le basculement rapide.

Les exemples suivants sont utilisés tout au long de ce guide:

Nom de base de données unique Noms d'hôtes du serveur Noms d'instance RAC Rôle
DBDG_SITE1 site1db1, site1db2 DBDG_SITE11, DBDG_SITE12 Principal
DBDG_SITE2 site2db1, site2db2 DBDG_SITE21, DBDG_SITE22 Instance de secours

Installer le logiciel client de base de données Oracle

  1. Créez une machine virtuelle (VM) sur Compute Engine répondant aux critères suivants:

    • Système d'exploitation Red Hat Enterprise Linux 7

    • Mise en réseau Un sous-réseau avec des règles de pare-feu autorisant l'accès de votre cloud privé virtuel aux hôtes de la solution Bare Metal qui exécutent les bases de données principale et de secours.

    • Stockage. -- au moins 20 Go alloués au disque de démarrage.

  2. Connectez-vous à la VM et vérifiez que le nom d'hôte SCAN de chaque cluster de base de données est résolu dans le DNS:

    host DBDG_SITE1_SCAN_HOSTNAME
    host DBDG_SITE2_SCAN_HOSTNAME
    

    Si les noms d'hôte ne sont pas résolus, ajoutez les adresses IP de chaque nom d'hôte SCAN au fichier /etc/hosts de la VM. Remplacez les exemples d'adresses IP par les adresses IP de chaque 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. Installez le RPM de la base de données Oracle. Installez uniquement le logiciel. Il n'est pas nécessaire de configurer une base de données sur la VM observateur.

  4. Le RPM de la base de données Oracle installe les logiciels dans un répertoire prédéfini. Incluez les entrées suivantes dans le fichier /home/oracle/.bash_profile pour ajouter la page d'accueil du logiciel Oracle au chemin:

    cat >> /home/oracle/.bash_profile << EOL
    export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1
    export PATH=\$PATH:\$ORACLE_HOME/bin
    EOL
    
  5. Importez les variables d'environnement Oracle dans votre session de terminal:

    source ~/.bash_profile
    

Configurer la connectivité de la base de données

  1. Configurez les paramètres Oracle Net dans le fichier $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 version 12.2 et les versions ultérieures d'Oracle Database sont compatibles avec l'exécution de l'observateur en mode arrière-plan. Pour ce faire, vous devez créer un portefeuille afin de procéder à une authentification sans mot de passe sur la base de données. Connectez-vous en tant qu'utilisateur oracle sur la VM observateur et effectuez les tâches suivantes pour créer un portefeuille:

    1. Ajoutez les entrées suivantes à $ORACLE_HOME/network/admin/sqlnet.ora:

      WALLET_LOCATION =
         (SOURCE =
            (METHOD = FILE)
            (METHOD_DATA = (DIRECTORY = /home/oracle/wallet))
      )
      SQLNET.WALLET_OVERRIDE = TRUE
      
    2. Créez le répertoire de portefeuille sur la VM hébergeant l'observateur:

      mkdir /home/oracle/wallet
      
    3. Initialisez le portefeuille, puis indiquez un mot de passe pour le portefeuille lorsque vous y êtes invité:

      mkstore -wrl /home/oracle/wallet -create
      
    4. Créez une entrée dans le portefeuille pour chaque base de données dans la configuration Data Guard. La commande mkstore demande le mot de passe SYS de la base de données, suivi du mot de passe de portefeuille fourni à l'étape précédente:

      mkstore -wrl /home/oracle/wallet -createCredential DBDG_SITE1 sys
      mkstore -wrl /home/oracle/wallet -createCredential DBDG_SITE2 sys
      
    5. Vérifiez que le portefeuille contient les identifiants associés à chaque base de données dans la configuration de Data Guard. L'argument -listCredential de mkstore demande le mot de passe du portefeuille:

      mkstore -wrl /home/oracle/wallet -listCredential
      
  3. Connectez-vous à la VM observateur en tant qu'Oracle, puis testez la connectivité aux bases de données principale et de secours. Connectez-vous aux bases de données principale et secondaire avec SQL*Plus à l'aide des identifiants de portefeuille:

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

    Si la configuration du portefeuille aboutit, la commande sqlplus se connecte directement à la base de données sans demander de mot de passe.

Configurer et activer le basculement rapide

  1. Créez un répertoire pour stocker la configuration de l'observateur et les fichiers journaux:

    mkdir /home/oracle/fsfo
    
  2. Connectez-vous à l'agent Data Guard sur la base de données principale à l'aide du portefeuille:

    dgmgrl
    CONNECT /@DBDG_SITE1;
    
  3. Affichez l'état de Data Guard pour vérifier que la configuration est marquée comme SUCCESS:

    SHOW CONFIGURATION;
    
  4. Activer le basculement rapide "fast_start" (FSFO, fast start failover)

    ENABLE FAST_START FAILOVER;
    

    L'activation de FSFO ne permet pas de préparer la configuration pour le basculement automatique. Le basculement automatique nécessite un observateur.

  5. Démarrez 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. Dans une session de terminal distincte, vérifiez la configuration.

    SHOW CONFIGURATION VERBOSE;
    

    L'exemple suivant montre le mode détaillé de la commande show configuration. Si l'état de la configuration est SUCCESS, votre configuration est terminée.

    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