Failover manual
O failover manual desconecta os clientes do banco de dados e inverte as funções dos parceiros. Apenas o modo de alta segurança oferece suporte ao failover manual.
Observação |
---|
Este tópico supõe que você esteja familiarizado com modo de alta segurança. Para obter mais informações, consulte Espelhamento de banco de dados síncrono (modo de alta segurança). |
Mantendo a disponibilidade durante as atualizações
O administrador de banco de dados pode usar o failover manual para atualizar o hardware ou o software sem sacrificar a disponibilidade. Para usar o espelhamento de banco de dados para atualizações de software, o servidor e/ou sistema espelho já deverá ter recebido as atualizações.
Observação |
---|
O espelhamento de banco de dados deve ser capaz de fazer uma atualização sem interrupção, mas isso não é garantido, porque as alterações futuras são desconhecidas. Para obter mais informações, consulte Como minimizar o tempo de inatividade de bancos de dados espelhados durante a atualização de instâncias do servidor. |
A figura a seguir ilustra uma instância do uso do failover manual para manter a disponibilidade de banco de dados enquanto você atualiza uma instância de servidor de banco de dados. Quando a atualização é concluída, um administrador pode, opcionalmente, fazer failover de volta para a instância de servidor original. Isso é útil quando o administrador deseja interromper a sessão de espelhamento e usar o servidor espelho em outro lugar. Dessa forma, uma única instância de servidor pode ser usada repetidamente ao atualizar uma série de instâncias de servidor de banco de dados.
Condições exigidas para um failover manual
O failover manual exige que a segurança da transação seja definida como FULL (ou seja, modo de alta segurança). Quando os parceiros estão conectados e o banco de dados já está sincronizado, há suporte ao failover manual.
Como o failover manual funciona
O failover manual inicia a seguinte seqüência de ações:
O servidor principal desconecta clientes do banco de dados principal, envia a parte final do log ao servidor espelho e, na preparação para alternar para a função espelho, define o estado de espelhamento como SYNCHRONIZING.
O servidor espelho registra o LSN (número de seqüência de log) do último registro de log recebido do principal como o LSN do failover.
Observação Para exibir esse LSN, selecione a coluna mirroring_failover_lsn em sys.database_mirroring (Transact-SQL).
Se algum log estiver esperando na fila de restauração, o servidor espelho concluirá o roll forward do banco de dados espelho. A quantidade de tempo exigida depende da velocidade do sistema, da carga de trabalho recente e da quantidade de log na fila de restauração. Para um modo operacional síncrono, o tempo de failover pode ser regulado limitando o tamanho da fila de restauração. Porém, isso pode reduzir a velocidade do servidor principal para permitir que o servidor espelho seja mantido.
Observação Para saber o tamanho atual da fila de restauração, use o contador de desempenho Fila de Restauração do objeto de desempenho do espelhamento de banco de dados (para obter mais informações, consulte Monitorando o espelhamento de banco de dados).
O servidor espelho se torna o servidor principal, e o servidor principal anterior se torna o novo servidor espelho.
O novo servidor principal reverte qualquer transação não confirmada e usa sua cópia do banco de dados online como o banco de dados principal.
O servidor principal anterior assume a função de espelho, e o banco de dados principal anterior se torna o banco de dados espelho. O novo servidor espelho rapidamente faz nova sincronização do novo banco de dados espelho com o novo banco de dados principal.
Observação Assim que o servidor espelho novo tiver sincronizado novamente os bancos de dados, o failover será novamente possível, mas na direção inversa.
Após o failover, os clientes devem se reconectar ao banco de dados principal atual. Para obter mais informações, consulte Conectando clientes a um banco de dados espelhado.