Convalidare e configurare Data Guard Broker

Verificare la connettività tra Oracle Database Exadata Cloud Service e Oracle Exadata Database Machine in locale tramite Netcat tnsping e ping.

Il broker Oracle Data Guard è una struttura di gestione distribuita che automatizza e centralizza la creazione, la manutenzione e il monitoraggio delle configurazioni Data Guard.

È possibile eseguire tutte le operazioni di gestione a livello locale o remoto tramite le interfacce facili da usare del broker: le pagine Gestione Data Guard in Oracle Enterprise Manager, ovvero l'interfaccia utente grafica (GUI) del broker e l'interfaccia della riga di comando Data Guard denominata DGMGRL.

Connettere i sistemi Exadata di origine e in standby

Collegare i sistemi Exadata di origine e in standby con una configurazione del broker Oracle Data Guard e verificare la connettività in entrambe le direzioni utilizzando NetCat, TNS Ping Utility e Ping.

I passi descritti presuppongono che il database primario in locale non faccia già parte di una configurazione broker Data Guard esistente.

  1. Determinare se il database primario in locale fa già parte di una configurazione broker Data Guard esistente.
    SQL> select decode(count(1),0,'NOCONFIG') from v$DG_BROKER_CONFIG;
    Un valore diverso da'NOCONFIG'implica una configurazione broker esistente. Se esiste una configurazione broker esistente per il database in locale, si presume che l'amministratore abbia una conoscenza preliminare del broker e sappia aggiungere il nuovo database in standby alla configurazione broker esistente.

    Se non esiste una configurazione broker esistente, completare i passi riportati di seguito.

  2. Verificare che il listener predefinito sia denominato LISTENER.
    $lsnrctl show current_listener | grep Current Listener

    L'output dovrebbe essere simile a quanto segue:

    Current Listener is LISTENER
  3. Verificare la porta del listener eseguendo il comando seguente dal computer in locale. Viene visualizzato il risultato previsto.
    [oracle@exa11db01 bin]$ ./lsnrctl status | grep 'Connecting'

    L'output dovrebbe essere simile a quanto segue:

    Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=10.136.74.2)(PORT=1521))
  4. In Oracle Exadata Database Machine in locale, utilizzare NetCat per connettersi a Oracle Database Exadata Cloud Service in standby per convalidare la connettività
    [oracle@exa11db01 bin]$ nc -v 10.255.195.131 1521

    L'output dovrebbe essere simile a quanto segue:

    Ncat: Version 7.50 (https://nmap.org/ncat )
    Ncat: Connected to 10.255.195.131:1521.
  5. In Oracle Exadata Database Machine in locale, utilizzare la utility di ping TNS per Linux per connettersi a Oracle Database Exadata Cloud Service in standby per convalidare la connettività
    [oracle@exa11db01 bin]$ tnsping DB1_phx3g7

    L'output dovrebbe essere simile a quanto segue:

    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 Oracle Exadata Database Machine in locale, ping di Oracle Database Exadata Cloud Service in standby per convalidare la connettività
    [oracle@exa11db01 bin]$ ping 10.255.195.131

    L'output dovrebbe essere simile a quanto segue:

    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. In Oracle Database Exadata Cloud Service, utilizzare NetCat per connettersi a Oracle Exadata Database Machine in locale per convalidare la connettività.
    [oracle@exacs82-vm3sv1 ~]$ nc -v 10.136.74.2

    L'output dovrebbe essere simile a quanto segue:

    -bash: nc: command not found
  8. In Oracle Database Exadata Cloud Service, utilizzare la utility di ping TNS per Linux per connettersi a Oracle Exadata Database Machine in locale per convalidare la connettività
    [oracle@exacs82-vm3sv1 ~]$ tnsping db1

    L'output dovrebbe essere simile a quanto segue:

    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 di Oracle Exadata Database Machine in locale per convalidare la connettività
    [oracle@exacs82-vm3sv1 ~]$ ping 10.136.74.2

    L'output dovrebbe essere simile a quanto segue:

    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

Rimuovi file di dati dall'istanza Exadata in standby

Eseguire uno script per rimuovere i file di dati dal database in standby.

  1. Eseguire il login all'istanza di Oracle Database Exadata Cloud Service.
  2. Creare uno script per rimuovere i file di dati.
    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. Chiudere il database sull'istanza di Oracle Database Exadata Cloud Service.
    srvctl stop database -d DB1_phx3g7
  4. Rimuovere i file di dati modificando il file files.1st e rimuovendo le righe riportate di seguito.
    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. Modificare le autorizzazioni del file per essere leggibili, scrivibili ed eseguibili da tutti gli utenti.
    chmod 777 /tmp/files.1st
  6. Salvare ed eseguire lo script.
    ./tmp/files.lst
Tutti i file per il database iniziale vengono rimossi.

Copia password file

Individuare il password file nel sistema Exadata in locale e copiare il file nell'istanza di Oracle Database Exadata Cloud Service. Il password file nel sistema Exadata in locale si trova sul disco Oracle Automatic Storage Management (Oracle ASM).

  1. Controllare la configurazione corrente del database in locale e visualizzare l'output.
    srvctl config database -d db1
    L'output include il password file.
  2. Modificare il file oratab e aggiungervi Oracle ASM.
    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. Utilizzare la utility della riga di comando Oracle ASM e recuperare il password file.
    asmcmd pwget --dbuniquename db1
    L'output include il password file.
  4. Eseguire il login alla utility della riga di comando Oracle ASM, quindi utilizzare il comando pwcopy per copiare il password file nel disco locale.
    L'output include il password file.
  5. Utilizzare il comando ls- lrt per confermare che il file viene copiato nel disco locale.
  6. Utilizzare il protocollo di rete SCP per salvare il password file nell'istanza di Oracle Database Exadata Cloud Service.
    scp -i Key.ssh -r pwddb1 opc@10.255.195.131:/tmp/pwddb1
  7. Eseguire il login all'istanza di Oracle Database Exadata Cloud Service come utente opc e modificare la modalità su 777 per il password file.
    chmod 777 /tmp/pwddb1
  8. Eseguire il login all'istanza di Oracle Database Exadata Cloud Service come utente su- oracle e visualizzare le directory.
    sudo su - oracle
    ls -lrt
    source DB1.env
  9. Utilizzando la utility della riga di comando Oracle ASM, copiare il file dalla cartella tmp in $ORACLE_HOME/dbs in cui si desidera risiedere il password file.
    ASMCMD> pwcopy --dbuniquename DB1_phx3g7 /tmp/pwddb1 +DATAC1/DB1_phx3g7/PASSWORD/passwd
    Verrà visualizzato un messaggio di errore simile al seguente. Ciò è previsto perché la password è già registrata.
    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. Utilizzando la utility della riga di comando Oracle ASM, verificare che il password file sia copiato.
    ls -al