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