Revisado por Juan Pablo Guizado
No artigo anterior vimos como criar um servidor de banco de dados na Oracle Cloud utilizando IAAS. Nesste artigo veremos como mover o banco de dados Oracle para Cloud.
Baixar o arquivo opc_installer.zip no link abaixo:
https://www.oracle.com/technetwork/database/availability/oracle-cloud-backup-2162729.html

Transferir o arquivo para o servidor de banco de dados na Cloud e descompactar:


Antes de configurar, será necessário gerar as chaves conforme a documentação abaixo:
https://docs.cloud.oracle.com/iaas/Content/API/Concepts/apisigningkey.htm

Comandos:
$ mkdir ~/.oci
$ openssl genrsa -out ~/.oci/oci_api_key.pem 2048
$ chmod go-rwx ~/.oci/oci_api_key.pem
$ openssl rsa -pubout -in ~/.oci/oci_api_key.pem -out ~/.oci/oci_api_key_public.pem
O conteúdo da chave pública deve ser copiado para as “API Keys”:



Com isso será gerado o “Fingerprint”:

O “Tenancy OCID” pode ser encontrado em:

O “User OCID” pode ser encontrado em “User Settings”:

Para criar o Bucket deve-se abrir o menu e ir em “Object Storage”, “Object Storage”:

Basta informar o nome do “Bucket” e escolher o tipo “standard”:

“Bucket” criado:

java -jar oci_install.jar -host https://objectstorage.us-ashburn-1.oraclecloud.com \
-pvtKeyFile /home/oracle/.oci/oci_api_key.pem \
-pubFingerPrint a3:06:d3:23:aa:63:c4:13:2a:ff:5e:b7:0b:b9:d7:7e \
-uOCID ocid1.user.oc1..aaaaaaaa6gthvopq5x6cycotlnwqdoyczijzchkci2t2jg2j5pzuvkt6v7da \
-tOCID ocid1.tenancy.oc1..aaaaaaaankelxhovriwq476ckpvqmocxekebe43x3ahfbf7ti2zzyfs2kqsq \
-walletDir /u01/app/oracle/bkp_cloud_module/oci_wallet \
-libDir /u01/app/oracle/bkp_cloud_module/lib \
-bucket db_backups \
-configFile /u01/app/oracle/bkp_cloud_module/config/opc2CDB2.ora


Para este artigo, estou utilizando a VM “Oracle Database 18c (18.3.0) Upgrade and Migration hands-on Lab” que pode ser encontrada em:
https://www.oracle.com/technetwork/community/developer-vm/vts-hol-2415742.htmlTransferir o arquivo opc_installer.zip (baixado anteriormente) para o servidor de banco de dados de origem e descompactar:

Nessa VM já estava instalado o Java OpenJDK versão 1.7.
Com isso mantive essa versão e não vamos utilizar o JDK da Oracle no banco de dados de origem.


Copiar o arquivo oci_api_key.pem do servidor de banco de dados do Cloud.
java -jar oci_install.jar -host https://objectstorage.us-ashburn-1.oraclecloud.com \
-pvtKeyFile /home/oracle/.oci/oci_api_key.pem \
-pubFingerPrint a3:06:d3:23:aa:63:c4:13:2a:ff:5e:b7:0b:b9:d7:7e \
-uOCID ocid1.user.oc1..aaaaaaaa6gthvopq5x6cycotlnwqdoyczijzchkci2t2jg2j5pzuvkt6v7da \
-tOCID ocid1.tenancy.oc1..aaaaaaaankelxhovriwq476ckpvqmocxekebe43x3ahfbf7ti2zzyfs2kqsq \
-walletDir /u01/app/oracle/bkp_cloud_module/oci_wallet \
-libDir /u01/app/oracle/bkp_cloud_module/lib \
-bucket db_backups \
-configFile /u01/app/oracle/bkp_cloud_module/config/opc2CDB2.ora



CONFIGURE CONTROLFILE AUTOBACKUP ON;

CONFIGURE CHANNEL DEVICE TYPE sbt
PARMS='SBT_LIBRARY=/u01/app/oracle/bkp_cloud_module/lib/libopc.so,
SBT_PARMS=(OPC_PFILE=/u01/app/oracle/bkp_cloud_module/config/opc2CDB2.ora)';


Existem 3 formas de proteger o backup, são elas:
Nesse artigo iremos utilizar a opção “Backing Up to Oracle Database Backup Cloud Service Using Password Encryption”.
Efetuando o backup:


Após o backup, pode-se verificar os arquivos criados no “Bucket”:

Antes do backup, criei uma tabela em um PDB do banco de origem para demonstrar que ela estará na Cloud após restaurar o banco de dados:

Comandos utilizados:
rman target /
STARTUP NOMOUNT;
SET DECRYPTION IDENTIFIED BY 'my_strong_passwd';
SET DBID=680230459;

Fazendo restore do arquivo de parâmetros:
RUN {
ALLOCATE CHANNEL t1 DEVICE TYPE sbt
PARMS='SBT_LIBRARY=/u01/app/oracle/bkp_cloud_module/lib/libopc.so,
SBT_PARMS=(OPC_PFILE=/u01/app/oracle/bkp_cloud_module/config/opc2CDB2.ora)';
RESTORE SPFILE TO PFILE '/u01/app/oracle/product/18.0.0/dbhome_1/dbs/initCDB2.ora'
FROM AUTOBACKUP;
}

Fazendo restore do “control file”:
SHUTDOWN IMMEDIATE;
STARTUP NOMOUNT;
RUN {
ALLOCATE CHANNEL t1 DEVICE TYPE sbt
PARMS='SBT_LIBRARY=/u01/app/oracle/bkp_cloud_module/lib/libopc.so,
SBT_PARMS=(OPC_PFILE=/u01/app/oracle/bkp_cloud_module/config/opc2CDB2.ora)';
RESTORE CONTROLFILE FROM AUTOBACKUP;
}
ALTER DATABASE MOUNT;



Fazendo o restore e recover do banco de dados:
RESTORE DATABASE;
RESTORE DATABASE PREVIEW DEVICE TYPE SBT;
RECOVER DATABASE UNTIL SCN scn;
ALTER DATABASE OPEN RESETLOGS;
Restaurando o banco de dados na Cloud:


Verificando o SCN no banco “on-premises”:


Fazendo o recover:

Conferindo se a tabela criada no banco de origem existe na Cloud:

Alex Zaballa, formado em Análise de Sistemas, é especialista em Banco de Dados Oracle com sólidos conhecimentos em Servidores de Aplicação e Sistemas Operacionais; trabalha com Oracle há 19 anos, é Oracle ACE Director, certificado OCM Database 12c/MAA/11G/Cloud e conta com mais de 300 outras certificações em produtos da Oracle. Alex também é membro do Gro
Este artigo foi revisto pela equipe de produtos Oracle e está em conformidade com as normas e práticas para o uso de produtos Oracle.