SQL Server
鏡像服務簡述 作者:鄭佐 日期:2007-12-30
1. 概述在實施SQL Server 2005 MSCS群集的時候,筆者花了一些時間來學習SQL Server 2005鏡像服務技術。資料庫鏡像是SQL Server 2005的一個新特性,它允許將一個SQL Server中的資料庫內容鏡像到另一個SQL Server上,在發生錯誤的時候,通過鏡像資料庫來進行錯誤恢複。SQL Server 2005 SP1推出後,微軟對其提供完全支援人員,鏡像服務技術在生產環境中可以安全使用。本文目的是通過對SQL Server 資料庫鏡像服務的瞭解使需要制定或決策SQL Server高可用性實施方案的系統架構人員在SQL Server 群集和SQL Server 資料庫鏡像之間的選擇提供一個參考。
2. 資料庫鏡像資料庫鏡像是用於提高資料庫可用率的軟體解決方案。鏡像基於資料庫層面,僅適用於使用完整復原模式的資料庫,簡單復原模式和大量記錄復原模式不支援資料庫鏡像。資料庫鏡像通過資料庫交易處理從一個SQL Server資料庫移動到不同SQL Server環境的另一個SQL Server資料庫中來實現。鏡像的拷貝是一個備用拷貝,一般情況下不能直接存取,只在主伺服器出現錯誤時提供恢複,鏡像伺服器成為主伺服器提供服務。如果需要訪問鏡像資料庫,可以通過快照方式唯讀訪問。
2.1.鏡像服務特點相比SQL Server的MSCS群集對硬體的要求,SQL Server鏡像服務是基於軟體的高可用性解決方案。同SQL Server MSCS群集不同,SQL Server鏡像服務主要特點如下:1. 基於軟體的高可用性解決方案,低硬體成本。2. 快速的容錯移轉恢複,通常在10秒鐘內轉移。3. 基於資料庫層級實現,對單個資料庫進行容錯移轉。
2.2.鏡像中的伺服器角色1. 主體伺服器(Principal Server)。承載主體資料庫,接受使用者串連和交易處理請求。2. 鏡像伺服器(Mirror Server)。承載鏡像資料庫,作為主體資料庫的熱備份。3. 見證伺服器(Witness Server)。監視伺服器狀態和串連性,實現自動容錯移轉。
2.3.鏡像會話的周期1. 會話初始化。鏡像請求事務日之記錄,與主體伺服器實現同步。2. 會話過程。主體伺服器將日誌記錄傳輸給鏡像伺服器,各個角色之間相互監視工作階段狀態。3. 會話終止。發生容錯移轉,管理員終止資料庫鏡像。4. 容錯移轉。對於高可用性的資料庫鏡像模型中,主體資料庫不可用時將觸發自動容錯移轉, 在短時間內恢複服務(<10Sec)。
3. 資料庫鏡像操作模式資料庫鏡像有三種操作模式,包括高可用操作模式,進階別保護模式和高效能模式。以下對三種操作模式的特點進行比較。
操作模式 |
事務安全 |
傳輸機制 |
是否要仲裁 |
見證伺服器 |
容錯移轉類型 |
高可用性 |
FULL |
同步 |
Y |
Y |
自動或手動 |
進階別保護 |
FULL |
同步 |
Y |
N |
僅手動 |
高效能 |
OFF |
非同步 |
N |
N/A |
僅強制 |
3.1.高可用操作模式伺服器角色主體伺服器,鏡像伺服器,見證伺服器。應用情境要求高服務可用性,要求實現自動容錯移轉,確保資料的完整。
3.2.進階別保護模式伺服器角色主體伺服器,鏡像伺服器。應用情境高的伺服器完整性要求,部要求自動容錯移轉,對服務的可用性要求較低。
3.3.高效能模式伺服器角色主體伺服器,鏡像伺服器。應用情境主體伺服器和鏡像伺服器距離很遠,通訊鏈路有明顯的延遲,對效能的要求高與資料的完整性。
4. 資料庫鏡像容錯移轉
4.1.自動容錯移轉只針對高可用性模式,事務安全為FULL。1. 會話中的每個執行個體相互檢測存在狀態物理伺服器SQL Server 執行個體主體、鏡像資料庫2. 當主體對鏡像和見證伺服器都不可見時發生容錯移轉 鏡像轉換為新的主體資料庫 主體恢複後協商成為新的鏡像資料庫 如果關閉見證服務,將禁用自動容錯移轉功能。
4.2.手動容錯移轉針對高可用性和進階保護性模式,事務安全為FULL。1. 在主體上執行手動轉移操作2. 當前串連到主體的使用者被斷開 手動容錯移轉方式可以作為伺服器滾動升級的一種方法,類似於MSCS群集中的節點滾動升級。
4.3.強制服務只針對高效能模式,事務安全為OFF。1. 在鏡像資料庫上強制啟用服務 有可能導致資料的丟失 通常應用在高效能模式注意:強制服務方式也可以應用在高可用性模式中,比如鏡像和見證伺服器都不可用,要求快速恢複服務的情況。
5. 資料庫鏡像監視對於資料庫鏡像的監視,MSDN提到監視的資訊類型有以下兩方面:1. 目錄檢視中的資料庫鏡像中繼資料。2. 資料庫鏡像效能計數器。建議查看MSDN文檔擷取更多的相關資訊。
6. 參考資源如果大家對SQL Server 2005鏡像服務技術有興趣,建議看TechNet講師牛可的WebCast——使用資料庫鏡像保障高可用的資料庫應用。本文對SQL Server 鏡像服務的知識介紹部分內容來自該WebCast,最終解釋權歸原作者所有。使用資料庫鏡像保障高可用的資料庫應用(WebCast)http://www.microsoft.com/china/technet/webcasts/class/SQL_2005_2.mspx http://bbs.mscommunity.com/forums/showthread.aspx?postID=33315使用 SQL Server 2005 資料庫鏡像功能時需要考慮的問題http://support.microsoft.com/kb/907741/zh-cn SQL Server 2005資料庫鏡像簡介http://publish.it168.com/2006/0328/20060328025801.shtml?positioncode=1545 SQL Server 2005高可用性之鏡像功能http://tech.it168.com/db/s/2007-04-24/200704240837593.shtml SQL Server 2005 聯機叢書http://www.microsoft.com/downloads/results.aspx?pocId=&freetext=SQL%20Server%202005%20%u8054%u673a%u4e1b%u4e66&DisplayLang=zh-cn