Compartilhar via


Testemunha de espelhamento de banco de dados

Para oferecer suporte a failover automático, a sessão de espelhamento de banco de dados deve ser configurada em modo de alta segurança e também deve possuir uma terceira instância de servidor, conhecida como testemunha. A testemunha é uma instância opcional do SQL Server que permite ao servidor espelho, em uma sessão de modo de alta segurança, reconhecer se um failover automático deve ser iniciado. Ao contrário dos dois parceiros, a testemunha não serve o banco de dados. O suporte ao failover automático é a única função da testemunha.

ObservaçãoObservação

No modo de alto desempenho, a testemunha pode prejudicar a disponibilidade. Se uma testemunha for configurada para uma sessão de espelhamento de banco de dados, o servidor principal deverá ser conectado a pelo menos uma das outras instâncias de servidor, o servidor espelho ou a testemunha, ou ambos. Caso contrário, o banco de dados ficará indisponível e será impossível forçar o serviço (com possível perda de dados). Portanto, para o modo de alto desempenho, é altamente recomendável que você sempre mantenha a testemunha definida como OFF. Para obter informações sobre o impacto de uma testemunha no modo de alto desempenho, consulte Espelhamento de banco de dados assíncrono (Modo de alto desempenho)

A ilustração a seguir mostra uma sessão de modo de alta segurança com uma testemunha.

Sessão de espelhamento com uma testemunha

Usando uma testemunha em várias sessões

Uma instância de servidor específica pode agir como uma testemunha em sessões de espelhamento de banco de dados, cada uma para um banco de dados diferente. As sessões diferentes podem ser com parceiros diferentes. A ilustração a seguir mostra uma instância de servidor que é uma testemunha em duas sessões de espelhamento de banco de dados com parceiros diferentes.

Instância do servidor que é uma testemunha para dois bancos de dados

Uma instância de servidor único também pode funcionar ao mesmo tempo como uma testemunha em algumas sessões e um parceiro em outras sessões. Porém, na prática, uma instância de servidor normalmente funciona como uma testemunha ou um parceiro. Isso porque os parceiros exigem computadores sofisticados com hardware suficiente para oferecer suporte a um banco de dados de produção, ao passo que a testemunha pode ser executada em qualquer sistema Windows disponível que ofereça suporte ao SQL Server 2008.

Recomendações de software e hardware

A localização da testemunha em um computador separado dos parceiros é altamente recomendável. Só há suporte para os parceiros de espelhamento de banco de dados no SQL Server 2005 Standard e versões posteriores e no SQL Server 2005 Enterprise Edition e versões posteriores. Por outro lado, também há suporte para testemunhas no SQL Server 2005 Workgroup e versões posteriores e no SQL Server 2005 Express Edition e versões posteriores. Uma testemunha pode ser executada em qualquer sistema de computador confiável que forneça suporte a quaisquer edições do SQL Server. Porém, é recomendável que toda instância de servidor usada como testemunha atenda à configuração mínima exigida para a versão Standard do SQL Server que está sendo executada. Para obter mais informações sobre esses requisitos, consulte Requisitos de hardware e software para a instalação do SQL Server 2008.

Função da testemunha no failover automático

Ao longo de uma sessão de espelhamento de banco de dados, todas as instâncias de servidor monitoram seus status de conexão. Se os parceiros forem desconectados uns dos outros, confiarão na testemunha para assegurar que apenas um deles esteja atendendo ao banco de dados atualmente. Se um servidor espelho sincronizado perder sua conexão com o servidor principal, mas continuar conectado à testemunha, o servidor espelho entrará em contato com a testemunha para determinar se a testemunha perdeu sua conexão com o servidor principal:

  • Se o servidor principal ainda estiver conectado à testemunha, não acontecerá o failover automático. Em vez disso, o servidor principal continuará atendendo ao banco de dados enquanto estiver acumulando registros de log para enviar ao servidor espelho quando os parceiros forem reconectados.

  • Se a testemunha também estiver desconectada do servidor principal, o servidor espelho saberá que o banco de dados principal ficou indisponível. Nesse caso, o servidor espelho iniciará imediatamente um failover automático.

  • Se o servidor espelho estiver desconectado da testemunha e também do servidor principal, não será possível o failover automático, independentemente do estado do servidor principal.

O requisito de que pelo menos duas das instâncias de servidor estejam conectadas é conhecido como quorum. O quorum assegura que o banco de dados só possa ser atendido por um parceiro de cada vez. Para obter informações sobre o funcionamento do quorum e seu impacto em uma sessão, consulte Quorum: como uma testemunha afeta a disponibilidade do banco de dados.