1. 配制環境
OS:Win7 DB:SQL Server R2
2. 基本配制
1. 開啟sqlServer服務如下圖-1
圖-1
2. 開啟sqlServer的tcp/ip協議,在Start -> program -> sqlServerR2 -> ConfigTool -> ConfigManagement,如下圖-2

圖-2
注:開啟此服務后,需要重啟sqlServer服務才能生效。
3. 在需要做備份的機器(主、從和可選的見證)上建立相同的登錄用戶名密碼。
4. 打開鏡像用到的5022端口。在win窗口中輸入控制面板\系統和安全\Windows 防火牆,在彈出的窗口中點擊[高級設置],在入站和出站規則中加入5022端口。
5. 開啟數據庫RemoteDacEnabled屬性。右鍵點擊[數據庫實例] - > 選擇方面,在彈出的窗口中選擇[外圍應用配制器] 把RemoteDacEnabled屬性設置為true。如圖-3
圖-3
6. 在三台機器上建立同一個登錄名和密碼
點擊數據庫實例的下面的安全性,右鍵點擊新建登錄名,在三台機器上建相同的登錄名和密碼,主要是為了應用程序在連接數據中使用。
3.備份還原數據庫
將主服務器中的數據庫完全備份與日志備份到同一目錄同一文件中。右鍵[數據庫名稱] -> 點擊[任務],選擇備份,先做完全備份,再做日志備份。在備庫中還原主庫的備份內容。右鍵[數據庫名稱] ->點擊[任務],選擇還原。如圖-4
圖-4
4. 開始熱備
實現互通可以使用域或證書來實現,考慮實現的簡單,以下選取證書的方式實現。注意:實現“主備數據庫實例互通”的操作只需要做一次,例如為了將兩個 SQL Server 2008的實例中的3個數據庫建成鏡像關系,則只需要做一次以下操作就可以了;或者這樣理解:每一對主備實例(不是數據庫)做一次互通。
1、創建證書(主備可並行執行)
--主機執行:
USE master; CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'masterWord'; CREATE CERTIFICATE HOST_pri_cert WITH SUBJECT = 'HOST_primary certificate' , START_DATE = '01/11/2011', EXPIRY_DATE = '01/11/2013';
--備機執行:
USE master; CREATE MASTER KEY ENCRYPTION BY PASSWORD ='masterWord'; CREATE CERTIFICATE HOST_min_cert WITH SUBJECT ='HOST_minor certificate' , START_DATE = '01/11/2011', EXPIRY_DATE = '01/11/2013';
--見證服務器執行
USE master; CREATE MASTER KEY ENCRYPTION BY PASSWORD ='masterWord'; CREATE CERTIFICATE HOST_pro_cert WITH SUBJECT = 'HOST_Witness certificate' , START_DATE = '01/11/2011', EXPIRY_DATE = '01/11/2013';
--主機執行:
CREATE ENDPOINT Endpoint_Mirroring
STATE = STARTED
AS
TCP ( LISTENER_PORT=5022 , LISTENER_IP = ALL )
FOR
DATABASE_MIRRORING
( AUTHENTICATION = CERTIFICATE HOST_pri_cert , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE = ALL );
--備機執行:
CREATE ENDPOINT Endpoint_Mirroring
STATE = STARTED
AS
TCP ( LISTENER_PORT=5022 , LISTENER_IP = ALL )
FOR
DATABASE_MIRRORING
( AUTHENTICATION = CERTIFICATE HOST_min_cert , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE = ALL )
--見證服務器上執行
CREATE ENDPOINT Endpoint_Mirroring
STATE = STARTED
AS
TCP ( LISTENER_PORT=5022 , LISTENER_IP = ALL )
FOR
DATABASE_MIRRORING
( AUTHENTICATION = CERTIFICATE HOST_pro_cert , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE = ALL )
--主機執行:
BACKUP CERTIFICATE HOST_pri_cert TO FILE = 'D:\HOST_pri_cert.cer';
--備機執行:
BACKUP CERTIFICATE HOST_min_cert TO FILE = 'D:\HOST_min_cert.cer';
--見證服務器上執行
BACKUP CERTIFICATE HOST_pro_cert TO FILE = 'D:\HOST_pro_cert.cer';
將備份到D:\的證書進行互換,即把HOST_pri_cert.cer,HOST_pro_cer.cert復制到備機的D:\,把HOST_min_cert.cer, HOST_pro_cer.cert復制到主機的D:\,把HOST_pri_cert.cer,HOST_min_cert.cer復制到見證機的D:\
--主機執行:
CREATE LOGIN HOST_min_login WITH PASSWORD ='masterWord';
CREATE USER HOST_min_user FOR LOGIN HOST_min_login;
CREATE CERTIFICATE HOST_min_cert AUTHORIZATION HOST_min_user FROM FILE ='D:\HOST_min_cert.cer';
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_min_login];
CREATE LOGIN HOST_pro_login WITH PASSWORD ='masterWord';
CREATE USER HOST_pro_user FOR LOGIN HOST_pro_login;
CREATE CERTIFICATE HOST_pro_cert AUTHORIZATION HOST_pro_user FROM FILE ='D:\HOST_pro_cert.cer';
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_pro_login];
--備機執行:
CREATE LOGIN HOST_pri_login WITH PASSWORD ='masterWord';
CREATE USER HOST_pri_user FOR LOGIN HOST_pri_login;
CREATE CERTIFICATE HOST_pri_cert AUTHORIZATION HOST_pri_user FROM FILE ='D:\HOST_pri_cert.cer';
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_pri_login];
CREATE LOGIN HOST_pro_login WITH PASSWORD ='masterWord';
CREATE USER HOST_pro_user FOR LOGIN HOST_pro_login;
CREATE CERTIFICATE HOST_pro_cert AUTHORIZATION HOST_pro_user FROM FILE ='D:\HOST_pro_cert.cer';
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_pro_login];
--見證服務器上執行
CREATE LOGIN HOST_min_login WITH PASSWORD ='masterWord';
CREATE USER HOST_min_user FOR LOGIN HOST_min_login;
CREATE CERTIFICATE HOST_min_cert AUTHORIZATION HOST_min_user FROM FILE ='D:\HOST_min_cert.cer';
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_min_login];
CREATE LOGIN HOST_pri_login WITH PASSWORD ='masterWord';
CREATE USER HOST_pri_user FOR LOGIN HOST_pri_login;
CREATE CERTIFICATE HOST_pri_cert AUTHORIZATION HOST_pri_user FROM FILE ='D:\HOST_pri_cert.cer';
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_pri_login];
6、 配制鏡像
右鍵點擊需要鏡像的數據庫,點擊[任務] ->選擇[鏡像],點擊【配置安全性】,如下圖:
會出現一個配置數據庫安全性的向導
然后依次點擊下一步,由於是在三台機器上做鏡像,因此鏡像端口都按默認的5022,如果在一台機器上做,需要使用不同的端口號
由於使用的是證書的方式,不是使用域名的方式,因此下圖中的服務賬戶名都為空
繼續下一步
點擊完成,然后點擊開始鏡像就完成了數據庫鏡像的設置
5. 測試
6. 參考
http://www.cnblogs.com/killkill/archive/2008/05/23/1205792.html
http://msdn.microsoft.com/zh-cn/library/ms187798.aspx