SQLServer數據庫實時備份技術

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
在傳輸階段和數據庫記錄提交階段均設置成功檢查點。兩階段檢查可防止如網絡鏈接斷開、目標數據庫沒有運行、進程崩潰等意外因素髮生形成的事務丟失。
2 )特性 列表
技術參數
說明
複製原理
捕獲 SQLServer 的增量事務進行復制
複製粒度
數據庫記錄
複製 DDL 語言
複製數據庫定義語言,如:
增長、刪除、修改表
增長、刪除、修改字段定義
增長、刪除、修改觸發器、存儲過程
複製 DML 語言
複製應用程序提交的數據
標識( Identity )字段
支持
Bulk insert
支持
Text Image
支持
複製時延
異步複製,秒級延時
支持應用方式
一對1、一對多、多對一
事務完整性
完整、一致
目標數據庫狀態
運行狀態,能讀能寫
複製方向
單向,從源至目標
支持過濾
可設置表、視圖、索引等對象的過濾
支持版本
SQLServer 2000 SQLServer 2005
支持操做系統
Windows 2000 XP 2003
源與目標硬件規格要求
無需一致
複製最大距離
無限制
網絡帶寬佔用
遠小於存儲層複製
3 )其餘功能
定時鏡像計劃, 系統還提供便捷的定時鏡像計劃。鏡像計劃做業可配置信息字段:開始時間、結束時間和日期以及在這段時間以內的鏡像頻率、須要鏡像數據庫。定時鏡像計劃相似於基準裝載,均經過 SQLServer 數據庫提供在線備份功能實現。
數據庫備份存儲, 鏡像系統可將基準裝載或定時鏡像計劃使用的數據庫備份保存在磁盤上;系統採用時間戳命名備份文件。用戶可調節保存的備份版本數量或時間;用戶可手工在 SQLServer 企業管理將數據庫備份還原至數據庫中。
基於 Web 的任務監控和配置管理, 鏡像系統提供基於 WEB 的監控、管理平臺,用戶能夠經過瀏覽器便可管理全網的鏡像代理、鏡像服務器、傳輸備份策略以及任務監控。
鏡像任務監控是鏡像系統的一個組成部分,用來實時的監控信息包括:
ü 從主(源)服務器到備(目標)服務器數據複製的結果;
ü 鏡像客戶端和鏡像服務器的工做狀態。
 
相關文章
相關標籤/搜索