Oracle Cloud: Disaster Recovery solução Oracle Data Guard ( Cloud-Cloud Deployment ) Parte I

Por Skant Gupta, Joel Pérez & Andre Rocha
Publicado en Noviembre 2017

Ao criar um serviço de banco de dados na nuvem da Oracle (DBCS) é possível automatizar o provisionamento de um ambiente Data Guard que criará uma solução robusta de replicação de dados entre infraestruturas de processamento distintas O serviço será criado com dois recursos de computação, um sendo usado como banco PRIMÁRIO, onde o serviço de banco fica efetivamente disponível, e o outro usado para o banco STANDBY, que fica recebendo a réplica do banco de dados primário. A nuvem da Oracle irá orquestrar automaticamente todo o processo de provisionamento.

O Oracle Data Guard é muito usado como solução de recuperação rápida na ocorrência de paradas não planejadas que afetem a disponibilidade da infraestrutura computacional como um todo, incluindo: Servidor, Storage, Rede, instalação do banco de dados, a disponibilidade do serviço do banco de dados. Adicionalmente, pode-se proteger o serviço contra a indisponibilidade total do Datacenter, gerando a replicação do banco em uma infraestrutura de processamento que é disponibilizada em outra região geográfica, deste modo, cria-se uma solução de proteção contra desastres catastróficos.

Outra funcionalidade muito valiosa é a capacidade de troca de papel (atribuição). Com ela pode-se escolher em qual infraestrutura computacional o serviço de banco de dados estará ativo (como primário). Na prática, esta troca de atribuições amplia a disponibilidade do serviço de banco de dados no caso de ações de manutenção planejada. A independência física entre os dois recursos de computação disponíveis (PRIMÁRIO e STANDBY) permite, por exemplo, continuar com o serviço de banco de dados ativo durante uma atualização de segurança, no banco de dados ou no sistema operacional. Em resumo: Muda-se a atribuição do banco de PRIMÁRIO para STANDBY (SWITCHOVER); realiza-se as atualizações necessárias no servidor (que agora é STANDBY e pode ficar sem a replicação ativada por alguns instantes); executa-se um novo SWITCHOVER para voltar ao papel original, tornando-o atual STANDBY novamente PRIMÁRIO.

Para criar um Database Cloud Service (DBCS) com a opção do Oracle Oracle Data Guard configurada, siga os seguintes passos através do Create Service Wizard:

  • Para Service Level, escolha Oracle Database Cloud Service.
  • Para o Software Edition, escolha Enterprise Edition, Enterprise Edition - High Performance, ou Enterprise Edition - Extreme Performance.
  • Para Database Type, escolha Single Instance with Data Guard Standby.
  • Para Standby Database Configuration (página de detalhes do serviço), escolha onde você deseja ter o seu Standby Database instalado em relação ao Primary Database:
    • High Availability — O standby database será instalado em um domínio de disponibilidade diferente do domínio do banco PRIMÁRIO, provendo isolamento a nível de infraestrutura.
    • Disaster Recovery — O standby database será instalado em um Datacenter diferente do banco PRIMÁRIO, provendo tanto isolamento da infraestrutura, como a separação geográfica para suportar disponibilidade resistente a eventos de magnitude catastrófica.

As alternativas marcadas no Standby Database Configuration guiarão a orquestração da nuvem da Oracle para alocar recursos do Oracle Compute Cloud Service que criará os servidores virtuais com os recursos de Computing, Storage e Networking com o nível de isolamento desejado.

Antes de continuar a leitura deste artigo, convidamos você a nos seguir e fazer parte de nossa rede. Para ser atualizado com o conteúdo semanal de artigos "Oracle Cloud", visite nosso Blog: Joel Pérez’s OTN Community Blog

Para ver a lista de artigos:

https://community.oracle.com/people/Sir.CloudDBaaSjoelperez/content?customTheme=otn&filterID=contentstatus%5Bpublished%5D~objecttype~objecttype%5Bblogpost%5D

