Páginas

21 de fev. de 2014

Conceitos básicos do Oracle Data Guard

Olá pessoal,

     No artigo de hoje vou apresentar o Oracle Data Guard e os principais conceitos que envolvem o assunto, tais como: para que serve, tipos de replicação, modos de proteção, o que são os Banco de Dados Primário e Standby, Failover, Switover etc.

     Data Guard é uma solução da Oracle de proteção e disponibilidade de dados (ou Disaster and Recovery), que nasceu no Oracle 7 (ainda sem a automação que existe hoje no produto), teve sua primeira distribuição formal no Oracle 9i, e que, teve uma grande evolução no Oracle 10G.
 
     É importante ressaltar que o Data Guard só funciona na versão Enterprise Edition do Oracle Database, e que, o objetivo principal de quem monta um ambiente (ou configuração) com Data Guard, é ter uma ou mais cópias do BD de produção, que poderá(ão) ser utilizada(s), em substituição ao primeiro, se nele ocorrer alguma falha física ou lógica. O ideal é que essas cópias (BDs Standby) estejam em máquinas, discos, e até mesmo, locais diferentes, para que você tenha cópias totalmente isoladas, e consequentemente, maior disponibilidade dos dados se ocorrer qualquer falha no BD de produção (BD Primário). Atualmente existem soluções de espelhamento remoto "não-Oracle" que permitem replicar os dados de um modo semelhante ao Data Guard, porém com algumas desvantagens. Em geral, elas consomem 7 vezes mais volume de dados na rede, fazem 27 vezes mais operações de I/O na rede, e muitas vezes quando ocorre algum corrompimento físico no BD de produção, esse corrompimento acaba sendo replicado p/ a(s) cópia(s). O Data Guard possui configurações que evitam este problema.
  
     Em um ambiente com Data Guard, deve existir no mínimo: 
       - 1 BD de produção, conhecido como BD Primário;
       - 1 cópia do BD de produção, conhecida como BD Standby, que pode ser dos seguintes tipos:
  
           a) Física: cópia exata do BD Produção (bloco por bloco), onde os dados são replicados através de redo logs. Este é o tipo de cópia mais utilizada para uma solução de Disaster and Recover.
  
              b) Lógica: cópia atualizável do BD Produção, onde os dados são replicados através de instruções SQL. Possui algumas limitações, tais como não replicar índices Oracle Text e Oracle Spatial. É normalmente utilizada quando há a necessidade de se criar um novo BD, que além de ser uma cópia "quase idêntica" do BD de produção, que possibilite gerar relatórios e até mesmo atualizar dados, visando não sobrecarregar o BD Primário.
  
              c) Snapshot: cópia temporária (existente no 11G ou superior) que recebe, mas não aplica as atualizações de redo logs. Normalmente é gerada a partir de uma cópia Física para permitir temporariamente consultar dados ou instalar patches no BD, com mínimo downtime.

     O BD primário pode replicar suas informações para 1 ou mais BDs standby (9 standby no 10G ou 30 standby a partir do 11G), como no exemplo da Imagem 01:

Imagem 01 - BD primário replicando dados p/ BDs standby
Fonte: Oracle Corporation

    Ao implantar um ambiente com Data Guard, devemos considerar também, além do tipo de BD Standby, o modo de proteção da configuração, que pode ser:
  
         a) Máxima Performance:
             Configuração onde a aplicação de redo logs é assíncrona, ou seja,  os dados de redo são aplicados no BD Primário e depois replicados p/ o BD Standby, em modo assíncrono, sem comprometer a performance do BD Primário. Nesta configuração há o risco de perda de dados no BD Standby.
  
         b) Máxima Proteção:
             Configuração onde a aplicação de redo logs é síncrona, ou seja, os dados de redo são aplicados no BD Primário e replicados p/ o BD Standby em uma mesma transação. Essa configuração garante que ambos estejam sempre iguais, mas pode comprometer a performance do BD Primário, e pior que isso, se o BD Standby não for replicado em um determinado tempo (configurável), o BD Primário poderá sofrer um Shutdown automático p/ impedir qualquer alteração no BD e garantir que ambos continuem iguais ou sincronizados.
  
         c) Máxima Disponibilidade:
             Configuração onde a replicação de redo logs é síncrona até que o momento em que alguma indisponibilidade de comunicação com o BD Standby ocorra. Se ocorrer, a replicação passa a ser assíncrona e o BD Primário não sofre um Shutdown automático. Essa configuração é um misto de Máxima Proteção com Máxima Performance.

     Outro ponto importante quando o assunto é Data Guard, é entender o conceito de papéis do BD dentro da configuração. Um BD Primário, por exemplo, pode mudar de papel e virar um BD Standby Físico. Este processo de mudança de papéis pode se chamar Switchover ou Failover. Um Switchover ocorre quando a troca de papéis é planejada, ou seja, quando por exemplo, todos os BDs da configuração estavam funcionando perfeitamente, mas o DBA precisou instalar um patch de segurança e ele comandou a troca de papéis para fazer a instalação com segurança em cada BD da configuração. Um Failover ocorre, quando por exemplo, surge alguma falha não esperada no BD Primário e este torna-se indisponível. Neste caso, um BD Standby deverá se transformar em um BD Primário para que os usuários possam utilizá-lo, e essa mudança poderá ocorrer de modo manual ou automática.

     Existe ainda o Active Data Guard, que surgiu no Oracle 11G e que necessita de licenciamento extra. Para obter mais informações sobre ele e o Data Guard em geral, consulte as referências ao final deste artigo. Se você quer aprender a montar um ambiente Data Guard com 1 BD Standby Físico, sugiro a leitura do artigo Implementando um Data Guard com Standby Físico.

[]s


Referências:
  - Livro Oracle Dataguard 11g Handbook, Editora Oracle Press, Autores: Larry Carpenter, Charles Kim, Sonya Carothers, Michael Smith, Joe Meeks, Bill Burke, Joydip Kundu, Nitin Vengurlekar.
   - Treinamento oficial da Oracle: Oracle Database 11g: Data Guard Administration
   - Oracle® Data Guard Concepts and Administration11g Release 2 (11.2) 



11 comentários: