Data Guard-Beobachter in Google Cloud Compute Engine einrichten

Abhängig von Ihren Hochverfügbarkeitsanforderungen können Sie das Failover zwischen Datenbanken automatisieren. Nachdem Sie Ihre Data Guard-Bereitstellung validiert haben, können Sie zu diesem Zweck einen Data Guard-Beobachter in Compute Engine einrichten. Ein Beobachter ist ein Prozess, der eine Data Guard-Konfiguration überwacht, um einen automatischen Failover zu initiieren, wenn dies erforderlich ist.

In diesem Leitfaden wird beschrieben, wie Sie den Client der Oracle 19c-Datenbank auf einer virtuellen Beobachtermaschine (VM) installieren und das Fast-Start-Failover konfigurieren.

Die folgenden Beispiele werden in diesem Leitfaden verwendet:

Eindeutiger Name der Datenbank Server-Hostnamen RAC-Instanznamen Rolle
DBDG_SITE1 site1db1, site1db2 DBDG_SITE11, DBDG_SITE12 Primär
DBDG_SITE2 site2db1, site2db2 DBDG_SITE21, DBDG_SITE22 Standby

Clientsoftware der Oracle-Datenbank installieren

  1. Erstellen Sie eine virtuelle Maschine (VM) in Compute Engine, die die folgenden Kriterien erfüllt:

    • Betriebssystem. Red Hat Enterprise Linux 7.

    • Netzwerk. Ein Subnetz mit Firewallregeln, die den Zugriff von Ihrer Virtual Private Cloud auf die Bare-Metal-Lösungshosts zulassen, die die primäre Datenbank und die Standby-Datenbank ausführen.

    • Storage. – Mindestens 20 GB dem Bootlaufwerk zugewiesen.

  2. Melden Sie sich bei der VM an und prüfen Sie, ob der SCAN-Hostname jedes Datenbankclusters in DNS aufgelöst wird:

    host DBDG_SITE1_SCAN_HOSTNAME
    host DBDG_SITE2_SCAN_HOSTNAME
    

    Wenn die Hostnamen nicht aufgelöst werden, fügen Sie die IP-Adressen für jeden SCAN-Hostnamen zur Datei /etc/hosts auf der VM hinzu. Ersetzen Sie die Beispiel-IP-Adressen durch die IP-Adressen für jeden 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. Installieren Sie die Oracle-Datenbank-RPM. Installieren Sie nur die Software. Es ist nicht erforderlich, eine Datenbank auf der Beobachter-VM zu konfigurieren.

  4. Die Oracle-Datenbank-RPM-Software wird in einem vordefinierten Verzeichnis installiert. Fügen Sie die folgenden Einträge zu /home/oracle/.bash_profile hinzu, um das Home-Verzeichnis der Oracle-Software dem Pfad hinzuzufügen:

    cat >> /home/oracle/.bash_profile << EOL
    export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1
    export PATH=\$PATH:\$ORACLE_HOME/bin
    EOL
    
  5. Ermitteln Sie die Oracle-Umgebungsvariablen in Ihrer Terminalsitzung:

    source ~/.bash_profile
    

Datenbankverbindung konfigurieren

  1. Konfigurieren Sie die Oracle-Net-Einstellungen in der Datei $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 Version 12.2 und höher unterstützt die Ausführung des Beobachters im Hintergrundmodus. Dazu muss eine Wallet erstellt werden, um eine passwortlose Authentifizierung bei der Datenbank durchzuführen. Melden Sie sich als Oracle-Nutzer auf der Beobachter-VM an und führen Sie die folgenden Aufgaben aus, um eine Wallet zu erstellen:

    1. Fügen Sie $ORACLE_HOME/network/admin/sqlnet.ora die folgenden Einträge hinzu:

      WALLET_LOCATION =
         (SOURCE =
            (METHOD = FILE)
            (METHOD_DATA = (DIRECTORY = /home/oracle/wallet))
      )
      SQLNET.WALLET_OVERRIDE = TRUE
      
    2. Erstellen Sie das Wallet-Verzeichnis auf der VM, auf der der Beobachter gehostet wird:

      mkdir /home/oracle/wallet
      
    3. Initialisieren Sie die Wallet und geben Sie ein Passwort ein, wenn Sie dazu aufgefordert werden:

      mkstore -wrl /home/oracle/wallet -create
      
    4. Erstellen Sie in der Data Guard-Konfiguration für jede Datenbank einen Eintrag. Mit dem Befehl mkstore wird das SYS-Passwort für die Datenbank angefordert, gefolgt vom Wallet-Passwort aus dem vorherigen Schritt:

      mkstore -wrl /home/oracle/wallet -createCredential DBDG_SITE1 sys
      mkstore -wrl /home/oracle/wallet -createCredential DBDG_SITE2 sys
      
    5. Prüfen Sie, ob die Wallet die Anmeldedaten für jede Datenbank in der Data Guard-Konfiguration enthält. Das -listCredential-Argument für mkstore fordert das Wallet-Passwort an:

      mkstore -wrl /home/oracle/wallet -listCredential
      
  3. Melden Sie sich als Oracle bei der Beobachter-VM an und testen Sie dann die Konnektivität zu den primären und Standby-Datenbanken. Stellen Sie mit den SQL-Anmeldedaten eine Verbindung zu den primären und sekundären Datenbanken mit SQL*Plus her:

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

    Wenn die Wallet-Konfiguration erfolgreich ist, meldet sich der Befehl sqlplus direkt bei der Datenbank an, ohne ein Passwort anzufordern.

Failover für Schnellstart konfigurieren und aktivieren

  1. Erstellen Sie ein Verzeichnis zum Speichern der Konfigurations- und Protokolldateien des Beobachter:

    mkdir /home/oracle/fsfo
    
  2. Stellen Sie über die Wallet eine Verbindung zum Data Guard-Broker in der primären Datenbank her:

    dgmgrl
    CONNECT /@DBDG_SITE1;
    
  3. Prüfen Sie den Data Guard-Status, um zu festzustellen, ob die Konfiguration als SUCCESS markiert ist:

    SHOW CONFIGURATION;
    
  4. Aktivieren Sie das Fast-Start-Failover (FSFO):

    ENABLE FAST_START FAILOVER;
    

    Durch Aktivieren von FSFO ist die Konfiguration nicht für ein automatisches Failover bereit. Für das automatische Failover ist ein Beobachter erforderlich.

  5. Starten Sie den Data Guard-Beobachter:

    START OBSERVER observer1 IN BACKGROUND FILE IS '/home/oracle/fsfo/observer1_DBDG.dat' LOGFILE IS '/home/oracle/fsfo/observer1_DBDG.log';
    
  6. Prüfen Sie in einer separaten Terminalsitzung die Konfiguration:

    SHOW CONFIGURATION VERBOSE;
    

    Das folgende Beispiel zeigt den ausführlichen Modus des Befehls show configuration. Wenn der Konfigurationsstatus SUCCESS lautet, ist die Einrichtung abgeschlossen.

    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