A execução de um failover manual (não testemunha, o modo de protecção elevado)
-
19-08-2019 - |
Pergunta
Posso executar um failover se tanto o primário e os parceiros espelho estão disponíveis, mas eu não consigo descobrir como fazer um manual de fail-over quando o principal está desligado ou desconectado da rede (ou seja, não ).
Eu tentei usar:
ALTER DATABASE myMirrorDatabase SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS
Mas isso coloca o db para o seguinte estado:
[In Recovery]
Eu não posso correr RESTORE DATABASE
, porque o db está configurado para espelhamento. Então, qual é a maneira correta de fazer isso? Ajuda!
Mais informações ... (dado SERVER_A
com DB_A
e SERVER_B
com DB_B
)
Estado inicial:
DB_A is [Principal, Synchronised], DB_B is [Mirror, Synchronised / Restoring]
I parada SERVER_A
:
DB_A is [offline], DB_B is [Mirror, Disconnected / In Recovery]
Eu executar a instrução de banco de dados alter
acima:
DB_A is [offline], DB_B is [In Recovery]
Solução
Se você tem um failover não planejado, onde o principal e testemunha não estão disponíveis você deve emitir as seguintes declarações sobre o espelho:
USE master
go
ALTER DATABASE AdventureWorks SET PARTNER OFF
GO
RESTORE DATABASE AdventureWorks WITH RECOVERY
GO
Isso fará com que o espelho online.
Se você precisa re-estabelecer a configuração do espelho uma vez que o principal é disponível novamente você precisa passar pelo processo de backup de espelho DB (porque agora é a versão mais recente), restaurando ao principal e, em seguida, configurar o espelhamento mais uma vez, mas em sentido inverso. No fim de que o espelho se tornará o novo diretor.