一、什麼是資料庫鏡像 基本軟體的高可用性解決方案 快速的故障轉移恢復(3秒轉移),低硬體成本 基於資料庫級別的實現 二、資料庫鏡像中的伺服器角色 主體伺服器 承載主體資料庫 接受用戶連接和事務處理請求 鏡像伺服器 承載鏡像資料庫 作為主體資料庫的熱備份(主體資料庫的變化及時傳到鏡像資料庫中) 僅在故 ...
一、什麼是資料庫鏡像
基本軟體的高可用性解決方案
快速的故障轉移恢復(3秒轉移),低硬體成本
基於資料庫級別的實現
二、資料庫鏡像中的伺服器角色
主體伺服器
承載主體資料庫
接受用戶連接和事務處理請求
鏡像伺服器
承載鏡像資料庫
作為主體資料庫的熱備份(主體資料庫的變化及時傳到鏡像資料庫中)
僅在故障轉移後接受用戶連接,事務處理請求。
見證伺服器(監視)
監視伺服器狀態和連接性,實現自動自動故障轉移
三、資料庫鏡像會話
會話初始化
鏡像請求事務日誌記錄,與主體伺服器實現同步
會話過程
主體伺服器將日誌記錄傳輸給鏡像伺服器
各個角色之間相互監視會話狀態
會話終結
發生故障轉移
管理員終止資料庫鏡像
四 資料庫鏡像三種模式
操作模式 | 事務安全 | 傳輸機制 | 是否需要仲裁 | 見證伺服器 | 故障轉移類型 |
高可用 | Full | 同步 | Y | Y | 自動或手動 |
高級別保護 | Full | 同步 | Y | N | 僅手動 |
高性能 | OFF | 非同步 | N | N/A | 僅強制 |
高可用:要求高服務可用性, 要求實現自動故障轉移,確保數據的完整。
高級別保護模式: 數據完整性要求,不要求自動故障轉移,對服務的可用性要求較低。
高性能保護模式:主體伺服器和鏡像伺服器距離很遠,通訊鏈路有明顯的延遲,對性能的事要求高於數據的完整性。
五 配置演示
環境: 資料庫版本 sqlserver 2012 系統版本windows server 2008 R2 域管理
mirroring測試場景
主體伺服器--FETCHINGDATA49\MSSQLSERVERTWO tcp 5022 埠
鏡像伺服器--172.168.18.132\MSSQLSERVER2012 tcp 5022 埠
見證伺服器--FETCHINGDATA49
鏡像操作模式: 高可用. 事務安全:Full,傳輸機制:同步,是否仲裁:Y,見證伺服器:Y,故障轉移:自動。
--步驟(1) 【主體伺服器】設置為完整恢復模式, 做一次完整備份和日誌備份 ALTER DATABASE Mirroring_Test SET RECOVERY FULL backup database Mirroring_Test to disk='C:\data\Mirroring_Test.bak' with init backup log Mirroring_Test to disk='C:\data\Mirroring_Test.bak'
--步驟(2) 【鏡像伺服器】還原到鏡像庫上(將備份文件複製到鏡像伺服器目錄還原) --運行下麵語句,使之創建鏡像資料庫,處於正在還原狀態並且是覆蓋。 restore database Mirroring_Test from disk='D:\data\Mirroring_Test.bak' with file=1, move N'Mirroring_Test' To N'D:\data\Mirroring_Test.mdf', move N'Mirroring_Test_log' To N'D:\data\Mirroring_Test_log.ldf', norecovery, replace restore log Mirroring_Test from disk='D:\data\Mirroring_Test.bak' with file=2,norecovery
在各伺服器創建各埠
--步驟(3) 創建端點 【主體伺服器】創建端點用於伙伴通訊,激活端點 create endpoint Mirroring_Test as TCP (listener_port=5022) for database_mirroring(role=partner,Encryption=supported)
-- 【鏡像伺服器】創建端點用於伙伴通訊,激活端點 create endpoint Mirroring_Test as TCP (listener_port=5022) for database_mirroring(role=partner,Encryption=supported)
--【見證伺服器】創建端點用於見證通訊,激活端點 create endpoint Mirroring_Test as TCP (listener_port=5023) for database_mirroring(role=witness,Encryption=supported)
步驟4 創建connect(連接)許可權。為三個資料庫實例設置相同的賬戶名稱和口令
步驟(5) 【主體伺服器】配置鏡像嚮導
測試
--測試手動故障轉移(在主體伺服器上執行)
ALTER DATABASE Mirroring_Test SET PARTNER failover
--測試自動故障轉移(如在主體資料庫伺服器切斷網線,或停止實例)
--測試數據同步在主體伺服器上改動數據,在鏡像資料庫上創建快照查詢
CREATE DATABASE snap_Mirroring_Test
ON (NAME=Mirroring_Test,FILENAME='D:\Snap_Mirroring_Test.snap')
AS SNAPSHOT OF Mirroring_Test
--刪除快照
DROP DATABASE snap_Mirroring_Test