對SQL Server 2008 進行Mirror的基本配置及安裝。
準備工作
1. Principal 與Mirror 以及 Witness 三台執行個體都安裝為相同版本,目前是到SQL Server 2008 SP1。
2. 需要有一個域帳戶分別添加到 三台資料庫執行個體所在的Server 的 Administrators組、以及SQL Server 相關的組中; 由於具體的組的功能不清楚,因此建議所有組都添加該域帳戶,確保許可權運行正常。
3. 將第二步中的域帳戶設定為SQL Server 服務,SQL Server Agent 的啟動帳戶,並重啟服務。
4. 確保Principal 與Miroor 兩台執行個體上的資料資料及日誌相同。備份模式為完全備份,復原模式為完全,向Mirror執行個體上恢複資料庫時必須選擇為NoRecovery模式。
建立EndPoint
1. 在Principal與 Mirror執行個體上建立EndPoint,運行指令碼:
Create
EndPoint On Principal and Mirror Instance
CREATE ENDPOINT mirroring_ep
STATE=STARTED
AS TCP (LISTENER_PORT=5022)
FOR DATABASE_MIRRORING
(ROLE = PARTNER, ENCRYPTION = SUPPORTED)
--或
CREATE ENDPOINT mirroring_ep
STATE=STARTED
AS TCP (LISTENER_PORT=5022)
FOR DATABASE_MIRRORING
(AUTHENTICATION=WINDOWS NTLM,ROLE = PARTNER)
2. 在Witness執行個體上建立EndPoint,運行指令碼:
Create
EndPoint On Witness Instance
CREATE ENDPOINT mirroring_ep
STATE = STARTED
AS TCP ( LISTENER_PORT = 5022 )
FOR DATABASE_MIRRORING
( ENCRYPTION = SUPPORTED, ROLE=WITNESS );
--或
CREATE ENDPOINT mirroring_ep
STATE=STARTED
AS TCP (LISTENER_PORT=5022)
FOR DATABASE_MIRRORING
(AUTHENTICATION=WINDOWS NTLM,ROLE = WITNESS)
查看EndPoint及刪除EndPoint指令碼:
Select * From Sys.database_mirroring_endpoints
Select * From sys.database_mirroring
Drop Endpoint endpoint_mirroring
建立 Mirror Session
1.在Mirror 執行個體上建立Session,運行指令碼:
ALTER DATABASE DataBaseName
SET PARTNER = 'TCP://PrincipalServerName:5022';
2.在Principal 執行個體上建立Session ,運行指令碼:
ALTER DATABASE DataBaseName
SET PARTNER = 'TCP://MirrorServerName:5022';
3.在Principal 執行個體上指定Witness,運行指令碼:
ALTER DATABASE HB2008_Gome
SET WITNESS = 'TCP://WitnessServerName:5022';
注意:1.在Principal執行個體上建立Session時可能會遇到此錯誤,錯誤資訊如下:鏡像資料庫 "dbName" 包含的交易記錄資料不足,無法保留主體資料庫的記錄備份鏈。如果沒有從主體資料庫進行記錄備份或者沒有在鏡像資料庫上還原記錄備份,則可能會出現這種情況。解決方案是在Principal執行個體上再進行一次記錄備份,並按照NoRecovery模式還原至Mirror執行個體上。原因是日誌存在間斷,可能在進行完全備份時又產生日誌。2.測試FailOver ALTER DATABASE DataBaseSET PARTNER FAILOVER3.相關查詢表:Sys.database_mirroring Sys.database_mirroring_endpoints Sys.database_mirroring_witnesses 4.計劃任務提前備份:可以將Principal上的計劃任務提前產生指令碼,在Mirror配置完成後,在Mirror執行個體上執行。
5.鏡像運行模式
1.高安全性模式:支援同步操作,事務在主體與鏡像上同時提交,會延長事務延隔時間。
2.高效能模式:支援非同步運行,鏡像伺服器可能稍微滯後於主體資料庫。
值得說明的是,高安全性模式,由於是主體與鏡像為同步操作,鏡像的未提交會導致主體不進行提交,可能會有較大的影響。
比如:DBServerA與DBServerB資料庫互為鏡像,DBServerA為主體,DBServerB為鏡像;
同時DBServerA做了發行伺服器,DBServerC從DBServerA做了訂閱。應用系統在DBServerC上進行查詢。
若DBServerB 出現故障,則DBServerA無法提交,從而DBServerC查詢資料不及時。