Testemunha de espelhamento de banco de dados

Aplica-se a: SQL Server

Para dar 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 atende ao banco de dados. O suporte ao failover automático é a única função da testemunha.

Observaçã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, veja Modos de operação de espelhamento de banco de dados.

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

Neste tópico:

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 de servidor que é uma testemunha de 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.

Recomendações de software e hardware

A localização da testemunha em um computador separado dos parceiros é altamente recomendável. Os parceiros de espelhamento de banco de dados só têm suporte no SQL Server Standard edition e no SQL Server Enterprise edition. As testemunhas, em contrapartida, também têm suporte no SQL Server Workgroup e no SQL Server Express. Exceto durante uma atualização de uma versão anterior do SQL Server, as instâncias de servidor em uma sessão de espelhamento devem todas estar executando a mesma versão do SQL Server. Por exemplo, há suporte para uma testemunha do SQL Server 2008 (10.0.x) quando é feita a atualização de uma configuração de espelhamento do SQL Server 2008 (10.0.x), mas ela não pode ser adicionada a uma configuração de espelhamento nova ou existente do SQL Server 2008 2008 R2 (10.50.x) ou posterior.

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 do SQL Server Standard que está sendo executada. Para obter mais informações sobre requisitos, consulte Requisitos de hardware e de software para instalar o SQL Server 2016.

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 como o quorum funciona e seu impacto sobre uma sessão, confira Quorum: como uma testemunha afeta a disponibilidade do banco de dados (Espelhamento de Banco de Dados).

Para adicionar ou remover uma testemunha

Para adicionar uma testemunha

Para remover a testemunha

Consulte Também

Troca de função durante uma sessão de espelhamento de banco de dados (SQL Server)
Modos de operação de espelhamento de banco de dados
Quorum: como uma testemunha afeta a disponibilidade do banco de dados (Espelhamento de Banco de Dados)
Possíveis falhas durante espelhamento de banco de dados
Estados de espelhamento (SQL Server)