張萬里
(中原科技學院,河南 鄭州 450000)
為了應對數據爆炸式增長帶來的數據庫存儲壓力,分布式數據庫應運而生。它是將數據庫系統和計算機網絡相結合,利用終端計算機與分布式網絡,將分散在各處的數據庫連接起來,得到一個可以統一調度的數據庫系統。在大幅度提高數據存儲容量的同時,還能為數據查詢、調用等提供便利。考慮到數據庫系統時時刻刻都有新的數據存入,因此必須要應用數據同步技術,保證單個節點與終端之間的數據保持一致性。分布式網絡數據同步技術的應用能夠同時滿足上述需求,在現階段的一些大型信息系統中得到了廣泛應用。
分布式數據庫(DDB)按照控制模式的不同,可以分成集中型、分散型、可變型3 種基本類型。由于數據是分散存儲在由計算機網絡聯結起來的多個站點上,因此數據的存儲、備份、調用、刪除等一系列操作也具有分布性特點。其中,每一個獨立的節點可自行完成數據的簡單處理,從而減輕了控制終端的運行壓力。由于分布式數據庫的結構龐大且復雜,因此通常會選擇增加冗余數據的方式來增強系統本身的可靠性。假如某個節點上發生故障,則系統可直接跳過該節點,繼續在其他節點上完成操作,不會因為單個節點故障而影響到整個系統的運行。
數據安全性是評價數據庫系統性能的一個核心指標,而分布式數據庫由于組織結構復雜、數據量龐大,服務器經常處于高負載甚至是超負載運行狀態。一旦數據庫系統崩潰,將會造成重要數據的損壞、丟失。數據同步技術可以基于分布式數據庫的結構特點和運行特性,使存儲在不同節點上的數據,能夠定期得到更新,并保證源數據和備份數據始終保持一致。這樣即便因為數據庫系統出現突發故障,導致源數據丟失、損害,也能啟用備份數據,而不會影響數據的正常使用。隨著數據同步技術的逐漸成熟,根據數據復制方式的不同,又可將其分為同步復制和異步復制兩種類型;而根據同步方向的差異,則可以分為單向同步、雙向同步兩種類型。本文主要介紹了完全對等數據同步技術的應用。
該模型的作用是在分布式網絡環境中,實現對等數據同步。其運行原理:當任意一個節點的數據庫更新了關鍵數據后,系統能夠及時做出反應并對更新事務進行采集和分發,將更新事務同步到該分布式網絡的其他對等節點。完成同步更新后,即可使所有節點的數據保持一致性,達到完全對等的數據同步。在該模型中,所有節點服務端均采用并聯方式與網絡對接。這樣就保證了無論哪一個節點出現了故障,都不會對其他節點產生干擾。完全對等數據同步模型的結構如圖1所示。