Se você acessar o blog com sua conta OTN, pressionando o acesso "Follow", você será notificado sempre que um artigo for publicado.

01

Uma vez conectado com sua conta OTN e pressionando "Siga", você obterá isso:

02

Nossa média de publicação é dois artigos semanais sobre o tema "Oracle Cloud"

Agora vamos aos detalhes do artigo!!

Oracle Data Guard no Oracle Database Cloud Service

  1. Efetue o login com sua conta da Oracle Cloud, vá para a página "Oracle Database Cloud Service" e clique em criar novo serviço.
    • No campo Service Name, entre com o nome do seu serviço. Neste exemplo usamos o texto DATAGUARD;
    • Na lista Service Level, selecione Oracle Database Cloud Service;
    • Na lista Metering Frequency, selecione qualquer frequência de cobrança apropriada. Neste exemplo usamos: Monthly;
    • Na lista Software Release, selecione a versão adequada. Neste exemplo usamos: Oracle Database 11g Release 2.
    • Na lista Software Edition, selecione uma versão Enterprise. Neste exemplo usamos: Enterprise Edition.
    • Na lista Database Type, selecione uma opção que inclua o Data Guard Standby. Neste exemplo usamos: Single Instance with Data Guard Standby.

    Então clique em Next para continuar.

    03

    Figura 1. Criando um novo serviço (DATAGUARD)

  2. Na tela de Service Details, siga as etapas:
    • Para DB Name (SID), entre como no nome desejado. Neste exemplo usamos: ORCL.
    • Configure uma senha administrativa de sua escolha e confirme a senha (essa será a mesma usada ao usuário sys).
    • Para o campo Usable Database Storage (GB), entre o tamanho adequado. Neste exemplo usamos: 25.
    • Para lista Compute Shape, selecione o tamanho da infraestrutura que será utilizada. No exemplo escolhemos: OC3 -1 OCPU, 7.5GB RAM (menor opção possível).
    • Para SSH Public Key, entre com sua chave de acesso que deve ser criada previamente. Neste exemplo usamos a chave armazenada no arquivo rsa-key-20170111.pub previamente criado.
    • Para a Configuração do Standby Database, selecione a opção mais adequada para seu caso. Neste exemplo, como desejamos cobertura contra total indisponibilidade do Datacenter onde o serviço de banco de dados primário estará rodando, escolhemos a opção Disaster Recovery.

    Então click Next para continuar.

    04

    Figura 2. Especificando detalhes do Serviço.

  3. Revise a configuração e clique em Create para criar seu Database Cloud Service. 05

    Figure 3. Criando a instancia do Database Cloud Service

  4. Após alguns minutos, o serviço DATAGUARD (nome dado ao serviço) será criado. 06

    Figura 4. O cloud database foi criado

  5. Clique no nome do serviço (DATAGUARD) para abrir a página do serviço de banco. Observe que há dois recursos, um configurado com o papel Primário e outro com o papel Standby. Cada recurso tem sua própria infraestrutura de computação. 07

    Figura 5. Pagina principal do dataguard on cloud database

