Validar y configurar Data Guard Broker

Verifique la conectividad entre Oracle Database Exadata Cloud Service y Oracle Exadata Database Machine local a través de Netcat tnsping y ping.

Oracle Data Guard broker es un marco de gestión distribuido que automatiza y centraliza la creación, mantenimiento y supervisión de las configuraciones de Data Guard.

Puede realizar todas las operaciones de gestión de forma local o remota a través de las interfaces fáciles de usar del broker: las páginas de gestión de Data Guard en Oracle Enterprise Manager, que es la interfaz gráfica de usuario (GUI) del broker, y la interfaz de línea de comandos de Data Guard denominada DGMGRL.

Conectar los sistemas Exadata de origen y en espera

Conecte los sistemas Exadata de origen y en espera con una configuración de Oracle Data Guard Broker y verifique la conectividad ambas direcciones mediante NetCat, TNS Ping Utility y Ping.

Los pasos descritos suponen que la base de datos primaria local no forma parte ya de una configuración de Data Guard Broker existente.

  1. Determine si la base de datos primaria local ya forma parte de una configuración de Data Guard Broker existente.
    SQL> select decode(count(1),0,'NOCONFIG') from v$DG_BROKER_CONFIG;
    Un valor distinto de 'NOCONFIG’ implica una configuración de broker existente. Si existe una configuración de broker existente para la base de datos local, se asume que el administrador tiene conocimiento previo del broker y sabe cómo agregar la nueva base de datos en espera a la configuración de broker existente.

    Si no hay una configuración de broker existente, realice los siguientes pasos.

  2. Verifique que el listener por defecto se denomina LISTENER.
    $lsnrctl show current_listener | grep Current Listener

    La salida debe ser similar a la siguiente:

    Current Listener is LISTENER
  3. Verifique el puerto del listener ejecutando el siguiente comando desde la máquina local. Se muestra el resultado esperado.
    [oracle@exa11db01 bin]$ ./lsnrctl status | grep 'Connecting'

    La salida debe ser similar a la siguiente:

    Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=10.136.74.2)(PORT=1521))
  4. En Oracle Exadata Database Machine local, utilice NetCat para conectarse a Oracle Database Exadata Cloud Service en espera para validar la conectividad
    [oracle@exa11db01 bin]$ nc -v 10.255.195.131 1521

    La salida debe ser similar a la siguiente:

    Ncat: Version 7.50 (https://nmap.org/ncat )
    Ncat: Connected to 10.255.195.131:1521.
  5. En Oracle Exadata Database Machine local, utilice la utilidad TNS Ping para Linux para conectarse a Oracle Database Exadata Cloud Service en espera para validar la conectividad
    [oracle@exa11db01 bin]$ tnsping DB1_phx3g7

    La salida debe ser similar a la siguiente:

    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. En Oracle Exadata Database Machine local, ping the standby Oracle Database Exadata Cloud Service para validar la conectividad
    [oracle@exa11db01 bin]$ ping 10.255.195.131

    La salida debe ser similar a la siguiente:

    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. En Oracle Database Exadata Cloud Service, utilice NetCat para conectarse a Oracle Exadata Database Machine local para validar la conectividad.
    [oracle@exacs82-vm3sv1 ~]$ nc -v 10.136.74.2

    La salida debe ser similar a la siguiente:

    -bash: nc: command not found
  8. En Oracle Database Exadata Cloud Service, utilice la utilidad TNS Ping para Linux para conectarse a Oracle Exadata Database Machine local para validar la conectividad
    [oracle@exacs82-vm3sv1 ~]$ tnsping db1

    La salida debe ser similar a la siguiente:

    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. En Oracle Database Exadata Cloud Service, haga ping en Oracle Exadata Database Machine local para validar la conectividad
    [oracle@exacs82-vm3sv1 ~]$ ping 10.136.74.2

    La salida debe ser similar a la siguiente:

    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

Eliminar archivos de datos de la instancia de Exadata en espera

Ejecute un script para eliminar los archivos de datos de la base de datos en espera.

  1. Conéctese a la instancia de Oracle Database Exadata Cloud Service.
  2. Cree un script para eliminar los archivos de datos.
    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. Cierre la base de datos en la instancia de Oracle Database Exadata Cloud Service.
    srvctl stop database -d DB1_phx3g7
  4. Elimine los archivos de datos editando el archivo files.1st y eliminando las siguientes líneas:
    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. Cambie los permisos de archivo para que todos los usuarios puedan leer, escribir y ejecutarlos.
    chmod 777 /tmp/files.1st
  6. Guarde y ejecute el script.
    ./tmp/files.lst
Se eliminan todos los archivos de la base de datos inicial.

Copiar Archivos de Contraseña

Localice el archivo Password en el sistema Exadata local y copie el archivo en la instancia de Oracle Database Exadata Cloud Service. El archivo Password del sistema Exadata local se encuentra en el disco Oracle Automatic Storage Management (Oracle ASM).

  1. Compruebe la configuración actual de la base de datos local y muestre la salida.
    srvctl config database -d db1
    La salida incluye el archivo Password.
  2. Edite el archivo oratab y agregue Oracle ASM a él.
    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. Utilice la utilidad de línea de comandos de Oracle ASM y obtenga el archivo Password.
    asmcmd pwget --dbuniquename db1
    La salida incluye el archivo Password.
  4. Inicie sesión en la utilidad de línea de comandos de Oracle ASM y, a continuación, utilice el comando pwcopy para copiar el archivo Password en el disco local.
    La salida incluye el archivo Password.
  5. Utilice el comando ls- lrt para confirmar que el archivo se copia en el disco local.
  6. Utilice el protocolo de red SCP para guardar el archivo de contraseñas en la instancia de Oracle Database Exadata Cloud Service.
    scp -i Key.ssh -r pwddb1 opc@10.255.195.131:/tmp/pwddb1
  7. Conéctese a la instancia de Oracle Database Exadata Cloud Service como usuario opc y cambie el modo a 777 para el archivo de contraseñas.
    chmod 777 /tmp/pwddb1
  8. Conéctese a la instancia de Oracle Database Exadata Cloud Service como usuario su- oracle y muestre los directorios.
    sudo su - oracle
    ls -lrt
    source DB1.env
  9. Con la utilidad de línea de comandos de Oracle ASM, copie el archivo de la carpeta tmp en $ORACLE_HOME/dbs donde desea que resida el archivo de contraseñas.
    ASMCMD> pwcopy --dbuniquename DB1_phx3g7 /tmp/pwddb1 +DATAC1/DB1_phx3g7/PASSWORD/passwd
    Aparecerá un mensaje de error similar al siguiente. Esto se espera porque la contraseña ya está registrada.
    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. Mediante la utilidad de línea de comandos de Oracle ASM, verifique que el archivo de contraseñas está copiado.
    ls -al