摘要:介紹了分布式數據庫的特點以及在企業MIS/ERP系統中的應用和數據分布特性,闡述了松耦合分布式數據環境中的數據庫復制技術。
關鍵詞:分布式數據庫;松耦合;數據分片;數據庫復制
引言
當今社會飛速發展,許多企業的經營和管理規模不斷擴大,營業和管理機構的分散造成了業務數據的分散,總公司與各分公司處于不同的城市或城市中的各個地區,在業務上它們處理各自的數據,但也需要彼此之間數據的交換和處理,如何協調處理分散的數據和集中的管理,是企業發展的關鍵問題之一,也是MIS/ERP系統開發者要研究和解決的重點。分布式數據庫系統技術在這個方面就起到了至關重要的作用,使企業在運作中能夠得心應手地管理處于分布環境下的各種數據。
1 分布式數據庫特點介紹
分布式數據庫(DDB)的數據分布在計算機網絡的不同節點(亦稱場地)上,網絡中的每個節點具有獨立處理的能力(稱為場地自治),可以執行局部應用,同時,每個節點也能通過網絡系統執行全局應用。系統強調節點的自治性而不強調系統的集中控制,且應保持數據的分布透明性,在編寫應用程序時可完全不考慮數據的分布情況。分布式數據庫的顯著特點是:
(1)分布性
數據庫中的數據不是存儲在同一計算機。這有別于集中式數據庫。
(2)邏輯相關性
數據庫邏輯上是相互聯系的一個整體,而不是分散的局部物理數據庫的集合。
(3)分布式透明性
所謂分布式透明性就是在編寫程序時好像數據沒有被分布一樣,因此,數據轉移不會影響程序的正確性。
(4)數據冗余
與集中式數據庫系統不同,數據冗余是分布式系統的重要特性,其原因在于:首先,如果在需要的節點復制數據,則可以提高系統局部的應用能力。其次,當某節點發生故障時,可以操作其它節點上的復制數據,因此,提高了系統的有效性。
(5)數據存儲途徑
在分布式數據庫中,數據存儲通過以下三種途徑實現。
復制:系統維護多個完全相同的副本,這些副本存儲在不同的節點上。
分片:關系被劃分為幾個片段,各個片段存儲在不同的節點上。
復制+分片:關系被劃分為幾個片段,系統為每個片段維護幾個副本。
2 分布式數據庫技術在企業數據管理中的應用現狀及特點
在多數使用了分布式數據庫的企業MIS/ERP系統中,總公司與各分公司處于不同的城市或城市中的各個地區,在業務上它們處理各自的數據,但彼此之間也需要進行數據交換和處理。這種處理一般有兩種情況:一種是數據的交換和處理必須實時進行以確保數據庫的緊密一致性;另一種是定期地進行數據交換和處理,甚至只在必要時進行,這種方式對于數據庫的一致性在時間上要求不高,各場地間保持松耦合狀態,每個營業機構處理的是本機構的數據,各營業機構之間或下級營業機構與上級營業機構之間只是定期進行數據的交換。大多數企業MIS/ERP應用都是采用松耦合分布式數據環境。
松耦合分布式數據環境從全局應用的角度出發,將分公司的所有數據庫自下而上構成分布式數據庫系統,實現全局數據的完整性和一致性,各營業機構存放本機構的數據,總公司的數據庫則存放所有業務數據,并對數據進行完整性和一致性的檢查。這種做法雖然有一定的數據冗余,但在不同場地存儲同一數據的多個副本,能提高系統的可靠性和可用性,同時提高局部應用的效率,減少通訊代價。分布式數據庫系統可以在對當前機構影響最小的情況下進行擴充,增加新的營業機構時只需增加一個節點就可以了,同時也使得各處理機之間的相互干擾降到最低。
3 數據庫復制技術在松耦合分布式數據環境中的實現
分布式數據庫系統可以通過復制、分片和復制加分片三種方式存儲數據。因為各數據庫之間存在一定的數據冗余,又存在著差異,我們使用了復制十分片的方式進行數據存儲。
3.1 數據分片
在分布式數據庫系統中,將關系分片,有利于按用戶需求組織數據,目前的分片方式有水平分片、垂直分片、導出分片、混合分片等四種。我們根據不同的數據關系采用了不同的分片方式:
水平分片對于總公司與分支營業機構的數據關系,由于分支機構的數據是總公司業務數據的子集,我們采用了水平分片的方式,通過并運算實現關系的重構。
垂直分片對于總公司數據庫服務器與Web數據庫服務器的數據關系,數據是按照其應用功能來劃分的,所以我們采用了垂直分片的方式。
3.2 數據庫復制技術
3.2.1選用數據庫復制技術的原因
數據庫復制技術是在數據庫之間對數據和數據庫對象進行復制和分發并進行同步以確保其一致性的一組技術。企業生產管理的數據環境特性是:①數據中心(總公司)的新數據或處理后的數據需要復制或分發至一個或多個數據分中心(各營業廳)。②各個數據分中心的數據被匯總到數據中心服務器上,然后由數據中心服務器加以歸并整合。因此,我們選擇使用數據庫復制技術作為這種松耦合分布式數據環境的解決方案。
3.2.2解決方案
數據庫復制的過程不像一般的數據傳遞,它更要將數據進行同步處理。由于總公司數據庫服務器與Web服務器之間的數據交換是雙向的,總公司業務管理和營業所業務管理都會產生新的業務數據,所以我們使用合并復制方式實現數據同步:把總公司數據庫服務器設置為出版者,Web數據庫服務器設置為訂閱者,合并復制監視源數據庫中的改變,并同步出版者和訂閱者的數據值,其中無論是出版者還是訂閱者均可以更新數據。當出版者同訂閱者發生沖突時,我們將出版者設置為高優先級。與此類似,目的數據庫中的數據改變將被告知源數據庫。合并復制涉及快照代理和合并代理的參與。快照代理將準備包含有被出版數據表的結構與數據的快照文件,在分發者上存儲這些文件,并在分發者的分發數據庫中記錄同步任務。合并代理應用存儲在出版數據庫表中的初始快照任務于訂閱者;它也合并在最初快照建立后改變的數據,并依據用戶配置的規則或使用用戶自定義的解決方法來協調沖突。
3.2.3具體實施步驟
(1)數據中心配置發布服務器和分發服務器,指定發布數據庫和分發數據庫和發布類型(合并發布),指定存儲快照文件夾的根位置并創建發布。
(2)數據中心創建請求訂閱,添加或指定注冊的訂閱服務器。
(3)脫機工作時,各個數據分中心可以更新數據。網絡連通后,通過使用請求訂閱,各數據分中心通過訂閱服務器下載數據中心分發的相應數據。
(4)連通數據中心發布數據庫服務器,生成訂閱。訂閱生成后,各個數據分中心更新后的數據將傳送到發布服務器和訂閱服務器,同時進行同步處理檢測并解決沖突。
3.2.4特別說明
在實際操作中,如果由于網絡傳輸速率太低或者掉線會給數據庫復制的初始化工作帶來不便。因此,我們可以采用在數據中心局域網初始化各分中心的訂閱數據庫框架,再將該數據庫用移動存儲的方式移到相應數據分中心的方法解決。
(1)(數據中心)在發布服務器上首先配置發布和分發,使用數據中心局域網的其他計算機作為訂閱服務器,對每個分中心的訂閱內容進行一次初始化訂閱操作(需要用快照初始化框架),以生成相應的訂閱數據庫。
(2)各分中心使用移動存儲將自己已初始化的訂閱數據庫從數據中心移到本地訂閱服務器上。
(3)分中心連通數據中心發布數據庫服務器,生成訂閱(此時不需要初始化框架),訂閱生成后馬上運行同步處理,其間不要更改任何數據(適用發布服務器,訂閱服務器)。
使用這種方式可以有效地避免因網絡傳輸速度慢或者斷網以及發布服務器初始化訂閱服務器框架不易順利進行的問題。以這種方式初始化訂閱數據庫框架后,復制操作按照數據庫復制的規范步驟進行即可。
4 結束語
本文探討了松耦合分布式數據環境中的數據庫復制技術,提出的實現方案有效地解決了企業MIS/ERP的數據中心和數據分中心之間進行數據分發和同步的一致性問題,減少了通訊代價,增強了系統的可靠性和可用性,提高了整個系統運行的效率。