楊通國
[摘要]數(shù)據(jù)一致性是分布式數(shù)據(jù)庫系統(tǒng)領域中的一個主要研究方向。在介紹基本概念的基礎上,重點研究針對實時性和場地自治性的不同要求所采取的維護數(shù)據(jù)一致性的方法。
[關鍵詞]數(shù)據(jù)一致性 分布式數(shù)據(jù)庫 數(shù)據(jù)復制同步
中圖分類號:TP3文獻標識碼:A文章編號:1671-7597(2009)0310062-01
一、引言
隨著計算機應用技術的不斷推廣和使用的不斷深入,人們對計算機的依賴越來越強,同時對計算機的要求也越來越高。傳統(tǒng)的單計算機系統(tǒng)在功能和性能上已經(jīng)不能滿足人們的需要,由網(wǎng)絡連接多臺計算機系統(tǒng)所構成的分布式系統(tǒng)已經(jīng)成為當今的主流系統(tǒng)。在數(shù)據(jù)庫領域中,分布式數(shù)據(jù)庫(DDBS,Distributed Database System)技術已成為一個主要研究方向。
由于分布式數(shù)據(jù)庫系統(tǒng)符合當今信息系統(tǒng)應用的需求,符合當今企業(yè)組織的管理思想和管理方式,因此分布式數(shù)據(jù)庫得到了廣泛的應用,同時,業(yè)內(nèi)對分布式數(shù)據(jù)庫系統(tǒng)的研究和開發(fā)變得更加活躍。在分布式數(shù)據(jù)庫中,出于應用或安全等方面的原因,會使同一個數(shù)據(jù)塊重復出現(xiàn)在多個結點中,這樣就出現(xiàn)了數(shù)據(jù)冗余。如果各結點的數(shù)據(jù)庫平臺不一定相同,如何以最小的開銷保持數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是分布式系統(tǒng)必須解決的問題。
二、基本概念
(一)分布式數(shù)據(jù)庫系統(tǒng)
分布式數(shù)據(jù)庫系統(tǒng),通俗地說,就是物理上分散而邏輯上集中的數(shù)據(jù)庫系統(tǒng)。分布式數(shù)據(jù)庫系統(tǒng)使用計算機網(wǎng)絡將地理位置分散而管理和控制又需要不同程度集中的多個邏輯單位(通常是集中式數(shù)據(jù)庫系統(tǒng))聯(lián)接起來,共同組成一個統(tǒng)一的數(shù)據(jù)庫系統(tǒng)[1]。因此,分布式數(shù)據(jù)庫系統(tǒng)可以看成是計算機網(wǎng)絡與數(shù)據(jù)庫系統(tǒng)的有機結合,如圖2-1所示:
在分布式數(shù)據(jù)庫系統(tǒng)中,被計算機網(wǎng)絡聯(lián)結的每個邏輯單位,稱為站點(Site)或結點(Node)。所謂地理位置分散是指各站點分散在不同的地方,大可為不同國家,小可為同一建筑物中的不同位置。所謂邏輯上集中是指各站點之間不是互不相關的,它們是一個邏輯整體,并由一個統(tǒng)一的數(shù)據(jù)庫管理系統(tǒng)進行管理,這個數(shù)據(jù)庫管理系統(tǒng)稱為分布式數(shù)據(jù)庫管理系統(tǒng)(Distributed Database Management System,簡稱DDBMS)。
(二)事務
所謂“事務”是一系列由單個用戶或應用程序提交的數(shù)據(jù)庫操作,這些操作是一個不可分割的整體[2]。即要么完全的執(zhí)行,要么完全不執(zhí)行。事務將數(shù)據(jù)庫從一個一致性狀態(tài)轉變到另一個一致性狀態(tài)。即事務執(zhí)行之前和事務執(zhí)行之后,數(shù)據(jù)庫都處于一致性狀態(tài)。但這種一致性在事務的執(zhí)行過程中將不被保證。
三、數(shù)據(jù)一致性的維護方法
根據(jù)數(shù)據(jù)實時性和場地自治性的不同要求,數(shù)據(jù)一致性的維護方法可以分為:
1.分布式事務處理:具有最小的場地自治性和最小的數(shù)據(jù)一致性延遲。采用兩階段事務處理提交機制,確保數(shù)據(jù)更改要么全部施加于所有副本集合的成員上,要么全部撤消,各個場點數(shù)據(jù)狀態(tài)回到更改前的狀態(tài)。
2.事務級數(shù)據(jù)復制一致性:具有較小的場地自治性和較小的數(shù)據(jù)一致性延遲。這種方式分為兩種:允許數(shù)據(jù)訂閱者更新數(shù)據(jù)的事務級數(shù)據(jù)復制同步,在這種機制下,不僅允許數(shù)據(jù)出版者對所出版數(shù)據(jù)進行更新,同時允許數(shù)據(jù)訂閱者對訂閱的數(shù)據(jù)進行更新;不允許數(shù)據(jù)訂閱者更新數(shù)據(jù)的事務級數(shù)據(jù)復制同步,在這種機制下,僅允許數(shù)據(jù)出版者對所出版數(shù)據(jù)進行更新,而數(shù)據(jù)訂閱者場點僅允許被動接受訂閱的數(shù)據(jù)。
3.靜態(tài)數(shù)據(jù)復制一致性:具有較高的場地自治性和較高的數(shù)據(jù)一致性延遲。這種方式分為兩種:允許數(shù)據(jù)訂閱者更新數(shù)據(jù)的靜態(tài)數(shù)據(jù)復制同步,在這種機制下,不僅允許數(shù)據(jù)出版者對所出版數(shù)據(jù)進行更新,同時允許數(shù)據(jù)訂閱者對訂閱的數(shù)據(jù)進行更新;不允許數(shù)據(jù)訂閱者更新數(shù)據(jù)的靜態(tài)數(shù)據(jù)復制同步,在這種機制下,僅允許數(shù)據(jù)出版者對所出版數(shù)據(jù)進行更新,而數(shù)據(jù)訂閱者場點僅允許被動接受訂閱的數(shù)據(jù)。
4.數(shù)據(jù)合并復制一致性:具有最高的場地自治性和最高的數(shù)據(jù)一致性延遲。在這種機制下,不僅允許數(shù)據(jù)出版者對所出版數(shù)據(jù)進行更新,同時允許數(shù)據(jù)訂閱者對訂閱的數(shù)據(jù)進行更新。根據(jù)復制的內(nèi)容又可以分為兩大類:
表復制技術,表復制技術采用把某一時刻源數(shù)據(jù)的表的內(nèi)容通過網(wǎng)絡發(fā)送到復制的副本,因為復制的內(nèi)容是表的某一時刻的狀態(tài),所以又形象地稱為表快照,多長時間進行一次表快照的復制,要根據(jù)實際的需求和環(huán)境決定[3]。表快照的復制是基于表的復制。由于不是以事務為基礎,所以副本缺乏基本的關系完整性。
事務復制技術:事務復制技術是異步地把修改源數(shù)據(jù)的事務通過網(wǎng)絡發(fā)送到復制的副本,復制可以是修改的表項事務或事務日志。復制的時間可根據(jù)應用需求、網(wǎng)絡情況和站點情況而確定。副本接收到復制內(nèi)容后,要重復一遍接收到的事務操作來實現(xiàn)與數(shù)據(jù)源的一致。
四、小結
總之,隨著網(wǎng)絡技術的飛速發(fā)展,分布式數(shù)據(jù)庫系統(tǒng)的廣泛應用,數(shù)據(jù)復制愈顯重要。特別是對于分布式數(shù)據(jù)庫的數(shù)據(jù)一致性維護,在需求分析時對復制對象、復制類型、沖突解決方法等都必須有良好的規(guī)劃,在實現(xiàn)復制時必須按復制流程進行配置。
參考文獻:
[1]潘群華、吳秋云、陳宏盛,分布式數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)一致性維護方法[J].計算機工程,2002,(09):12-15.
[2]林懷忠、陳純、吳震華,數(shù)據(jù)復制與一致性[J].計算機工程與應用,2001,(20):44-47.
[3]勒敏、劉建輝,分布式數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)一致性維護方法[J].科技廣場,2008,(03):31-33.