Como criar um Oracle RAC em cloud e realizar backup's utilizando o Oracle Database Backup Cloud Service.

Por José Mario Barduchi Oracle Associate
Publicado em Janeiro 2018


Introdução

Continuando a explorar o universo do Oracle Cloud, vamos realizar a configuração do Oracle Database Backup Cloud Service em um ambiente Oracle RAC construído no Oracle Database Cloud Service (ODBCS).

O Oracle DBCS utiliza o RMAN para o envio de backups diretamente ao Oracle Backup Cloud Service. O backup é gerado utilizando uma canal, similar ao que configuramos em ambientes On-Premise para acesso à um TAPE. Tudo muito rápido e fácil de ser configurado e utilizado.


Mais detalhes podem ser encontrados em:

https://docs.oracle.com/en/cloud/paas/db-backup-cloud/index.html

https://cloud.oracle.com/database_backup

http://www.oracle.com/technetwork/pt/articles/cloudcomp/database-backup-cloud-service-3044095-ptb.html


Antes de iniciar, vamos criar um usuário específico para nossa operação. A conta da nuvem da Oracle possui um Master User. O ideal é criar um usuário para utilização. Como não é o foco desse artigo, vou apenas citar o caminho para realizar essa tarefa.

Para a criação do usuário devemos acessar o caminho abaixo e preencher os dados:

Ir até o Dashboard => Clicar em User => Clicar em Add

First Name                     dba
Last Name                     cloud
Email                              zeguedel@gmail.com
Use email as user name   Uncheck
User Name                     dba.cloud
Manager Email                mario.barduchi@gmail.com

Liberar as roles desejadas. Nesse exemplo, como seria um usuário admin, todas as roles foram liberadas.


Feito isso, vamos partir para o foco desse artigo. Inicialmente vamos criar a estrutura do RAC em cloud.

É um trabalho simples, ilustrado abaixo:

  1. Na tela do dashboard, clicar em "Create Instance".
  2. Será apresentado um Pop-Up como opções de serviços. Basta clicar em “Create” no tipo de serviço “Database”.
  3. A tela do serviço DBCS aparecerá. Clique em “Services” para acessar os serviços de banco de dados.
  4. Clicar em “Create Service”.
  5. Aparecerá a primeira tela de configuração do serviço.  

    Preencher os campos adequadamente. Neste exemplo utilizamos os seguintes dados:
    Service Name:      racdb
    Description:       Test RAC
    Region:            uscom-central-1
    Service Level:     Oracle Database Cloud Service
    Metering Frequency:     Monthly
    Software Release:  Oracle Database 12c Release 2
    Software Edition:  Enterprise Edition - Extreme Performance
    Database Type:     Database Clustering with RAC

    Importante: A opção “Database Clustering with RAC” só está disponível na edição “Enterprise Edition - Extreme Performance”.

    Para prosseguir, clicar em Next.


        A próxima etapa de configuração do DBCS aparecerá.

    Nesta tela configuramos o SID, espaços no Storage, senhas de admin, etc.

    Database Configuration
    DB Name (SID):              ORCL
    PDB Name:                   PDB1
    Administration Password:         X3m49263#
    Usable Database Storage (GB):    25
    Total Data File Storage (GB):    88.5
    Compute Shape:              OC4 - 2.0 OCPU, 15.0 GB RAM

    Importante: Deixamos o destino do backup na seção “Backup and Recovery Configuration” como None. Isto não configura o Backup automático do banco deste serviço DBCS. Iremos configurar o backup deste serviço posteriormente.


    Será necessário definir uma chave pública SSH na criação do serviço. Esta chave é obrigatória para acessar o serviço via SSH.
    Veja o roteiro de criação da chave SSH no artigo Criação e configuração de ambiente Oracle Cloud Service: Database Cloud Service – Parte 1.

      

    Somente como curiosidade, se clicarmos em “Selection Summary” serão apresentadas algumas informações que fornecemos na tela anterior. Como no exemplo abaixo.

    Após preencher todos os dados, clicar em Next.
    A próxima etapa de criação do DBCS aparecerá. Esta é uma tela de confirmação.

     

    Verifique todas as informações fornecidas, se estiver tudo ok, basta clicar em “Create”.



  6. Ao voltarmos para a tela de Serviços de banco de dados, a seção Services apresenta a lista de todos os serviços configurados. Você verá que o status do serviço que configuramos é “Creating service”. O processo de criação leva entre 01:30 à 02:00 horas para ser concluído. (Pelo menos nos meus testes, os tempos foram esses)

    Ao entrar nos detalhes do serviço, você terá acesso a diversas informações sobre ele.

    Ao final, teremos nosso RAC disponível para utilização. Não vou fazer aqui testes de acesso e de serviços já que não é nosso foco, mas conforme a tela abaixo, tudo está no ar corretamente.

     

    Nesse ponto nosso banco de dados RAC já estará disponível para utilização.




