Data Guard Broker validieren und konfigurieren

Prüfen Sie die Konnektivität zwischen Oracle Database Exadata Cloud Service und Oracle Exadata Database Machine vor Ort über Netcat tnsping und ping.

Oracle Data Guard Broker ist ein verteiltes Management-Framework, das die Erstellung, Wartung und Überwachung von Data Guard-Konfigurationen automatisiert und zentralisiert.

Sie können alle Verwaltungsvorgänge lokal oder aus der Ferne über die benutzerfreundlichen Schnittstellen des Brokers ausführen: die Data Guard-Verwaltungsseiten in Oracle Enterprise Manager, die grafische Benutzeroberfläche (GUI) des Brokers, und die Data Guard-Befehlszeilenschnittstelle namens DGMGRL.

Verbinden Sie Quell- und Standby-Exadata-Systeme

Verbinden Sie die Quell- und Standby-Exadata-Systeme mit einer Oracle Data Guard Broker-Konfiguration, und prüfen Sie die Konnektivität mit NetCat, TNS Ping Utility und Ping.

Die skizzierten Schritte gehen davon aus, dass die On-Premise-Primärdatenbank nicht bereits Teil einer vorhandenen Data Guard-Broker-Konfiguration ist.

  1. Bestimmen Sie, ob die primäre On-Premise-Datenbank bereits Teil einer vorhandenen Data Guard-Broker-Konfiguration ist.
    SQL> select decode(count(1),0,'NOCONFIG') from v$DG_BROKER_CONFIG;
    Ein anderer Wert als "NOCONFIG" impliziert eine vorhandene Broker-Konfiguration. Wenn für die On-Premise-Datenbank eine Broker-Konfiguration vorhanden ist, wird davon ausgegangen, dass der Administrator über Vorkenntnisse des Brokers verfügt und die neue Standby-Datenbank zur vorhandenen Broker-Konfiguration hinzufügen kann.

    Wenn keine Brokerkonfiguration vorhanden ist, führen Sie die folgenden Schritte aus.

  2. Prüfen Sie, ob der Standard-Listener LISTENER heißt.
    $lsnrctl show current_listener | grep Current Listener

    Die Ausgabe sollte wie folgt aussehen:

    Current Listener is LISTENER
  3. Prüfen Sie den Listener-Port, indem Sie den folgenden Befehl auf dem On-Premise-Rechner ausführen. Das erwartete Ergebnis wird angezeigt.
    [oracle@exa11db01 bin]$ ./lsnrctl status | grep 'Connecting'

    Die Ausgabe sollte wie folgt aussehen:

    Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=10.136.74.2)(PORT=1521))
  4. Verwenden Sie NetCat in der On-Premise-Oracle Exadata Database Machine, um eine Verbindung mit der Standby Oracle Database Exadata Cloud Service herzustellen, um die Konnektivität zu validieren
    [oracle@exa11db01 bin]$ nc -v 10.255.195.131 1521

    Die Ausgabe sollte wie folgt aussehen:

    Ncat: Version 7.50 (https://nmap.org/ncat )
    Ncat: Connected to 10.255.195.131:1521.
  5. Verwenden Sie im On-Premise-Oracle Exadata Database Machine das TNS Ping-Utility für Linux, um eine Verbindung mit der Standby Oracle Database Exadata Cloud Service herzustellen, um die Konnektivität zu validieren
    [oracle@exa11db01 bin]$ tnsping DB1_phx3g7

    Die Ausgabe sollte wie folgt aussehen:

    TNS Ping Utility for Linux: Version 19.0.0.0.0 - Production on 23-JAN-2021 
    19:46:55
    Copyright (c) 1997, 2020, Oracle.  All rights reserved.
    Used parameter files:
    /u01/app/oracle/product/19.0.0.0/dbhome_1/network/admin/sqlnet.ora
    Used TNSNAMES adapter to resolve the alias
    Attempting to contact (DESCRIPTION = (SDU=65536) (RECV_BUF_SIZE=134217728) 
    (SEND_BUF_SIZE=134217728) (ADDRESS_LIST = (FAILOVER=on) 
    (CONNECT_TIMEOUT=3)(RETRY_COUNT=3) (ADDRESS = (PROTOCOL = TCP)(HOST 
    =10.255.195.131)(PORT = 1521))) (CONNECT_DATA = (SERVER = DEDICATED) 
    (SERVICE_NAME = db11) (UR=A)))
    OK (40 msec)
  6. In der On-Premise-Oracle Exadata Database Machine Ping der Standby Oracle Database Exadata Cloud Service zur Validierung der Konnektivität
    [oracle@exa11db01 bin]$ ping 10.255.195.131

    Die Ausgabe sollte wie folgt aussehen:

    PING 10.255.195.131 (10.255.195.131) 56(84) bytes of data.
    64 bytes from 10.255.195.131: icmp_seq=1 ttl=60 time=19.7 ms
    64 bytes from 10.255.195.131: icmp_seq=2 ttl=60 time=19.6 ms
    64 bytes from 10.255.195.131: icmp_seq=3 ttl=60 time=19.5 ms
    ^C
    --- 10.255.195.131 ping statistics ---
    3 packets transmitted, 3 received, 0% packet loss, time 2003ms
    rtt min/avg/max/mdev = 19.521/19.633/19.718/0.141 ms
  7. Verwenden Sie NetCat in Oracle Database Exadata Cloud Service, um eine Verbindung mit dem On-Premise-Oracle Exadata Database Machine herzustellen, um die Konnektivität zu validieren.
    [oracle@exacs82-vm3sv1 ~]$ nc -v 10.136.74.2

    Die Ausgabe sollte wie folgt aussehen:

    -bash: nc: command not found
  8. Verwenden Sie in Oracle Database Exadata Cloud Service das TNS Ping-Utility für Linux, um eine Verbindung mit dem On-Premise-Oracle Exadata Database Machine herzustellen, um die Konnektivität zu validieren
    [oracle@exacs82-vm3sv1 ~]$ tnsping db1

    Die Ausgabe sollte wie folgt aussehen:

    TNS Ping Utility for Linux: Version 19.0.0.0.0 - Production on 23-JAN-2021 
    19:53:02
    Copyright (c) 1997, 2020, Oracle.  All rights reserved.
    Used parameter files:
    /u02/app/oracle/product/19.0.0.0/dbhome_5/network/admin/DB1/sqlnet.ora
    Used TNSNAMES adapter to resolve the alias
    Attempting to contact (DESCRIPTION = (SDU=65536) (RECV_BUF_SIZE=134217728) 
    (SEND_BUF_SIZE=134217728) (ADDRESS_LIST = (FAILOVER=on) 
    (CONNECT_TIMEOUT=3)(RETRY_COUNT=3) (ADDRESS = (PROTOCOL = TCP)(HOST = 
    10.136.74.2)(PORT = 1521))) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = 
    db11) (UR=A)))
    OK (40 msec)
  9. In Oracle Database Exadata Cloud Service, Ping der On-Premise-Oracle Exadata Database Machine zur Validierung der Konnektivität
    [oracle@exacs82-vm3sv1 ~]$ ping 10.136.74.2

    Die Ausgabe sollte wie folgt aussehen:

    PING 10.136.74.2 (10.136.74.2) 56(84) bytes of data.
    64 bytes from 10.136.74.2: icmp_seq=1 ttl=60 time=18.6 ms
    64 bytes from 10.136.74.2: icmp_seq=2 ttl=60 time=18.6 ms
    64 bytes from 10.136.74.2: icmp_seq=3 ttl=60 time=18.5 ms
    64 bytes from 10.136.74.2: icmp_seq=4 ttl=60 time=18.4 ms
    ^C
    --- 10.136.74.2 ping statistics ---
    4 packets transmitted, 4 received, 0% packet loss, time 3003ms
    rtt min/avg/max/mdev = 18.442/18.574/18.665/0.162 ms

