Valider et configurer Data Guard Broker

Vérifiez la connectivité entre Oracle Database Exadata Cloud Service et Oracle Exadata Database Machine sur site via Netcat tnsping et ping.

Oracle Data Guard broker est une structure de gestion distribuée qui automatise et centralise la création, la maintenance et la surveillance des configurations Data Guard.

Vous pouvez effectuer toutes les opérations de gestion localement ou à distance via les interfaces faciles à utiliser du courtier : les pages de gestion Data Guard dans Oracle Enterprise Manager, qui est l'interface utilisateur graphique (GUI) du courtier, et l'interface en ligne de commande Data Guard appelée DGMGRL.

Connecter les systèmes Exadata source et de secours

Connectez les systèmes Exadata source et de secours avec une configuration Oracle Data Guard broker et vérifiez la connectivité dans les deux directions à l'aide de NetCat, TNS Ping Utility et Ping.

Les étapes décrites supposent que la base de données principale sur site ne fait pas déjà partie d'une configuration de broker Data Guard existante.

  1. Déterminez si la base de données principale sur site fait déjà partie d'une configuration de broker Data Guard existante.
    SQL> select decode(count(1),0,'NOCONFIG') from v$DG_BROKER_CONFIG;
    Une valeur autre que NOCONFIG implique une configuration de courtier existante. S'il existe une configuration de courtier existante pour la base de données sur site, on suppose que l'administrateur a une connaissance préalable du courtier et sait comment ajouter la nouvelle base de données de secours à la configuration de courtier existante.

    S'il n'existe pas de configuration de courtier existante, effectuez les étapes suivantes.

  2. Vérifiez que le processus d'écoute par défaut est nommé LISTENER.
    $lsnrctl show current_listener | grep Current Listener

    La sortie devrait ressembler à ce qui suit :

    Current Listener is LISTENER
  3. Vérifiez le port du processus d'écoute en exécutant la commande suivante à partir de la machine sur site. Le résultat attendu est affiché.
    [oracle@exa11db01 bin]$ ./lsnrctl status | grep 'Connecting'

    La sortie devrait ressembler à ce qui suit :

    Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=10.136.74.2)(PORT=1521))
  4. Sur Oracle Exadata Database Machine sur site, utilisez NetCat pour vous connecter à Oracle Database Exadata Cloud Service de secours pour valider la connectivité
    [oracle@exa11db01 bin]$ nc -v 10.255.195.131 1521

    La sortie devrait ressembler à ce qui suit :

    Ncat: Version 7.50 (https://nmap.org/ncat )
    Ncat: Connected to 10.255.195.131:1521.
  5. Sur le site Oracle Exadata Database Machine, utilisez l'utilitaire Ping TNS pour Linux pour vous connecter à Oracle Database Exadata Cloud Service de secours pour valider la connectivité
    [oracle@exa11db01 bin]$ tnsping DB1_phx3g7

    La sortie devrait ressembler à ce qui suit :

    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. Sur Oracle Exadata Database Machine sur site, ping the standby Oracle Database Exadata Cloud Service pour valider la connectivité
    [oracle@exa11db01 bin]$ ping 10.255.195.131

    La sortie devrait ressembler à ce qui suit :

    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. Sur Oracle Database Exadata Cloud Service, utilisez NetCat pour vous connecter à Oracle Exadata Database Machine sur site pour valider la connectivité.
    [oracle@exacs82-vm3sv1 ~]$ nc -v 10.136.74.2

    La sortie devrait ressembler à ce qui suit :

    -bash: nc: command not found
  8. Sur Oracle Database Exadata Cloud Service, utilisez l'utilitaire TNS Ping pour Linux pour vous connecter à Oracle Exadata Database Machine sur site pour valider la connectivité
    [oracle@exacs82-vm3sv1 ~]$ tnsping db1

    La sortie devrait ressembler à ce qui suit :

    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. Sur Oracle Database Exadata Cloud Service, ping the on-premises Oracle Exadata Database Machine pour valider la connectivité
    [oracle@exacs82-vm3sv1 ~]$ ping 10.136.74.2

    La sortie devrait ressembler à ce qui suit :

    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

Supprimer les fichiers de données de l'instance Exadata de secours

Exécutez un script pour supprimer les fichiers de données de la base de secours.

  1. Connectez-vous à votre instance Oracle Database Exadata Cloud Service.
  2. Créez un script pour supprimer les fichiers de données.
    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. Arrêtez la base de données sur l'instance Oracle Database Exadata Cloud Service.
    srvctl stop database -d DB1_phx3g7
  4. Enlevez les fichiers de données en modifiant le fichier files.1st et en supprimant les lignes suivantes :
    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. Modifiez les autorisations de fichier pour qu'elles soient lisibles, accessibles en écriture et exécutables par tous les utilisateurs.
    chmod 777 /tmp/files.1st
  6. Enregistrez et exécutez le script.
    ./tmp/files.lst
Tous les fichiers de la base de données de démarrage sont supprimés.

Copier les fichiers de mots de passe

Localisez le fichier Mot de passe sur le système Exadata sur site et copiez le fichier sur l'instance Oracle Database Exadata Cloud Service. Le fichier Mot de passe du système Exadata sur site se trouve sur le disque Oracle Automatic Storage Management (Oracle ASM).

  1. Vérifiez la configuration actuelle de la base de données sur site et affichez la sortie.
    srvctl config database -d db1
    La sortie inclut le fichier Mot de passe.
  2. Modifiez le fichier oratab et ajoutez Oracle ASM à celui-ci.
    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. Utilisez l'utilitaire de ligne de commande Oracle ASM et obtenez le fichier Mot de passe.
    asmcmd pwget --dbuniquename db1
    La sortie inclut le fichier Mot de passe.
  4. Connectez-vous à l'utilitaire de ligne de commande Oracle ASM, puis utilisez la commande pwcopy pour copier le fichier Mot de passe sur le disque local.
    La sortie inclut le fichier de mots de passe.
  5. Utilisez la commande ls -lrt pour confirmer que le fichier est copié sur le disque local.
  6. Utilisez le protocole réseau SCP pour enregistrer le fichier de mot de passe dans l'instance Oracle Database Exadata Cloud Service.
    scp -i Key.ssh -r pwddb1 opc@10.255.195.131:/tmp/pwddb1
  7. Connectez-vous à l'instance Oracle Database Exadata Cloud Service en tant qu'utilisateur opc et changez le mode en 777 pour le fichier de mot de passe.
    chmod 777 /tmp/pwddb1
  8. Connectez-vous à l'instance Oracle Database Exadata Cloud Service en tant qu'utilisateur su -oracle et affichez les répertoires.
    sudo su - oracle
    ls -lrt
    source DB1.env
  9. A l'aide de l'utilitaire de ligne de commande Oracle ASM, copiez le fichier du dossier tmp vers $ORACLE_HOME/dbs où vous souhaitez que le fichier de mots de passe réside.
    ASMCMD> pwcopy --dbuniquename DB1_phx3g7 /tmp/pwddb1 +DATAC1/DB1_phx3g7/PASSWORD/passwd
    Un message d'erreur similaire aux éléments suivants apparaîtra. Ceci est attendu car le mot de passe est déjà inscrit.
    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. A l'aide de l'utilitaire de ligne de commande Oracle ASM, vérifiez que le fichier de mot de passe est copié.
    ls -al