Configurando o Oracle Database Backup Cloud Service


A seguir mostraremos como configurar manualmente o Oracle Database Backup Cloud Service neste serviço de banco de dados criado. Note que isto é necessário pois durante a criação do DBCS optamos não configurar automaticamente o backup do serviço.

  1. Baixar o pacote dos instaladores do serviço de backup.

    Devemos acessar:
    http://www.oracle.com/technetwork/database/availability/oracle-cloud-backup-2162729.html

     

    Será baixado o arquivo "opc_installer.zip".


  2. No host do serviço DBCS, descompactar o arquivo baixado em alguma pasta. Como sugestão, vou criar a pasta no home do Oracle.
      mkdir -p  /home/oracle/OCBS
    
      unzip  opc_installer.zip
     	Archive: opc_installer.zip   
      	inflating: opc_install.jar
      	inflating:  opc_readme.txt
  3. Será criado um wallet para esse serviço. Precisamos definir um local para este wallet. Como sugestão criaremos a estrutura abaixo.
    mkdir -p  /u01/app/oracle/admin/WALLET/tde_wallet/BKP

    Para criar um Bucket da nossa área de backup, devemos executar:

       java -jar opc_install.jar -host
       https://a511473.storage.oraclecloud.com/v1/Storage-a511473 -identityDomain  a511473
       -opcId 'dba.cloud' -opcPass 'XYXYXYX' -walletDir  
       /u01/app/oracle/admin/WALLET/tde_wallet/BKP -libDir  
       /u01/app/oracle/product/12.2.0.1/dbhome_1/lib/

    Onde:
    -host => Sua área de storage, no seguinte padrão:

    https://<Identity  Domain>.storage.oraclecloud.com/v1/Storage-<Identity Domain>/

    -identityDomain => Identity Domain
    -opcId         => Usuário criado com permissões necessárias.
    -opcPass          => Password
    -walletDir     => Local dos arquivos do wallet
    -libDir      => Local das libs que serão utilizadas


    O log Gerado será algo assim:

    Vamos verificar o arquivo opc criado.

      cat  /u01/app/oracle/product/12.2.0.1/dbhome_1/dbs/opcorcl1.ora
    
      OPC_HOST=https://XXX.storage.oraclecloud.com/v1/Storage-XXX
      OPC_WALLET='LOCATION=file:/u01/app/oracle/admin/WALLET/tde_wallet/teste/OPC  CREDENTIAL_ALIAS=alias_opc'
  4. Alguns parâmetros devem ser alterados na base de dados.
      
      alter system set  "_backup_seq_bufcnt"=16 scope=both sid='*';
      alter system set  "_backup_seq_bufsz"=4194304 scope=both sid='*';
      alter system set  "_backup_file_bufsz"=4194304 scope=both sid='*';
      alter system set  "_backup_file_bufcnt"=16 scope=both sid='*';
    
  5. Por fim, precisamos identificar a lib que será usado pelo RMAN. O Backup Cloud Service se comportará como uma TAPE para o RMAN.
      
      rman target /
    
      CONFIGURE  RETENTION POLICY TO RECOVERY WINDOW OF 3 DAYS;
    
      CONFIGURE CHANNEL  DEVICE TYPE sbt 
      PARMS='SBT_LIBRARY=/u01/app/oracle/product/12.2.0.1/dbhome_1/lib/libopc.so,
      SBT_PARMS=(OPC_PFILE=/u01/app/oracle/product/12.2.0.1/dbhome_1/dbs/opcorcl1.ora)';
      
      CONFIGURE DEVICE  TYPE sbt BACKUP TYPE TO COMPRESSED BACKUPSET;
      CONFIGURE DEFAULT  DEVICE TYPE TO sbt;
      CONFIGURE  ENCRYPTION FOR DATABASE ON;


    Após as alterações, teremos algo assim:

      RMAN> show  all;
      CONFIGURE  RETENTION POLICY TO RECOVERY WINDOW OF 3 DAYS;
      CONFIGURE BACKUP  OPTIMIZATION ON;
      CONFIGURE DEFAULT  DEVICE TYPE TO 'SBT_TAPE';
      CONFIGURE  CONTROLFILE AUTOBACKUP ON;
      CONFIGURE DEVICE  TYPE 'SBT_TAPE' BACKUP TYPE TO COMPRESSED BACKUPSET PARALLELISM 1;
      CONFIGURE CHANNEL  DEVICE TYPE DISK MAXPIECESIZE 2 G;
      CONFIGURE CHANNEL  DEVICE TYPE 'SBT_TAPE' PARMS   
    'SBT_LIBRARY=/u01/app/oracle/product/12.2.0.1/dbhome_1/lib/libopc.so,SBT_PARMS=
    (OPC_PFILE=/u01/app/oracle/product/12.2.0.1/dbhome_1/dbs/opcorcl1.ora)'; CONFIGURE ENCRYPTION FOR DATABASE ON; CONFIGURE COMPRESSION ALGORITHM 'MEDIUM' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE;

    Como isto nosso backup na nuvem para o serviço de banco de dados que criamos está pronto para utilização.


    Para testar o serviço de backup vou usar um script simples.

    RUN {
      CROSSCHECK ARCHIVELOG ALL;
      CROSSCHECK BACKUPSET;
      SQL 'ALTER SYSTEM ARCHIVE LOG CURRENT';
      SQL 'ALTER SYSTEM CHECKPOINT';
      BACKUP AS COMPRESSED BACKUPSET DATABASE;
      sql 'ALTER SYSTEM ARCHIVE LOG CURRENT';
      BACKUP AS COMPRESSED BACKUPSET ARCHIVELOG  ALL not backed up 2 times;
      BACKUP AS COMPRESSED BACKUPSET CURRENT  CONTROLFILE;
      BACKUP AS COMPRESSED BACKUPSET SPFILE;
      DELETE NOPROMPT ARCHIVELOG UNTIL TIME  'SYSDATE - 3';
      DELETE NOPROMPT  OBSOLETE DEVICE TYPE DISK;
      }


