Copiar os Arquivos de Senha e Wallet para a Nuvem

Copie os arquivos de senha e wallet do banco de dados principal para o stand-by no Oracle Cloud Infrastructure.

Obter o Nome do Banco de Dados e Verificar a Wallet

Obtenha o nome exclusivo do banco de dados e o SID (Oracle System ID) para a instância do Oracle Cloud Infrastructure (OCI) e verifique a localização da wallet.

Os nomes do banco de dados devem ser os mesmos para o banco de dados local e o sistema do banco de dados no OCI.
  1. No OCI, obtenha o Nome do Banco de Dados Exclusivo e o SID.
    O ORACLE_UNQNAME é current db_unique_name para o sistema de banco de dados OCI. O ORACLE_SID é ONPREMSID. Nesse exemplo, o SID do Oracle é ORCLCDB.
    env | grep ORA
  2. Verifique a localização do arquivo Wallet local executando um comando SQL.
    select * from V$ENCRYPTION_WALLET;
  3. Observe a localização da wallet para o banco de dados stand-by no OCI. Você precisará disso para um passo posterior.
     /opt/oracle/dcs/commonstore/wallets/tde/ORACLE_UNQNAME/

    Por exemplo, a wallet no OCI:

    $ ls -lrt
    total 20
    -rw------- 1 oracle oinstall 2555 Aug 27 06:32 ewallet_2020082706324337.p12
    -rw------- 1 oracle oinstall 5467 Aug 27 06:32 ewallet.p12
    -rw------- 1 oracle oinstall 5512 Aug 27 06:32 cwallet.sso

    Por exemplo, a localização da wallet on-premises:

    bash-4.2$ pwd
    /opt/oracle/admin/ORCLCDB/xdb_wallet
    bash-4.2$ ls -lrt
    total 8
    -rw-------. 1 oracle oinstall 3835 Aug 27 02:23 ewallet.p12
    -rw-------. 1 oracle oinstall 3880 Aug 27 02:23 cwallet.sso

Remover os Arquivos de Dados da Instância do OCI

Remova os arquivos de dados da instância do OCI (Oracle Cloud Infrastructure).

  1. Na instância do OCI, crie um script para remover os arquivos de dados.
    Este é um exemplo de script:
    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
  2. Como sysdba, use o comando shutdown immediate para fechar, desmontar e fazer shutdown do banco de dados stand-by no OCI.
    SQL> shutdown immediate
  3. No diretório /tmp, abra o arquivo files.lst e remova linhas a. e b. para remover os arquivos de dados.
    a.   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;
    b.   SQL> spool off
    c.   If you don’t have ASM disks, then you will have to remove ALL the asmcmd command from the files.lst else the database files won't be deleted.
    d.   Chmod 777 /tmp/files.lst
    e.   Save and Execute the Script. $ ./tmp/files.lst
    f.   All files for the starter database have now been removed.

Copiar a Senha para o Banco de Dados Stand-by

Copie o arquivo de senha do banco de dados local para o host do banco de dados stand-by usando os endereços IP para abrir um túnel SSH entre o host bastião e o host do banco de dados de destino.

  1. Atualize a instância do banco de dados stand-by do host local por meio do host bastião e copie o arquivo de senha.
    O arquivo de senha está localizado no seguinte diretório: $ORACLE_HOME/dbs/orapwORACLE_SID.
    No exemplo a seguir, substitua id_rsa pelas chaves SSH e use o endereço IP do host bastion e do nó do banco de dados OCI (Oracle Cloud Infrastructure).
    scp -i ~/Keys/id_rsa -o ProxyCommand="ssh -i ~/Keys/id_rsa -W %h:%p opc@IP_address_of_your_bastion_host" orapwORACLE_SID opc@IP address of your OCI DB Node:~/tmp
  2. Salve o arquivo copiado na instância do banco de dados stand-by no OCI.
    sudo cp orapwORACLE_SID /u01/app/oracle/product/19.0.0/dbhome_1/dbs/
  3. Execute o comando md5sum no arquivo local e OCI orapwORACLE_SID e verifique se eles têm a mesma impressão digital.
    md5sum /u01/app/oracle/product/19.0.0/dbhome_1/dbs/orapwORACLE_SID
    

Copiar os Arquivos da Wallet para o Banco de Dados Stand-by

Copie a wallet de senha para o diretório /home/oracle/ no host do banco de dados stand-by no OCI (Oracle Cloud Infrastructure) usando os endereços IP para abrir um túnel SSH entre o host bastião e o host do banco de dados stand-by.

  1. Localize a wallet no host local e torne os arquivos da wallet legíveis, graváveis e executáveis por todos.
    cd /opt/oracle/admin/$ORCLSID/wallet
    Neste exemplo, a wallet contém dois arquivos: ewallet.p12 e cwallet.sso. Torne ambos os arquivos legíveis, graváveis e executáveis por todos usando o comando chmod 777.
  2. No Host do BD OCI, verifique se o arquivo $ORACLE_HOME/network/admin/sqlnet.ora contém o parâmetro ENCRYPTION_WALLET_LOCATION em sqlnet.ora.
    ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE) (METHOD_DATA=(DIRECTORY=/opt/oracle/dcs/commonstore/wallets/tde/$ORACLE_UNQNAME)))
  3. Copie o arquivo wallet para o Host do BD OCI na pasta /tmp usando o comando túnel.
    ~/Keys/id_rsa : Replace it with your Ssh keys
    192.0.2.254: IP address of your bastion host.
    10.10.30.2: IP address of your OCI DB Node.
    
    scp -i ~/Keys/id_rsa -o ProxyCommand="ssh -i ~/Keys/id_rsa -W %h:%p opc@192.0.2.254" ewallet.p12 opc@10.10.30.2:/tmp/
    
    scp -i ~/Keys/id_rsa -o ProxyCommand="ssh -i ~/Keys/id_rsa -W %h:%p opc@192.0.2.254" cwallet.sso opc@10.10.30.2:/tmp/
  4. Remova os arquivos de wallet existentes do Host do BD OCI no diretório /opt/oracle/dcs/commonstore/wallets/tde/$ORACLE_UNQNAME.
  5. Como o usuário do OPC (não o usuário do Oracle) no host do OCI, torne os arquivos da wallet legíveis, graváveis e executáveis por todos.
    chmod 777 /tmp/ewallet.p12
    chmod 777 /tmp/cwallet.sso
  6. Copie os arquivos da wallet da pasta /tmp para /opt/oracle/dcs/commonstore/wallets/tde/$ORACLE_UNQNAME.