Esecuzione di un failover manuale (nessun testimone, modalità alta protezione)
-
19-08-2019 - |
Domanda
Posso eseguire un failover se sono disponibili sia il partner principale che il mirror, ma non riesco a capire come eseguire un failover manuale quando il principale è spento o scollegato dalla rete (es. ).
Ho provato a usare:
ALTER DATABASE myMirrorDatabase SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS
Ma questo mette il db nel seguente stato:
[In Recovery]
Non riesco a eseguire RESTORE DATABASE
, perché il db è configurato per il mirroring. Qual è il modo corretto di farlo? Aiuto!
Ulteriori informazioni ... (dato SERVER_A
con DB_A
e SERVER_B
con DB_B
)
Stato iniziale:
DB_A is [Principal, Synchronised], DB_B is [Mirror, Synchronised / Restoring]
Fermo SERVER_A
:
DB_A is [offline], DB_B is [Mirror, Disconnected / In Recovery]
Eseguo l'istruzione di database alter
sopra:
DB_A is [offline], DB_B is [In Recovery]
Soluzione
Se si dispone di un failover non pianificato in cui principale e testimone non sono disponibili, è necessario emettere le seguenti dichiarazioni sul mirror:
USE master
go
ALTER DATABASE AdventureWorks SET PARTNER OFF
GO
RESTORE DATABASE AdventureWorks WITH RECOVERY
GO
Questo porterà il mirror online.
Se è necessario ristabilire la configurazione del mirror una volta che il principal è di nuovo disponibile, è necessario eseguire il processo di backup del DB mirror (perché ora è la versione più recente), ripristinare il principal e quindi configurare il mirroring tutto da capo ma al contrario. Alla fine lo specchio diventerà il nuovo principale.