Alguns trechos interessantes do log:

  • Alocação de canais como se fosse uma TAPE
      allocated  channel: ORA_SBT_TAPE_1
      channel  ORA_SBT_TAPE_1: SID=19 instance=orcl1 device type=SBT_TAPE
      channel  ORA_SBT_TAPE_1: Oracle Database Backup Service Library VER=3.17.5.8
      using channel  ORA_DISK_1
  • Backup dos datafiles
      channel  ORA_SBT_TAPE_1: specifying datafile(s) in backup set
      input datafile  file number=00010 name=/u02/app/oracle/oradata/ORCL/
      5538A208ED4311C5E0531603100A8895/datafile/o1_mf_sysaux_dqk2xto6_.dbf
      input datafile  file number=00009  name=/u02/app/oracle/oradata/ORCL/
      5538A208ED4311C5E0531603100A8895/datafile/o1_mf_system_dqk2xtnc_.dbf
      input datafile file  number=00011  name=/u02/app/oracle/oradata/ORCL/
      5538A208ED4311C5E0531603100A8895/datafile/o1_mf_undotbs1_dqk2xtoj_.dbf
      input datafile  file number=00012  name=/u02/app/oracle/oradata/ORCL/
      5538A208ED4311C5E0531603100A8895/datafile/o1_mf_undo_2_dqk2yscm_.dbf
      input datafile  file number=00014  name=/u02/app/oracle/oradata/ORCL/
      5538A208ED4311C5E0531603100A8895/datafile/o1_mf_users_dqk35vp2_.dbf
      channel  ORA_SBT_TAPE_1: starting piece 1 at 26-JUL-17
      channel  ORA_SBT_TAPE_1: finished piece 1 at 26-JUL-17
  • Trecho do LIST BACKUP – em destaque a utilização do bucket
      BS Key  Type LV Size        Device Type Elapsed Time Completion Time
      ------- ---- -- ----------  ----------- ------------ ---------------
      19      Full     20.00M     SBT_TAPE    00:00:04      26-JUL-17
      BP Key: 19   Status: AVAILABLE  Compressed: NO  Tag: TAG20170726T152109
      Handle:  c-1478138772-20170726-03   
      Media:  a511473.storage.oraclecloud.com/v1/Storage-a511473/oracle-data-s
      SPFILE Included: Modification  time: 26-JUL-17
      SPFILE db_unique_name: ORCL
      Control File Included: Ckp SCN:  1428985      Ckp time: 26-JUL-17

A lista dos backup’s realizados também nos ajuda nessa verificação:

Então é isso. Agora temos um ambiente ORACLE RAC criado como serviço na nuvem da Oracle. O backup deste banco será armazenado no Oracle Database Backup Cloud Service.

Espero que esse How-To ajude todos a utilizar essas duas ótimas opções do Oracle Cloud.

See you on next article.
Mario.


José Mario Barduchi é um profissional com 18 anos de experiência em coordenação de equipes de DBA's/ATG's em consultoria Oracle Partner. Possui várias certificações Oracle. Atua em definição de arquiteturas para projetos de banco de dados, criação e administração de bases em Oracle Cloud. Articulista em diversos blogs e um dos organizadores dos eventos "DBA Brasil". Atualmente é DBA de uma das maiores redes de hospitais do Brasil.

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.