Datendateien aus der Standby-Exadata-Instanz entfernen

Führen Sie ein Skript aus, um die Datendateien aus der Standbydatenbank zu entfernen.

  1. Melden Sie sich bei Ihrer Oracle Database Exadata Cloud Service-Instanz an.
  2. Erstellen Sie ein Skript zum Entfernen der Datendateien.
    SQL> set heading off linesize 999 pagesize 0 feedback off trimspool on
    SQL> spool /tmp/files.lst
    SQL> select 'asmcmd rm '||name from v$datafile union all select 'asmcmd rm 
    '||name from v$tempfile union all select 'asmcmd rm '||member from 
    v$logfile;
    SQL> spool off
    SQL> create pfile='/tmp/ ORACLE_UNQNAME.pfile' from spfile;         
    SQL> exit
  3. Fahren Sie die Datenbank auf der Oracle Database Exadata Cloud Service-Instanz herunter.
    srvctl stop database -d DB1_phx3g7
  4. Entfernen Sie die Datendateien, indem Sie die Datei files.1st bearbeiten und die folgenden Zeilen entfernen:
    SQL> select 'asmcmd rm '||name from v$datafile union all select 'asmcmd rm 
    '||name from v$tempfile union all select 'asmcmd rm '||member from 
    v$logfile;
    SQL> spool off
  5. Ändern Sie die Dateiberechtigungen, die von allen Benutzern lesbar, schreibgeschützt und ausführbar sind.
    chmod 777 /tmp/files.1st
  6. Speichern und führen Sie das Skript aus.
    ./tmp/files.lst
