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.
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:
b) Máxima Proteção:
c) Máxima Disponibilidade:
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)
Muito bom o artigo, parabéns!
ResponderExcluirObrigado Aramis.
ExcluirÓtimo material, estar de parabéns
ResponderExcluirObrigado Filipe!
Excluirexcelente!
ResponderExcluirObrigado!
ExcluirEdificante!
ResponderExcluirAbraço
Wagner Vinicius
Ótimo artigo, obrigada por compartilhar seus conhecimentos!
ResponderExcluirCida, obrigado pelo comentário!
ExcluirOlá Fábio, ótimo material! Você por acaso tem experiência em migração de dados utilizando o Oracle Data Guard com Standby Lógico?
ResponderExcluirOlá Gabriela, obrigado pelo comentário. Infelizmente nunca fiz migração no modo que vc questionou!
Excluir[]s