1前言
浪擎·鏡像系統是業界成熟的應用系統實時備份容災解決方案。其SQLServer鏡像通過數據庫邏輯層的複製技術,可以方便地實現SQLServer數據庫的實時備份容災,嚴格保障事務的一致性和完整性,在實時備份、本地和異地容災領域具有非常大的優勢。
目標數據庫系統處於運行狀態,無需進行恢復提高容災切換能力。
鏡像系統也無需源和目標硬件規格一致,具有準實時複製、系統和網絡資源佔用少、應用方式靈活等特點。
2實時備份容災原理
2.1 SQLServer事務日誌架構
每個 SQLServer數據庫都有事務日誌,用以記錄所有事務和每個事務對數據庫所做的修改。SQLServer使用預寫日誌技術。預寫日誌確保在相關的日誌記錄之後纔將數據修改寫入磁盤。日誌文件在概念上是一串連續的日誌記錄。每條日誌記錄由一個日誌序號 (LSN) 標識,且在一個虛擬日誌文件中後續日誌記錄的LSN總是高於前一記錄的 LSN。日誌記錄按創建時的串行序列存儲。每條日誌記錄由所屬的事務的 ID 標記。對於每個事務,使用可提高事務回滾速度的向後指針,在鏈內單向鏈接與事務相關聯的所有日誌記錄。
事務日誌內記錄許多類型的操作,包括:每個事務的起點和終點;數據修改(插入、更新或刪除),包括DDL語言對系統表的更改;每次分配或釋放擴展盤區;表或索引的創建或除去;數據庫進程啓動時的操作標記。
日誌記錄包含的數據有已修改數據的前像(undo)和後像(redo)兩種類型。前像是操作執行前的數據複本;後像是操作執行後的數據複本。
基於上述事務日誌架構,SQLServer數據庫鏡像通過實時捕獲預寫日誌文件塊,並解析還原成數據庫記錄,再執行到目標數據庫,即可實現SQLServer數據庫實時備份容災。
2.2 鏡像引擎架構
SQLServer數據庫鏡像引擎包括代理、鏡像服務器、基準裝載器三大部件。代理包含事務日誌實時捕獲器、事務日誌分析器、自適應數據字典、初步過濾器、傳輸控制器和任務隊列等;鏡像服務器包含接收隊列、事務隊列和Snapshot存儲、SQL應用機構等。
2.3 複製流程
事務日誌實時捕獲器實時監控源SQLServer事務日誌文件和捕獲其變化數據;事務日誌分析器通過數據字典將日誌數據解析還原成數據庫記錄,並過濾不需要鏡像的表或其他數據庫對象;傳輸控制器從任務隊列中取出記錄數據傳輸至鏡像服務器。鏡像服務器接收隊列將記錄數據保存至事務隊列和Snapshot文件中;SQL應用機構掃描事務隊列,將提交事務應用到目標SQLServer。
2.4 實時事務捕捉及解析
鏡像系統通過內嵌的Windows文件系統驅動程序實時捕捉SQLServer數據庫的日誌I/O及數據塊。其具備以下技術特點:
第一,鏡像系統在SQLServer數據庫內安裝少量對象用來存儲需複製的信息,但這些對象從創建時就被設置成禁用狀態,不參與複製工作,也不會影響數據庫結構。
第二,文件系統驅動程序的捕捉完全獨立於SQLServer數據庫進程,因此鏡像系統對SQLServer數據庫的性能影響極小。
第三,文件系統驅動程序僅捕獲需要複製的數據庫的日誌文件,且僅捕獲其寫操作,忽略其他文件的任何操作。因此,對操作系統性能影響也極小。
第四,只有發生變化的日誌文件塊纔會被捕捉,而不是整個日誌文件,因此提高了解析性能,降低了網絡傳輸流量。
事務日誌分析器根據數據字典依次解析日誌文件塊,獲取該記錄的操作類型、涉及對象等,忽略不在數據字典中的對象並放棄該日誌記錄的後續解析。
當DDL語言更改了數據庫結構時,事務日誌分析器將通知數據字典使其動態調整對象結構。因此數據字典具備自適應能力,無需重新啓動即可解析後續日誌文件塊。
2.5 傳輸控制
鏡像系統的傳輸協議基於TCP/IP實現。傳輸控制器記錄當前傳輸成功的事務點。當連接中斷等因素導致傳輸失敗,傳輸控制則停止傳輸工作,嘗試連接直至成功。
鏡像系統可創建多個通道實現並行傳輸,提高傳輸效率。
2.6 應用數據
鏡像系統將客戶端傳送到信息轉化爲SQL語句,並按照在源數據庫中的Commit順序發送給目標SQLServer數據庫執行。
2.7 基準裝載
基準裝載器使用SQLServer數據庫提供的在線備份功能,將源數據庫備份出來,還原至目標數據庫,實現源和目標數據庫基準一致。
3 技術特性
1)目標數據庫狀態
目標SQLServer數據庫處於運行狀態,能讀能寫,運行的目標系統保證了系統的一致性。
2)兩階段檢查(2PC)
在傳輸階段和數據庫記錄提交階段均設置成功檢查點。兩階段檢查可防止如網絡連接斷開、目標數據庫沒有運行、進程崩潰等意外因素髮生造成的事務丟失。
技術參數 |
說明 |
複製原理 |
捕獲SQLServer的增量事務進行復制 |
複製粒度 |
數據庫記錄 |
複製DDL語言 |
複製數據庫定義語言,如:
增加、刪除、修改表
增加、刪除、修改字段定義
增加、刪除、修改觸發器、存儲過程
… |
複製DML語言 |
複製應用程序提交的數據 |
標識(Identity)字段 |
支持 |
Bulk insert |
支持 |
Text、Image |
支持 |
複製時延 |
異步複製,秒級延時 |
支持應用方式 |
一對一、一對多、多對一 |
事務完整性 |
完整、一致 |
目標數據庫狀態 |
運行狀態,能讀能寫 |
複製方向 |
單向,從源至目標 |
支持過濾 |
可設置表、視圖、索引等對象的過濾 |
支持版本 |
SQLServer 2000、SQLServer 2005 |
支持操作系統 |
Windows 2000、XP、2003 |
源與目標硬件規格要求 |
無需一致 |
複製最大距離 |
無限制 |
網絡帶寬佔用 |
遠小於存儲層複製 |
3)其他功能
定時鏡像計劃,系統還提供便捷的定時鏡像計劃。鏡像計劃作業可配置信息字段:開始時間、結束時間和日期以及在這段時間之內的鏡像頻率、需要鏡像數據庫。定時鏡像計劃類似於基準裝載,均通過SQLServer數據庫提供在線備份功能實現。
數據庫備份存儲,鏡像系統可將基準裝載或定時鏡像計劃使用的數據庫備份保存在磁盤上;系統採用時間戳命名備份文件。用戶可調節保存的備份版本數量或時間;用戶可手工在SQLServer企業管理將數據庫備份還原至數據庫中。
基於Web的任務監控和配置管理,鏡像系統提供基於WEB的監控、管理平臺,用戶可以通過瀏覽器即可管理全網的鏡像代理、鏡像服務器、傳輸備份策略以及任務監控。
鏡像任務監控是鏡像系統的一個組成部分,用來實時的監控信息包括:
ü從主(源)服務器到備(目標)服務器數據複製的結果;
ü鏡像客戶端和鏡像服務器的工作狀態。