Validar e Configurar o Data Guard Broker

Verifique a conectividade entre o Oracle Database Exadata Cloud Service e o Oracle Exadata Database Machine local por meio do Netcat tnsping e ping.

O Oracle Data Guard broker é uma estrutura de gerenciamento distribuída que automatiza e centraliza a criação, manutenção e monitoramento das configurações do Data Guard.

Você pode executar todas as operações de gerenciamento local ou remotamente por meio das interfaces fáceis de usar do broker: as páginas de gerenciamento do Data Guard no Oracle Enterprise Manager, que é a interface gráfica do usuário (GUI) do broker, e a interface de linha de comando do Data Guard chamada DGMGRL.

Conectar os Sistemas Exadata de Origem e Stand-by

Conecte os sistemas Exadata de origem e stand-by com uma configuração do Oracle Data Guard broker e verifique a conectividade das duas direções usando o NetCat, o TNS Ping Utility e o Ping.

As etapas descritas pressupõem que o banco de dados principal local ainda não faz parte de uma configuração existente do Data Guard Broker.

  1. Determine se o banco de dados principal local já faz parte de uma configuração existente do Data Guard Broker.
    SQL> select decode(count(1),0,'NOCONFIG') from v$DG_BROKER_CONFIG;
    Um valor diferente de 'NOCONFIG’ implica uma configuração de broker existente. Se houver uma configuração do broker existente para o banco de dados local, presume-se que o administrador tenha conhecimento prévio do broker e saiba como adicionar o novo banco de dados stand-by à configuração do broker existente.

    Se não houver uma configuração de broker existente, conclua as etapas a seguir.

  2. Verifique se o listener default é chamado LISTENER.
    $lsnrctl show current_listener | grep Current Listener

    A saída deve ser semelhante à seguinte:

    Current Listener is LISTENER
  3. Verifique a porta do listener executando o seguinte comando na máquina local. O resultado esperado é mostrado.
    [oracle@exa11db01 bin]$ ./lsnrctl status | grep 'Connecting'

    A saída deve ser semelhante à seguinte:

    Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=10.136.74.2)(PORT=1521))
  4. No Oracle Exadata Database Machine local, use o NetCat para estabelecer conexão com o Oracle Database Exadata Cloud Service stand-by para validar a conectividade
    [oracle@exa11db01 bin]$ nc -v 10.255.195.131 1521

    A saída deve ser semelhante à seguinte:

    Ncat: Version 7.50 (https://nmap.org/ncat )
    Ncat: Connected to 10.255.195.131:1521.
  5. No Oracle Exadata Database Machine local, use o TNS Ping Utility for Linux para estabelecer conexão com o Oracle Database Exadata Cloud Service stand-by para validar a conectividade
    [oracle@exa11db01 bin]$ tnsping DB1_phx3g7

    A saída deve ser semelhante à seguinte:

    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. No Oracle Exadata Database Machine local, faça ping do Oracle Database Exadata Cloud Service stand-by para validar a conectividade
    [oracle@exa11db01 bin]$ ping 10.255.195.131

    A saída deve ser semelhante à seguinte:

    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. No Oracle Database Exadata Cloud Service, use o NetCat para estabelecer conexão com o Oracle Exadata Database Machine local para validar a conectividade.
    [oracle@exacs82-vm3sv1 ~]$ nc -v 10.136.74.2

    A saída deve ser semelhante à seguinte:

    -bash: nc: command not found
  8. No Oracle Database Exadata Cloud Service, use o TNS Ping Utility for Linux para estabelecer conexão com o Oracle Exadata Database Machine local para validar a conectividade
    [oracle@exacs82-vm3sv1 ~]$ tnsping db1

    A saída deve ser semelhante à seguinte:

    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. No Oracle Database Exadata Cloud Service, faça ping do Oracle Exadata Database Machine local para validar a conectividade
    [oracle@exacs82-vm3sv1 ~]$ ping 10.136.74.2

    A saída deve ser semelhante à seguinte:

    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

Remover Arquivos de Dados da Instância Stand-by do Exadata

Execute um script para remover os arquivos de dados do banco de dados stand-by.

  1. Efetue log-in na instância do Oracle Database Exadata Cloud Service.
  2. Crie um script para remover os arquivos de dados.
    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. Faça shutdown do banco de dados na instância do Oracle Database Exadata Cloud Service.
    srvctl stop database -d DB1_phx3g7
  4. Remova os arquivos de dados editando o arquivo files.1st e removendo as seguintes linhas:
    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. Altere as permissões de arquivo para serem legíveis, graváveis e executáveis por todos os usuários.
    chmod 777 /tmp/files.1st
  6. Salve e execute o script.
    ./tmp/files.lst
Todos os arquivos do banco de dados inicial são removidos.

Copiar os Arquivos de Senha

Localize o arquivo Senha no sistema Exadata local e copie-o para a instância do Oracle Database Exadata Cloud Service. O arquivo Senha no sistema Exadata local está localizado no disco Oracle Automatic Storage Management (Oracle ASM).

  1. Verifique a configuração atual do banco de dados local e exiba a saída.
    srvctl config database -d db1
    A saída inclui o arquivo de Senha.
  2. Edite o arquivo oratab e adicione o Oracle ASM a ele.
    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. Use o utilitário de linha de comando do Oracle ASM e obtenha o arquivo de Senha.
    asmcmd pwget --dbuniquename db1
    A saída inclui o arquivo de Senha.
  4. Efetue log-in no utilitário de linha de comando do Oracle ASM e, em seguida, use o comando pwcopy para copiar o arquivo de Senha para o disco local.
    A saída inclui o arquivo de Senha.
  5. Use o comando ls -lrt para confirmar se o arquivo foi copiado para o disco local.
  6. Use o protocolo de rede SCP para salvar o arquivo de senha na instância do Oracle Database Exadata Cloud Service.
    scp -i Key.ssh -r pwddb1 opc@10.255.195.131:/tmp/pwddb1
  7. Efetue log-in na instância do Oracle Database Exadata Cloud Service como usuário opc e altere o modo para 777 para o arquivo de senha.
    chmod 777 /tmp/pwddb1
  8. Efetue log-in na instância do Oracle Database Exadata Cloud Service como usuário su -oracle e exiba os diretórios.
    sudo su - oracle
    ls -lrt
    source DB1.env
  9. Usando o utilitário de linha de comando do Oracle ASM, copie o arquivo da pasta tmp para $ORACLE_HOME/dbs, onde você deseja que o arquivo de senha resida.
    ASMCMD> pwcopy --dbuniquename DB1_phx3g7 /tmp/pwddb1 +DATAC1/DB1_phx3g7/PASSWORD/passwd
    Será exibida uma mensagem de erro semelhante à seguinte. Isso é esperado porque a senha já 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. Usando o utilitário de linha de comando do Oracle ASM, verifique se o arquivo de senha foi copiado.
    ls -al