圖1 數據同步模型的系統結構圖
結合圖1 可知,該模型系統主要由兩大部分組成,即注冊機服務端和節點服務端。其中,注冊機服務端主要用于接收前端階段數據庫反饋的事務報文,并將其分類存儲到事務數據庫的對應分區中。同時,還支持階段服務器的注冊,以及新注冊節點服務器的初始化同步等功能。而節點服務端主要用于收集本地節點數據庫中出版表的更新事務,并將其同步至其他節點服務器。實時檢測是否存在并發事務沖突,若存在則自動協調本地更新事務與遠程更新事務的沖突。另外還有記錄事務故障信息、維護本地出版表事務日志等功能。
傳統的數據同步模型都設有一個中心節點。當分布節點上的關鍵數據更新后,將更新事務反饋至中心節點,由此確定事務執行順序、完成數據同步。但是這種模型在實際使用中也存在缺陷,例如中心節點負載過高,容易出現故障。而一旦中心節點故障,將會導致整個數據同步系統也隨之癱瘓。因此,本文提出了一種基于完全對等數據同步的節點協調策略,即不設中心節點,所有節點地位保持一致。當出現更新事務后,根據既定的節點協調策略完成事務執行和數據同步操作。其實現算法:
(1)每隔一段時間刷新一次事務接收隊列,直到隊列中出現并發沖突。
(2)判斷事務發起節點與本節點編號是否一致,若一致則將本節點作為事務執行控制節點。若不一致,則將事務分配至所屬控制節點。
(3)確定本節點為事務執行控制節點后,按照既定的節點協調策略解決并發沖突。
基于節點協調策略的數據同步流程主要分為五步:第一步是分發事務。位于前端的事務獲取模塊會以特定頻率刷新事務更新消息,一旦事務更新則立即將該消息反饋至節點服務器。服務器讀取事務更新日志后,按照特定格式進行封裝,并發送至同屬于該分布式網絡的其他節點服務器。第二步是并發處理。其他節點服務器在接收到更新事務消息后,判斷是否存在事務并發沖突。若確實存在,則進行并發沖突處理。同時更新事務沖突序列。第三步是確定基于節點協調策略的中心節點(事務執行控制節點)。按照時間順序讀取事務沖突列表,執行一個判斷程序“事務發起節點與本節點的編號是否一致?”若判斷結果為“Y”,則將本節點作為事務執行控制節點。若判斷結果為“N”,則等待該事務的執行控制節點發送的控制命令。第四步是故障恢復。在出現事務并發執行沖突后,系統的網絡或服務器會停運,導致數據無法同步。經過節點協調處理后,故障恢復,各個節點數據庫的數據重新保持一致。第五步是完成事務處理,并記錄故障信息,同步更新故障表。
2.4.1 實驗環境
在實驗室環境下使用5 臺Linux 服務器和局域網搭建了小型的仿真實驗裝置。選用Oracle 數據庫,數據庫與節點服務器之間一對一連接,5 臺節點服務器與局域網并聯,彼此之間互不影響。
2.4.2 實驗內容及結果
為了更加直觀地表示基于節點協調策略的數據同步模型在并發沖突處理上的高效性,設計了一組對照實驗。其中對照組為傳統的采用固定中心節點的數據同步模型;實驗組為基于節點協調策略的數據同步模型,分別進行5 組試驗。
實驗1:系統中設有1 個節點,使兩個系統的節點在同一時刻產生1 條事務更新。計算從系統獲取更新事務到其他節點全部接收到更新事務的用時;實驗2:在實驗1 的基礎上再增設1 個節點,仍然讓每個節點在同一時刻產生1 條事務更新,計算用時;實驗3、4、5均在上一組實驗的基礎上增加1 個節點,其他實驗內容保持不變。統計實驗結果見表1。

表1 更新事務傳輸耗時
以節點數目為x 軸,以傳輸耗時為y 軸,根據表1數據繪制二維坐標圖,如圖2 所示。
綜合表1 和圖2 可以發現,在節點數目為1 時,兩者之間更新事務傳輸耗時一致,均為0.30 ms。但是隨著節點數量的增加,傳統模型更新事務傳輸耗時明顯要高于基于節點協調策略的數據同步模型。其中,當節點數目增加至5 個時,傳統模型更新事務傳輸耗時達到了21.05 ms,而基于節點協調策略的數據同步模型用時僅為7.77 ms,用時縮短了63.1%。分析其原因,傳統模型在遇到節點事務更新后,分支節點需要將更新事務發送給中心節點,等到中心節點處理后再協調各個節點完成數據同步。節點越多的情況下,中心節點的運行負載越大,處理時間越長。相比之下,基于節點協調策略的數據同步模型,各個節點地位平等,在出現事務更新后可直接由對應的節點完成處理,從而大幅度減少了傳輸耗時。