Alle Dateien für die Starterdatenbank werden entfernt.

Kennwortdateien kopieren

Suchen Sie die Kennwortdatei im Exadata-System vor Ort, und kopieren Sie die Datei in die Oracle Database Exadata Cloud Service-Instanz. Die Kennwortdatei im On-Premise-Exadata-System befindet sich auf der Oracle Automatic Storage Management - (Oracle ASM-) Festplatte.

  1. Prüfen Sie die aktuelle Konfiguration der On-Premise-Datenbank, und zeigen Sie die Ausgabe an.
    srvctl config database -d db1
    Die Ausgabe enthält die Kennwortdatei.
  2. Bearbeiten Sie die Datei oratab, und fügen Sie Oracle ASM hinzu.
    vi /etc/oratab 
    db11:/u01/app/oracle/product/19.0.0.0/dbhome
    _1:N
    +ASM1:/u01/app/19.0.0.0/grid:N
  3. Verwenden Sie das Oracle ASM-Befehlszeilen-Utility, und rufen Sie die Kennwortdatei ab.
    asmcmd pwget --dbuniquename db1
    Die Ausgabe enthält die Kennwortdatei.
  4. Melden Sie sich beim Oracle ASM-Befehlszeilen-Utility an, und kopieren Sie mit dem Befehl pwcopy die Kennwortdatei auf die lokale Festplatte.
    Die Ausgabe enthält die Kennwortdatei.
  5. Bestätigen Sie mit dem Befehl ls-lrt, dass die Datei auf die lokale Festplatte kopiert wird.
  6. Speichern Sie die Kennwortdatei mit dem SCP-Netzwerkprotokoll in der Oracle Database Exadata Cloud Service-Instanz.
    scp -i Key.ssh -r pwddb1 opc@10.255.195.131:/tmp/pwddb1
  7. Melden Sie sich als Benutzer opc bei der Oracle Database Exadata Cloud Service-Instanz an, und ändern Sie den Modus für die Kennwortdatei in 777.
    chmod 777 /tmp/pwddb1
  8. Melden Sie sich als Benutzer su-oracle bei der Oracle Database Exadata Cloud Service-Instanz an, und zeigen Sie die Verzeichnisse an.
    sudo su - oracle
    ls -lrt
    source DB1.env
  9. Kopieren Sie die Datei mit dem Oracle ASM-Befehlszeilen-Utility aus dem Ordner tmp in $ORACLE_HOME/dbs, in dem sich die Kennwortdatei befinden soll.
    ASMCMD> pwcopy --dbuniquename DB1_phx3g7 /tmp/pwddb1 +DATAC1/DB1_phx3g7/PASSWORD/passwd
    Eine Fehlermeldung wie folgt wird angezeigt. Dies wird erwartet, weil das Kennwort bereits registriert ist.
    ASMCMD-9453: failed to register password file as a CRS resource
    copying /u02/app/oracle/product/19.0.0.0/dbhome_5/dbs/pwddb1 -> +DATAC1/DB1_phx3g7/PASSWORD/passwd
    ASMCMD-9453: failed to register password file as a CRS resource
  10. Prüfen Sie mit dem Oracle ASM-Befehlszeilen-Utility, ob die Kennwortdatei kopiert wird.
    ls -al