O espelhamento de banco de dados é um recurso de alta disponibilidade no SQL Server que fornece redundância e capacidades de failover para bancos de dados críticos. Ele permite que você crie uma cópia de espera de um banco de dados em um servidor separado, que pode ser ativado automaticamente em caso de falha.
Em um white paper recente publicado por Paul Randall e Microsoft, o processo de configuração do espelhamento de banco de dados para um publicador de replicação de transações foi discutido. Este artigo tem como objetivo fornecer um resumo dos principais conceitos e etapas envolvidas na configuração do espelhamento de banco de dados.
Configuração de Operações Normais
Antes de mergulhar no processo de configuração, é importante entender a configuração inicial. No cenário de exemplo, são usados dois servidores virtuais, cada um executando duas instâncias do SQL Server. A instância padrão no XML400DB1 serve como publicador de replicação, enquanto a instância XML400DB1/I2 atua como assinante. Por outro lado, a instância padrão no XML400DB2 serve como distribuidor de replicação e testemunha de espelhamento, com a instância XML400DB2/I2 atuando como uma cópia de espera de espelhamento.
Configuração de Operações de Failover
No caso de uma falha, o banco de dados primário pode ser transferido para a cópia de espera de espelhamento, que assume o papel de publicador. Nesse cenário, a instância padrão no XML400DB1 se torna a cópia de espera para o espelhamento de banco de dados, enquanto a instância XML400DB1/I2 permanece como assinante, mas agora da instância XML400DB2/I2. A instância padrão do XML400DB2 continua a servir como distribuidor de replicação e testemunha de espelhamento, enquanto a instância XML400DB2/I2 se torna o banco de dados primário para o espelhamento e o publicador para a replicação.
Configurando o Espelhamento de Banco de Dados
Para configurar o espelhamento de banco de dados, normalmente são seguidas as seguintes etapas:
- Alterar o banco de dados para o modo de recuperação COMPLETO no servidor primário.
- Fazer um backup completo e de transações do banco de dados primário.
- Restaurar os backups completo e de transações no servidor de cópia de espera com NORECOVERY.
- Usar o assistente de configuração de espelhamento de banco de dados para configurar o espelhamento, garantindo que o servidor testemunha seja especificado.
Vale ressaltar que em um ambiente de produção, é recomendado usar certificados para autorização e criar um script de configuração para manutenção adequada. No entanto, para fins deste teste, o assistente foi usado para simplificar o processo.
Testando o Failover
Uma vez configurado o espelhamento de banco de dados, é importante testar o processo de failover para garantir que ele funcione conforme o esperado. No cenário de exemplo, uma ferramenta chamada SQLStress foi usada para simular lotes SQL (SELECT, INSERT, UPDATE, DELETE) contra o publicador de replicação. O teste envolveu a transferência manual para a cópia de espera de espelhamento, que automaticamente se tornou o publicador de replicação, e depois a transferência de volta para o servidor primário original.
Durante o failover, o SQLStress, sendo um aplicativo ciente de redirecionamento transparente do cliente, continuou sendo executado sem interrupções. O assinante de replicação também se sincronizou perfeitamente com o novo publicador. Monitorar a E/S do banco de dados durante o failover pode ajudar a avaliar o impacto nos usuários e garantir uma transição tranquila.
Conclusão
O espelhamento de banco de dados é um recurso poderoso no SQL Server que fornece alta disponibilidade e capacidades de failover para bancos de dados críticos. É relativamente fácil de configurar e funciona bem em muitas organizações. Seguindo as etapas descritas neste artigo, você pode configurar e testar o espelhamento de banco de dados em seu próprio ambiente para garantir a disponibilidade de seus dados importantes.
Referências:
- SQL Server Replication: Fornecendo Alta Disponibilidade Usando o Espelhamento de Banco de Dados
- SQLStress