Connect the Cloud Database

  1. Abra as duas instâncias com o uso do executável PuTTY e conecte usando a chave publica SSH. 08

    Figura 6. Conectando as maquinas PuTTY

    Verifique o status do Oracle Data Guard

    1. Em cada máquina execute o SQL*Plus e conecte-se ao banco usando o usuário SYS.

      Na máquina com papel Primário

      [oracle@DATAGUARD-dg01 ~]$ sqlplus / as sysdba

      SQL*Plus: Release 11.2.0.4.0 Production on Wed Jun 21 18:20:30 2017

      Copyright (c) 1982, 2013, Oracle. All rights reserved.

      Connected to:

      Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

      With the Partitioning and Real Application Testing options

      SQL>

      Na máquina com papel Standby

      [oracle@DATAGUARD-dg02 ~]$ sqlplus / as sysdba

      SQL*Plus: Release 11.2.0.4.0 Production on Wed Jun 21 18:20:30 2017

      Copyright (c) 1982, 2013, Oracle. All rights reserved.

      Connected to:

      Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

      With the Partitioning and Real Application Testing options

      SQL>

    2. Verifique o status da atribuição (role) em ambos servidores.

      Na máquina com papel Primário

      SQL> set lines 200

      SQL> select name, db_unique_name, database_role, switchover_status, open_mode from v$database;

      
      
      
      NAME    DB_UNIQUE_NAME    DATABASE_ROLE    SWITCHOVER_STATUS    OPEN_MODE 
      ------  ----------------- ---------------- -------------------- ------------- 
      ORCL    ORCL_01           PRIMARY          SESSIONS ACTIVE      READ WRITE  
      
      
      

      Na máquina com papel Standby

      SQL> set lines 200

      SQL> select name, db_unique_name, database_role, switchover_status, open_mode from v$database;

      
      
      
      NAME    DB_UNIQUE_NAME     DATABASE_ROLE      SWITCHOVER_STATUS    OPEN_MODE  
      ------- ------------------ ------------------ -------------------- --------------------
      ORCL    ORCL_02            PHYSICAL STANDBY   NOT ALLOWED          READ ONLY WITH APPLY  
      
      

      SQL>

    Verificando o status da configuração do Oracle Data Guard com o utilitário dbaascli

    Você pode usar o subcomando dataguard status do utilitário dbaascli para verificar o status da sua configuração do Oracle Data Guard.

    Antes de executar certas operações, você talvez precise verificar o status da configuração do Oracle Data Guard.

    1. Conecte ao compute node da configuração do Data Guard configuration como usuário oracle

      Using username "opc".

      Authenticating with public key "rsa-key-20170425"

      Passphrase for key "rsa-key-20170425":

      [opc@DATAGUARD-dg01 ~]$ sudo su - oracle

      [oracle@DATAGUARD-dg01 ~]$

    2. Verifique o status da configuração com o subcomando status
      
      
      
      [oracle@DATAGUARD-dg01 ~]$ dbaascli dataguard status 
      DBAAS CLI version 1.0.0  
      Executing command dataguard status
      SUCCESS : Dataguard is up and running 
      DETAILS:  Configuration - fsc   
      Protection Mode: MaxPerformance  
      Databases:    
      ORCL_01 - Primary database  
      ORCL_02 - Physical standby database  
      Properties:   
      FastStartFailoverThreshold      = '30'  
      OperationTimeout                = '120'
      FastStartFailoverLagLimit       = '30'  
      CommunicationTimeout            = '180'
      ObserverReconnect               = '0'   
      FastStartFailoverAutoReinstate  = 'TRUE' 
      FastStartFailoverPmyShutdown    = 'TRUE' 
      BystandersFollowRoleChange      = 'ALL'  
      ObserverOverride                = 'FALSE' 
      ExternalDestination1            = ''    
      ExternalDestination2            = ''  
      PrimaryLostWriteAction          = 'CONTINUE' 
      Fast-Start Failover: DISABLED
      Configuration Status:  
      SUCCESS 
      [oracle@DATAGUARD-dg01 ~]$
      
      
    3. Verifique o status da configuração com o subcomando detail
      
      
      
      [oracle@DATAGUARD-dg01 ~]$ dbaascli dataguard status --details yes
      DBAAS CLI version 1.0.0 
      Executing command dataguard status --details yes
      SUCCESS: Dataguard is up and running  
      {     
      "instances" : [   
      {         
      "DATABASE_TYPE" : "PRIMARY",    
      "PROTECTION_MODE" : "MAXIMUM PERFORMANCE",  
      "PROTECTION_LEVEL" : "MAXIMUM PERFORMANCE", 
      "ADDITIONAL_MESSAGES" : "",      
      "DATABASE_NAME" : "ORCL_01",        
      "PENDING_APPLY_LOG_CNT" : 0,         
      "ACTIVE_SESSIONS" : "3",     
      "HOST_NAME" : "DATAGUARD-dg01",   
      "OPEN_MODE" : "READ WRITE"     
      },    
      {     
      "PROTECTION_LEVEL" : "MAXIMUM PERFORMANCE",
      "ADDITIONAL_MESSAGES" : "",      
      "APPLY_LAG" : "00 days 00 hrs 00 min 00 sec",   
      "DATABASE_NAME" : "ORCL_02",   
      "APPROXIMATE_ROLE_TRANSITION_TIME" : "00 days 00 hrs 00 min 00 sec + 30 sec",
      "ACTIVE_SESSIONS" : "2",     
      "HOST_NAME" : "DATAGUARD-dg02",   
      "TRANSPORT_LAG" : "00 days 00 hrs 00 min 00 sec last computed 0 days 0 hrs 0 min 9 sec before",  
      "PROTECTION_MODE" : "MAXIMUM PERFORMANCE",  
      "DATABASE_TYPE" : "PHYSICAL STANDBY",        
      "OPEN_MODE" : "MOUNTED"    
      }    
      ] 
      } 
      [oracle@DATAGUARD-dg01 ~]$  
      
      

