ustify>
Clique aqui para ler todos os artigos desta edição
Database Mirroring
Aprenda a configurar o mais novo recurso de alta disponibilidade do SQL Server 2005
Nilton Pinheiro
Database Mirroring é com certeza uma das mais esperadas e úteis features disponíveis no SQL Server 2005. Oficialmente disponível a partir do SQL Server 2005 Service Pack 1 (SP1), o database mirroring é uma solução de software que permite aumentar a disponibilidade de um banco de dados. Na prática, ele permite que você tenha uma cópia idêntica do seu banco de dados de produção em um outro servidor. Neste artigo estaremos descrevendo os requisitos necessários e o passo-a-passo completo de como configurar o database mirroring para aumentar a disponibilidade de um banco de dados no SQL Server 2005.
Database Mirroring x Failover Clustering
Ao contrário do failover clustering (veja revista SQL Magazine edição 25 e Nota 1), o qual fornece solução de alta disponibilidade para servidores de banco de dados de grandes ambientes, o database mirroring foi desenvolvido tendo em mente fornecer solução de alta disponibilidade para bancos de dados de pequenas e médias empresas. Sua grande vantagem está no fato de não exigir discos ou servidores especializados, podendo ser configurado em qualquer servidor padrão de mercado, o que torna a solução barata e acessível a qualquer empresa de pequeno e médio porte.
Nota 1. Failover Clustering
O failover cluster é uma solução de alta disponibilidade que fornece funcionalidade de failover automático não apenas para um banco de dados, mas para o servidor inteiro. O failover clustering é configurado com dois ou mais servidores trabalhando como parceiros e o failover automático garante que na falha de um dos parceiros, o outro assumirá seus recursos garantindo assim a disponibilidade dos recursos ou sistema. Por exigir hardwares certificados e storage de discos externo, é uma solução cara e por isso implementada apenas por grandes empresas ou ambientes.
A diferença mais importante entre database mirroring e failover clustering está no nível de proteção oferecido pelas duas tecnologias. Enquanto o database mirroring oferece proteção no nível de banco de dados, o failover clustering oferece proteção no nível de servidor. Por outro lado, no database mirroring, o servidor principal e o servidor espelho (servidor que mantém uma cópia do banco de dados configurado para o mirroring) são servidores ou instâncias SQL Server separadas e com nomes distintos, enquanto que no failover clustering a instância do SQL Server recebe um nome e endereço IP virtual que se mantém o mesmo, independente do servidor ou nó que hospeda a instância.
Dada essa distinção, se o objetivo é manter a disponibilidade banco a banco, o database mirroring é a escolha mais adequada. Por outro lado, se o objetivo é manter a disponibilidade de todo o servidor, o failover clustering é a opção ideal. Uma comparação entre as principais features do failover clustering e database mirroring pode ser vista na Tabela 1.
Feature disponível |
Database Mirroring |
Failover Clustering |
Detecção de falha |
Sim |
Sim |
Failover automático |
Sim |
Sim |
Redirecionamento Transparente dos clientes |
Sim, automático |
Sim, reconecta para o mesmo IP. |
Perda de trabalho zero |
Sim |
Sim |
Percepção do downtime |
Menos que 3 segundos |
30 segundos + tempo de recovery do database |
Necessita de hardware Especial |
Não |
Sim, servidores e storage devem ser certificados para cluster. |
Limite de distância entre os nós |
Ilimitado |
|
Complexidade de configuração |
Baixa |
Alta |
Acesso ao servidor standby |
Possível, mas com impacto na performance |
... |