Copiar los archivos de contraseñas y carteras en la nube

Copie los archivos de contraseña y cartera de la base de datos primaria en espera en Oracle Cloud Infrastructure.

Obtener el nombre de la base de datos y verificar la cartera

Obtenga el nombre de la base de datos única y el ID del sistema Oracle (SID) para la instancia de Oracle Cloud Infrastructure (OCI) y verifique la ubicación de la cartera.

Los nombres de la base de datos deben ser los mismos para la base de datos local y el sistema de base de datos en OCI.
  1. En OCI, obtenga el nombre único de la base de datos y el SID.
    ORACLE_UNQNAME es current db_unique_name para el sistema de base de datos OCI. ORACLE_SID es ONPREMSID. En este ejemplo, el SID de Oracle es ORCLCDB.
    env | grep ORA
  2. Compruebe la ubicación del archivo de cartera local ejecutando un comando SQL.
    select * from V$ENCRYPTION_WALLET;
  3. Tenga en cuenta la ubicación de cartera de la base de datos en espera en OCI. Necesitarás esto para un paso más adelante.
     /opt/oracle/dcs/commonstore/wallets/tde/ORACLE_UNQNAME/

    Por ejemplo, la cartera de 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 ejemplo, la ubicación de la cartera local:

    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

Eliminar los archivos de datos de la instancia de OCI

Elimine los archivos de datos de la instancia de Oracle Cloud Infrastructure (OCI).

  1. En la instancia de OCI, cree un script para eliminar los archivos de datos.
    A continuación, se muestra un script de ejemplo:
    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, utilice el comando shutdown immediate para cerrar, desmontar y cerrar la base de datos en espera en OCI.
    SQL> shutdown immediate
  3. En el directorio/tmp, abra los archivos.lst archivo y elimine las líneas a. y b. para eliminar los archivos de datos.
    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 la contraseña en la base de datos en espera

Copie el archivo de contraseñas de la base de datos local en el host de la base de datos en espera mediante las direcciones IP para abrir un túnel SSH entre el host bastión y el host de la base de datos destino.

  1. Túnel en la instancia de la base de datos en espera desde el host local a través del host bastión y copie el archivo de contraseñas.
    El archivo de contraseñas se encuentra en el siguiente directorio: $ORACLE_HOME/dbs/orapwORACLE_SID.
    En el siguiente ejemplo, sustituya id_rsa por las claves SSH y utilice la dirección IP del host bastión y el nodo de base de datos Oracle Cloud Infrastructure (OCI).
    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. Guarde el archivo copiado en la instancia de base de datos en espera en OCI.
    sudo cp orapwORACLE_SID /u01/app/oracle/product/19.0.0/dbhome_1/dbs/
  3. Ejecute el comando md5sum en el archivo local y OCI orapwORACLE_SID y verifique que tienen la misma huella dactilar.
    md5sum /u01/app/oracle/product/19.0.0/dbhome_1/dbs/orapwORACLE_SID
    

Copiar los archivos de cartera en la base de datos en espera

Copie la cartera de contraseñas en el directorio /home/oracle/ del host de base de datos en espera en Oracle Cloud Infrastructure (OCI) mediante las direcciones IP para abrir un túnel SSH entre el host bastión y el host de base de datos en espera.

  1. Localice la cartera en el host local y haga que todos puedan leer, escribir y ejecutar los archivos de cartera.
    cd /opt/oracle/admin/$ORCLSID/wallet
    En este ejemplo, la cartera contiene dos archivos: ewallet.p12 y cwallet.sso. Haga que todos puedan leer, escribir y ejecutar ambos archivos mediante el comando chmod 777.
  2. En el host de base de datos de OCI, verifique que el archivo $ORACLE_HOME/network/admin/sqlnet.ora contiene el parámetro ENCRYPTION_WALLET_LOCATION en sqlnet.ora.
    ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE) (METHOD_DATA=(DIRECTORY=/opt/oracle/dcs/commonstore/wallets/tde/$ORACLE_UNQNAME)))
  3. Copie el archivo de cartera en el host de base de datos de OCI en la carpeta /tmp mediante el 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. Elimine los archivos de cartera existentes del host de base de datos OCI en el directorio /opt/oracle/dcs/commonstore/wallets/tde/$ORACLE_UNQNAME.
  5. Como usuario de OPC (no usuario de Oracle) en el host de OCI, haga que todos puedan leer, escribir y ejecutar los archivos de cartera.
    chmod 777 /tmp/ewallet.p12
    chmod 777 /tmp/cwallet.sso
  6. Copie los archivos de cartera de la carpeta /tmp en /opt/oracle/dcs/commonstore/wallets/tde/$ORACLE_UNQNAME.