如果主機壞了斷開連接就用備機的鏡像數據庫
--主備互換,備機sql命令
USE master;
ALTER DATABASE test SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS;
之后會恢復兩分鍾,備機的數據庫就能用了
如果主機恢復了就
--原來的主服務器恢復,可以繼續工作,需要重新設定鏡像,第一次可能會報個錯
USE master;
ALTER DATABASE test SET PARTNER RESUME; --恢復鏡像
ALTER DATABASE test SET PARTNER FAILOVER; --切換主備
建立鏡像的步驟在這:https://www.cnblogs.com/xuanlanbinfen/p/10308079.html
也就是重新建立鏡像,主機 建之前先刪除 證書,端點,證書的登錄名,用戶,和備機的證書;備機也重新操作一遍
--刪除證書 DROP CERTIFICATE HOST_A_cert --創建證書(主備可並行執行) USE master; CREATE MASTER KEY ENCRYPTION BY PASSWORD ='www.wbsbj000.com'; CREATE CERTIFICATE HOST_A_cert WITH SUBJECT ='HOST_A ccertificate', START_DATE ='01/22/2019';
--刪除端點 DROP ENDPOINT Endpoint_Mircroring
--創建連接的端點(主備可並行執行)
--刪除端點 DROP ENDPOINT Endpoint_Mircroring --創建連接的端點(主備可並行執行) CREATE ENDPOINT Endpoint_Mircroring STATE = STARTED AS TCP ( LISTENER_PORT=5022 , LISTENER_IP = ALL ) FOR DATABASE_MIRRORING ( AUTHENTICATION = CERTIFICATE HOST_A_cert , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE = ALL );
--備份證書以備建立互聯(主備可並行執行) BACKUP CERTIFICATE HOST_A_cert TO FILE = 'E:\SQLBackup\HOST_A_cert.cer'; --4、互換證書 --刪除登錄名 DROP LOGIN HOST_B_login --刪除證書 DROP CERTIFICATE HOST_B_cert --刪除用戶 DROP USER HOST_B_user --5、添加登陸名、用戶(主備可並行執行) CREATE LOGIN HOST_B_login WITH PASSWORD ='www.wbsbj000.com'; CREATE USER HOST_B_user FOR LOGIN HOST_B_login; CREATE CERTIFICATE HOST_B_cert AUTHORIZATION HOST_B_user FROM FILE ='E:\SQLBackup\HOST_B_cert.cer'; GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_B_login]; --刪除登錄名 DROP LOGIN HOST_B_login --刪除證書 DROP CERTIFICATE HOST_B_cert --刪除用戶 DROP USER HOST_B_user --關閉鏡像 alter database test set partner OFF --開啟鏡像 ALTER DATABASE test SET PARTNER = N'TCP://192.168.1.103:5022'-- boat主機名 GO