Conclusão

A nuvem da Oracle permite criar uma Database Cloud Service com a opção de ativação do Oracle Data Guard. Com ele você pode alcançar um nível de disponibilidade capaz de ser utilizado como uma solução de plano de recuperação pós desastre. Toda a configuração das instâncias PRIMÁRIA e STANDBY é realizada de forma automatizada.

Este artigo possui outras duas partes. Nelas iremos mostrar os passos necessários para executar as operações de troca de papeis que inclui condições de Switchover, Failover & Reinstate. Usaremos o DBCS Console e o utilitário dbaascli.

Convidamos você a continuar lendo as próximas partes deste artigo.

Outros artigos nesta série:

Disaster Recovery solução Oracle Data Guard ( Cloud-Cloud Deployment ) Parte II

Disaster Recovery solução Oracle Data Guard ( Cloud-Cloud Deployment ) Parte III

Skant Gupta é um Oracle Certified Cloud Professional 12c, OCE RAC 11g and Oracle Certified Professional (10g, 11g, 12c). Atualmente trabalha na Vodafone no Reino Unido e trabalhava anteriormente como DBA Sênior na Etisalat em Dubai. Tem 6 anos de experiência em diferentes tecnologias Oracle, focando principalmente em banco de dados, nuvem, soluções de alta disponibilidade, WebLogic e GoldenGate. Ele já esteve presente em vários grupos de usuários Oracle ao redor do mundo e mais recentemente nos EUA, Emirados Árabes e Índia.

Joel Pérez é um DBA (Oracle ACE Director, Maximum Availability OCM, OCM Cloud Admin. & OCM12c/11g) Especialista com mais de 17 anos de experiência real no mundo da tecnologia Oracle, especializada na concepção e implementação de soluções: Nuvem, alta disponibilidade, recuperação de desastres, Upgrades, replicação e toda a área relacionada com bancos de dados Oracle. Joel serve como "Senior Database Cloud Architect" para en.Enmotech.com Yunhe ENMO (Beijing) Technology Co. Ltd. Beijing, China.

Andre Rocha é um DBA (OCM Cloud Admin. & OCM11g) Instrutor Oracle desde 2002 para tecnologias de banco de dados Cloud e On-Premise, especialista com mais de 15 anos de experiência real no mundo da tecnologia Oracle, realizando projetos em: Oracle VM, Exadata, Data Guard, Performance, RAC, Nuvem, Oracle Linux, Apex e etc. Possui mais de 50 certificações sendo algumas: OCP Solaris, OCP Oracle 10g,11g,12c, Golden Gate, Oracle Rac 11 e 12c.

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.