BACKUP DATABASE [mydb] TO DISK = N'D:\backup\mydb.bak' WITH NOFORMAT, NOINIT, NAME = N'mydb-完整數據庫備份 ', SKIP, NOREWIND, NOUNLOAD, STATS = 10 GO BACKUP LOG [mydb] TO DISK = N'D:\backup\mydb.trn' WITH NOFORMAT, NOINIT, NAME = N'mydb-事務日誌 備份' , SKIP , NOREWIND , NOUNLOAD , STATS = 10 GO
將備份拷貝到鏡像服務器上,在鏡像服務器上恢復備份,須要指定RESTORE WITH NORECOVERY數據庫
RESTORE DATABASE [mydb] FROM DISK = N'D:\backup\mydb.bak' WITH FILE = 1, NORECOVERY , NOUNLOAD , STATS = 10 GO RESTORE LOG [mydb] FROM DISK = N'D:\backup\mydb.trn' WITH FILE = 1, NORECOVERY, NOUNLOAD, STATS = 10 GO
主體數據庫配置以下:安全
--建立密鑰 CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'password' SELECT * FROM sys.symmetric_keys --建立證書 CREATE CERTIFICATE cert_3_100 WITH SUBJECT = 'HOST_A certificate for database mirroring', EXPIRY_DATE = '1/1/2020' SELECT * FROM sys.certificates ; --建立端點 CREATE ENDPOINT master_instance STATE = STARTED AS TCP ( LISTENER_PORT=5022 , LISTENER_IP = ALL ) FOR DATABASE_MIRRORING ( AUTHENTICATION = CERTIFICATE cert_3_100 , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE = ALL ) SELECT name , role_desc , state_desc , connection_auth_desc , encryption_algorithm_desc FROM sys.database_mirroring_endpoints --備份證書到其餘系統 BACKUP CERTIFICATE cert_3_101 TO FILE = 'd:\cert_3_100.cer'; GO
鏡像數據庫配置以下:服務器
--建立密鑰 CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'password' SELECT * FROM sys.symmetric_keys --建立證書 CREATE CERTIFICATE cert_3_101 WITH SUBJECT = 'HOST_A certificate for database mirroring', EXPIRY_DATE = '1/1/2020' SELECT * FROM sys.certificates ; --建立端點 CREATE ENDPOINT backup_instance STATE = STARTED AS TCP ( LISTENER_PORT=5022 , LISTENER_IP = ALL ) FOR DATABASE_MIRRORING ( AUTHENTICATION = CERTIFICATE cert_3_101 , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE = ALL ) SELECT name , role_desc , state_desc , connection_auth_desc , encryption_algorithm_desc FROM sys.database_mirroring_endpoints --備份證書到其餘系統 BACKUP CERTIFICATE cert_3_101 TO FILE = 'd:\cert_3_101.cer'; GO
主體數據庫配置以下:性能
USE master --爲其餘系統建立登陸名 CREATE LOGIN login_3_101 WITH PASSWORD = 'password'; SELECT * FROM sys.server_principals --建立一個使用該登陸名的用戶 CREATE USER user_3_101 FOR LOGIN login_3_101 SELECT * FROM sys.sysusers --將證書與用戶關聯,並將鏡像庫生成的證書文件放到指定目錄中 CREATE CERTIFICATE cert_3_101 AUTHORIZATION user_3_101 FROM FILE = 'd:\cert_3_101.cer' SELECT * FROM sys.certificates --受權對遠程鏡像端點的登陸名的 CONNECT權限,受權完成後,完成對登陸到所需的證書身份驗證的設置 GRANT CONNECT ON ENDPOINT::master_instance TO login_3_101
鏡像數據庫配置以下:測試
USE master --爲其餘系統建立登陸名 CREATE LOGIN login_3_100 WITH PASSWORD = 'password'; SELECT * FROM sys.server_principals --建立一個使用該登陸名的用戶,並將主體庫生成的證書文件放到指定目錄中 CREATE USER user_3_100 FOR LOGIN login_3_100 SELECT * FROM sys.sysusers --將證書與用戶關聯 CREATE CERTIFICATE cert_3_100 AUTHORIZATION user_3_100 FROM FILE = 'd:\cert_3_100.cer' SELECT * FROM sys.certificates --受權對遠程鏡像端點的登陸名的 CONNECT權限,受權完成後,完成對登陸到所需的證書身份驗證的設置 GRANT CONNECT ON ENDPOINT::backup_instance TO login_3_100
選擇主體數據庫mydb數據庫對象右鍵->任務->鏡像->配置安全性spa
由於要採用高性能方式,因此不須要見證服務器3d
當同步完成後,主體數據庫會顯示「(主體,已同步)」,鏡像數據庫會顯示(已同步,正在還原)代理
步驟2:配置分發服務器日誌
點擊添加code
若是要發佈的數據庫很是大,建議選擇業務空閒期進行初始化快照
輸入代理名稱,取消勾選「僅顯示次配置文件中使用的參數」,指定 –PublisherFailoverPartner 代理參數的鏡像名稱WIN-3-100
USE mydb INSERT INTO Admin( user_name) VALUES('master' ) SELECT * FROM admin WHERE user_name='master'
鏈接訂閱庫,查詢插入數據
USE mydb SELECT * FROM admin WHERE user_name='master'
use master ; alter database mydb set partner FORCE_SERVICE_ALLOW_DATA_LOSS; --強制接收
USE mydb INSERT INTO Admin( user_name) VALUES('mirror' ) SELECT * FROM admin WHERE user_name='mirror'
在訂閱服務器查看:
USE mydb SELECT * FROM admin WHERE user_name='mirror'
use master ; alter database mydb set partner resume;