圖2 更新事務傳輸耗時對比
近年來網絡安全問題引起了社會各界的高度關注,數據丟失、隱私泄露等問題的頻繁發生不僅直接損害了個人、企業的利益,而且也不利于社會經濟的發展。在這一背景下,網絡安全監管系統得到了廣泛應用,它是基于協議分析、訪問控制、事件審計等一系列技術,對被監管主機的重要信息、關鍵數據等進行實時監控。一旦出現異常訪問或越權操作,則立即終止操作,從而切實保障了網絡安全,保障了信息隱私。某網絡安全監管系統采用Oracle 9i 數據庫,運行服務器為Linux 95,系統采用分布式結構,需要實現對等數據同步功能。對數據庫系統提出了以下要求:第一是采用基于事務的數據同步更新,保證關鍵數據在更新后立刻同步至其他節點;第二是任意一個節點都具備對關鍵數據的操作權利,保證節點之間地位平等,提高事務更新響應速度;第三是數據同步期間不會因為某個節點故障而受到干擾。同時在網絡故障恢復后能夠自動恢復數據直到數據完全同步。基于上述需求,設計了一種基于節點協調策略的完全對等數據同步模型,將其應用到該網絡安全監管系統中。
3.2.1 注冊新節點
在數據同步系統中,需要添加新的節點時必須要提前將該節點的相關信息錄入到注冊機服務端。在注冊信息列表中查詢到該節點的信息,才能使該節點正常投入運行,同時更新后的注冊信息列表也會同步更新至節點服務端。其中,注冊機服務端擁有管理權限,而節點服務端只具備閱讀、申請修改的權限。注冊信息列表的結構見表2。

表2 注冊信息表結構
由于該系統中所有節點的地位平等,因此注冊流程也基本一致。首先,節點服務端的服務器收集的IP地址、端口號等配置信息,并打包發送至注冊機服務端。在順利接收到與新增節點有關的注冊信息后,注冊機服務器將該信息儲存到注冊信息表中,并刷新一次信息表,這時系統會按照注冊順序自動生成節點編號。完成注冊后,注冊機服務器將注冊信息表同步更新到該分布式網絡下的各個節點。
3.2.2 新節點初始化
出版結構表是一種用于描述在對等數據同步時數據庫中關鍵數據的表結構,其功能主要有兩個,即記錄初始化數據和記錄事務同步時的關鍵數據。通常情況下,當注冊機服務端在接收到新節點注冊請求后,會自動生成新的出版結構表,并根據新節點注冊信息自動填充表格內容,包括表ID、表名字、數據類型等。除了出版結構表外,新節點初始化中還需要建立事務日志表,其作用是提供節點初始化關鍵數據的同步服務。新節點的初始化過程如圖3 所示。

圖3 新節點初始化過程
3.2.3 完全對等數據同步
在新節點初始化以后,進入數據同步環節。完全對等數據同步分3 個步驟實現,分別是事務獲取與發送、事務接收與并發處理、事務執行與數據沖突處理。位于節點端的事務獲取模塊,會按照特定頻率采集數據庫的活動事務,若沒有檢測到事務更新,則重復檢測,直到檢測到新的活動事務。然后讀取事務更新內容,并加蓋時間戳,將其添加至本地事務列表中。系統會根據時間順序依次讀取節點信息,若節點正常,則向該節點發送更新事務;若節點異常,則將更新事務寫入故障數據表,重新尋找其他可行節點進行處理。節點服務端在接收到更新事務信息后,立即做并發沖突檢測,利用預設的沖突處理程序完成并發沖突的處理。處理完畢后,根據節點協調策略,將更新事務同步到其他節點上,從而保證了數據一致性。
現階段一些大容量的數據庫,為了保證數據安全和提高數據查詢速度,通常會采用分布式結構。面對海量化的數據,應用數據同步技術可以讓數據庫系統各個分布式節點上的數據做到同步更新、完全一致,對降低數據庫系統的運行負荷和提高操作響應速度有顯著作用。本文設計的一種基于節點協調策略的完全對等數據同步模型,無論是在仿真實驗還是在實際應用中,更新事務傳輸耗時均明顯低于傳統的數據同步模型,在大型信息系統中具有推廣應用價值。