Visao Geral Sobre o Oracle Data Guard
Autor: Adilson Teixeira da Silva | Publicado: 2008-07-14T16:20:00-07:00

Data Guard é um recurso de banco de dados Oracle, cujo objetivo é garantir alta disponibilidade, proteção e recuperação de dados corporativos. O Data Guard é composto de um pacote de serviços de criação, manutenção, gerenciamento e monitoração de um ou mais bancos de dados em modo de espera (standby), o que garante que bancos de dados de produção sobrevivam a desastres e corrupção de dados. O Data Guard mantém esses standby databases como cópias do banco de produção. Então, se um serviço de banco de dados de produção torna-se indisponível devido a uma interrupção, planejada ou não, o Data Guard pode redirecionar o serviço para o standby database, minimizando o downtime e os transtornos causados pela indisponibilidade do serviço.Uma configuração Data Guard é composta de um banco de produção e de um ou mais bancos no modo espera. Os banco em uma configuração Data Guard são interligados via Oracle Net e dispersos geograficamente. Não há restrições sobre onde os bancos estão instalados, desde que haja comunicação entre eles.Uma configuração Data Guard contém um banco de produção, também conhecido como banco de dados primário. Esse banco é acessado por todas ou a maioria de suas aplicações e pode ter uma ou mais instâncias de banco.Um banco de dados modo espera é uma cópia consistente de transações do banco de dados primário. Através de cópias do banco primário é possível criar até nove bancos modo espera e incorporá-los a uma configuração Data Guard. Uma vez criados, o Data Guard automaticamente mantém esses bancos atualizados aplicando todas a modificações ocorridas no banco primário. Assim como no banco banco primário, você pode ter uma ou mais instâncias de banco.Os tipos de standby database são:Standby database físicoÉ uma cópia idêntica do banco primário com estrutura de discos e de blocos idênticas. Os esquemas de banco, incluindo índices são idênticos. A estrutura do standby database é mantida através de aplicação arquivos de log de banco gerado pelo primary database. No Oracle11, essa aplicação de redo log files pode ser feita com o banco standby aberto no modo read-only.Standby database lógicoContém as mesmas informações do banco primário, embora a estrutura física e organização dos dados possa ser diferente. O sincronismo no standby database lógico é mantido através de aplicação comandos SQL. Isto é feito transformando o conteúdo dos redo log files recebidos do banco primário em comando SQL e então executados no banco standby.Um standby database lógico pode ser usado para outros propósitos além de prevenção contra desastres. É possível realizar consultas e gerar relatórios a qualquer momento. Um standby database lógico, pode ser utilizado para proteção dos dados, geração de relatórios e upgrade de banco de dados.Snapshot Standby DatabaseÉ uma cópia de um standby database físico. Este também recebe redo log files, mas não os aplica imediatamente. Isto é feito somente no momento em que se deseja criar um novo standby database físico.Um snapshot standby database é útil quando se deseja realizar temporariamente alterações em standby database físico ou lógico. O tempo de transformação de snapshot standby database em standby database físico ou lógico depende da quantidade de archived log files a serem aplicados.Em algumas situações, um negócio pode não aceitar perda de dados devido às circunstâncias do momento. Em outras situações, a disponibilidade do serviço de banco de dados pode ser mais importante do que qualquer potencial perda de dados. Algumas aplicações necessitam o máximo de desempenho o tempo todo e podem tolerar pequenas perdas de dados.O modo Disponibilidade Máxima fornece o mais alto nível de proteção possível sem comprometer a disponibilidade do database primário. Transações não são efetivadas até que todos os dados do redo log buffer tenham sido gravadas no standby database. Se o database primário não puder gravar seus redo logs em pelo menos um standby database, ele automaticamente muda para desempenho máximo e opera nesta modalidade até que consiga gravar no standby database.Essa modalidade previne a perda de dados, exceto em caso de dupla falha, ou seja, bancos primário e standby database falharem em seqüência.A modalidade Máximo Desempenho, garante o mais alto nível de proteção possível dos dados sem afetar o desempenho do banco de dados primário. Isto é conseguido permitindo que transações sejam efetivadas tão logo os redo logs gerados por aquelas transações sejam escritas no banco standby. Isto é feito no modo assíncrono e, portanto, evita que atrasos na gravação de redo log files no standby database afete o desempenho do primary database.O modo Proteção Máxima garante que nenhum dado será perdido se o banco de dados primário falhar. Para fornecer este nível de proteção, os dados de redo necessários a recuperação tem que ser gravados no redo log file e em pelo menos um standby database antes da transação ser efetivada. Para garantir que a perda não ocorra, o banco de dados primário opta por encerrar seus serviços realizando automaticamente um shutdown no banco primário.