Espelhamento de Estados (SQL Server)

Aplica-se a: SQL Server

Durante uma sessão de espelhamento de base de dados, a base de dados espelhada está sempre num estado específico (o estado de espelhamento). O estado da base de dados reflete o estado da comunicação, o fluxo de dados e a diferença de dados entre os parceiros. A sessão de espelhamento da base de dados adota o mesmo estado da base de dados principal.

Ao longo de uma sessão de espelhamento de base de dados, as instâncias do servidor monitorizam-se mutuamente. Os parceiros utilizam o estado de espelhamento para monitorizar a base de dados. Com exceção do estado PENDING_FAILOVER, a base de dados principal e a base de dados espelhada estão sempre no mesmo estado. Se uma testemunha estiver definida para a sessão, cada um dos parceiros monitoriza a testemunha usando o seu estado de ligação (CONNECTED ou DESCONECTADO).

Os possíveis estados de espelhamento da base de dados são os seguintes:

Estado de espelhamento Description
SINCRONIZAÇÃO O conteúdo da base de dados espelhada está atrasado em relação ao conteúdo da base de dados principal. O servidor principal está a enviar registos de registo para o servidor espelho, que aplica as alterações à base de dados espelhada para avançar.

No início de uma sessão de espelhamento de base de dados, a base de dados encontra-se no estado de SINCRONIZAÇÃO. O servidor principal está a servir a base de datos e o espelho está a tentar acompanhar.
SINCRONIZADO Quando o servidor espelho fica suficientemente apanhado com o servidor principal, o estado de espelhamento muda para SINCRONIZADO. A base de dados mantém-se neste estado enquanto o servidor principal continuar a enviar alterações ao servidor espelho e o servidor espelho continuar a aplicar alterações à base de dados espelhada.

Se a segurança das transações estiver definida para FAILOVER AUTOMÁTICOautomático e manual forem ambos suportados no estado SINCRONIZADO, não há perda de dados após um failover.

Se a segurança das transações estiver desativada, alguma perda de dados é sempre possível, mesmo no estado SINCRONIZADO.

No SQL Server Management Studio, o estado da base de dados aparece como Restauração. Para o estado real, coluna de consulta mirroring_state_desc na sys.database_mirroring
SUSPENDED A cópia espelhada da base de dados não está disponível. A base de dados principal está a correr sem enviar quaisquer registos para o servidor espelho, uma condição conhecida como correr exposto. Este é o estado após um failover.

Uma sessão também pode ser SUSPENSA devido a erros de refaz ou se o administrador pausar a sessão.

SUSPENSO é um estado persistente que sobrevive a encerramentos e arranques de parceiros.
PENDING_FAILOVER Este estado só se encontra no servidor principal após o início do failover, mas o servidor ainda não passou para o papel de espelho.

Quando o failover é iniciado, a base de dados principal entra no estado PENDING_FAILOVER, termina rapidamente quaisquer ligações de utilizador e assume o papel de espelho pouco depois.
DESCONECTADO O parceiro perdeu a comunicação com o outro parceiro.