SQL Server的群集架構雖然在服務器級別保證了前端業務的連續性,但群集最大的缺點是數據只有一份。為了降低數據的丟失,通常會使用到群集+鏡像的混合架構進行異地容災,以此來彌補群集自身的缺點與風險。其中,SQL Server的群集架構是基於AD域環境搭建的,SQL引擎所使用的服務賬號必須是域賬號。假如異地容災的數據庫服務器受網絡等基礎建設限制,無法加入該群集所在的域,那麼通過給引擎配置同樣服務賬號的方法將無法滿足這類環境的搭建需求。
針對以上的特殊情況,可以使用證書的驗證方式,解決SQL Server數據庫服務器在不同條件的環境下,也能達到高可用架構搭建的要求。
一. 配置系統環境
1. 開通遠程訪問。
2. 關閉windows防火牆。
3. 在網絡上開通端口:
1) FTP: TCP 21
2) 共享文件夾: TCP 135 445
3) SQL Server數據庫TCP 1433 UDP 1434
4) 鏡像端口: TCP 5022
4. 配host文件,首先檢查群集服務器上的SQL資源組信息。
5. 在鏡像服務器上, 配置host記錄為SQL實例所使用的虛擬服務器名稱和IP地址,注意不是群集兩個節點服務器的物理計算機名稱和IP。
6. 在主體的群集服務器上,分別在兩台節點服務器的host文件中,添加鏡像服務器的IP地址和名稱。
二. SQL Server配置
1. 開啟遠程開啟外圍配置,右鍵 -> 數據庫實例 -> 方面。
2. 選擇“外圍應用配置器”-> “RemoteDacEnable”-> “True”。
3. 最後使用SSMS工具分別連接群集實例和鏡像服務器上的本地實例,檢查是否能正常連接。
三. 備份還原
1. 在主體服務器的實例上完整備份數據庫“TestDB”。
2. 然後再備份數據庫“TestDB”的事物日志。
3. 將完整備份和日志備份的文件拷貝到鏡像服務器上,分別還原完整備份和日志備份。
4. 恢復狀態都必須選擇“Norecovery”模式。
5. 確認數據庫還原的狀態是否正確。
四. 配置證書
1. 創建master主密鑰
在主體服務器的實例上,創建數據庫主密鑰。(主密鑰的密碼自定義)
2. 創建證書
創建證書“HostA_cert”,證書的名稱、主體、有效期需要自行定義。(如果不設置證書的時間,自動生成的有效期為一年)
3. 創建鏡像端點及授權
(1) 在創建時,鏡像端點的名稱、偵聽端口需要自定義,授權給剛才創建好的證書“HostA_cert”。