基于數(shù)據(jù)庫復制技術的數(shù)據(jù)轉移方案設計與實現(xiàn)-畢業(yè)論文_第1頁
基于數(shù)據(jù)庫復制技術的數(shù)據(jù)轉移方案設計與實現(xiàn)-畢業(yè)論文_第2頁
基于數(shù)據(jù)庫復制技術的數(shù)據(jù)轉移方案設計與實現(xiàn)-畢業(yè)論文_第3頁
基于數(shù)據(jù)庫復制技術的數(shù)據(jù)轉移方案設計與實現(xiàn)-畢業(yè)論文_第4頁
基于數(shù)據(jù)庫復制技術的數(shù)據(jù)轉移方案設計與實現(xiàn)-畢業(yè)論文_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

本科畢業(yè)論文本科畢業(yè)論文(科研訓練、畢業(yè)設計)題題 目:目:基于數(shù)據(jù)庫復制技術的數(shù)據(jù)轉移方案設計與實現(xiàn)姓 名:學 院:軟件學院系:專 業(yè):軟件工程年 級:級二學位學 號:指導教師(校內): 職稱:教授指導教師(校外): 職稱:2005 年 05 月 31 日基于數(shù)據(jù)庫復制技術的數(shù)據(jù)轉移方案設計與實現(xiàn)基于數(shù)據(jù)庫復制技術的數(shù)據(jù)轉移方案設計與實現(xiàn)摘要 數(shù)據(jù)庫復制是分布式環(huán)境中的一項關鍵技術。同時在分布式環(huán)境中,數(shù)據(jù)庫異構現(xiàn)象越來越普遍,研究異構數(shù)據(jù)庫復制無論在理論上還是在實際運用中上都具有非常重要的意義。作為全部工作的基礎,本文從數(shù)據(jù)庫復制技術的發(fā)展與現(xiàn)狀,數(shù)據(jù)庫復制技術的主要步驟等方面對數(shù)據(jù)庫復制實現(xiàn)的關鍵方法和技術做了分析和歸納?;谇懊娴姆治隹偨Y,根據(jù)實際項目的特點,本文提出一種與數(shù)據(jù)庫系統(tǒng)無關,完全異構,具有一定通用性的數(shù)據(jù)庫復制技術基于 SQL 的復制技術,并在此基礎上提出數(shù)據(jù)轉移方案。本文重點介紹了基于SQL 的數(shù)據(jù)庫復制技術的數(shù)據(jù)轉移方案,包括設計思路、技術特點及存在問題等。基于這些內容的研究,開發(fā)了 Transbuilder 數(shù)據(jù)轉移工具,對基于 SQL 的數(shù)據(jù)庫復制技術進行了實驗。最后,本文總結了課題的研究成果,概述了要進一步研究和實踐的工作。關鍵詞 數(shù)據(jù)庫復制 異構數(shù)據(jù)庫 數(shù)據(jù)轉移 數(shù)據(jù)轉換基于數(shù)據(jù)庫復制技術的數(shù)據(jù)轉移方案設計與實現(xiàn)Design and Implementation of Data Integration Based on Database ReplicationAbstract Database replication is one of the key techniques in distributed environment. However, Heterogeneity is one of the important features in distributed environment. The development of heterogeneous database address concerns in the research on heterogeneous database replication system. Firstly, this thesis introduces database replication technique and its current application, and analyzes several replication solution provided by diffident database corporations. It is found that in some extents those solutions lack of low compatibility and generality. Based on the study on data replication, the thesis advances a fully heterogeneous database replication method, a replication method based on SQL. This thesis also sums up the advantages and disadvantage of this technique. The author integrates this technique with practice in Xiamen University data integration project. The result proved that this technique is feasible. It would benefits for many fields. At last, this thesis sums up the productions of this subject and plans the future analysis. Key Words Database Replication; Heterogeneous Database; Data Integration; Data Transform基于數(shù)據(jù)庫復制技術的數(shù)據(jù)轉移方案設計與實現(xiàn)目錄第 1 章 引言.11.1課題背景.11.2課題研究的理論的實際意義.11.3相關領域的研究進展和成果.11.4課題研究內容.21.5本文的組織.2第 2 章 數(shù)據(jù)庫復制技術.32.1相關概念.32.2數(shù)據(jù)庫復制技術.42.3主要環(huán)節(jié).72.4發(fā)展與現(xiàn)狀.92.5本章小結.10第 3 章 現(xiàn)有異構數(shù)據(jù)庫復制方案.113.1ORACLE的轉換器方案 .113.2SYBASE 復制服務器方案 .113.3IBM DB2 信息集成解決方案 .123.4MICROSOFT的出版者/訂閱者方案 .123.5本章小結.13第 4 章 基于數(shù)據(jù)庫復制技術的數(shù)據(jù)轉移方案.144.1基礎概念.144.2設計思路.154.3技術特點.174.4可能存在問題.184.5本章小結.18第 5 章 技術實現(xiàn).195.1實驗環(huán)境.195.2應用背景.195.3設計與功能分析.215.4原型實現(xiàn).235.5本章小結.30第 6 章 結論.31基于數(shù)據(jù)庫復制技術的數(shù)據(jù)轉移方案設計與實現(xiàn) 1第 1 章引言引言1.1 課題背景信息化是當今世界經濟和社會發(fā)展的大趨勢,以信息技術為達標的科學技術的迅猛發(fā)展,對人類的生產方式、思維方式以及學習方式等都產生了重大的影響。信息時代的學習與以多媒體和網絡技術為核心的信息技術的發(fā)展密切相關。那么我國的高等教育如何迎接信息化所提出的挑戰(zhàn)?如何充分利用新技術所提供的巨大潛力構件二十一世紀的高等教育模式?數(shù)字化校園正是在這樣的環(huán)境和形勢下被高校作為了自身不斷發(fā)展的必要性建設。然而,由于學校各個部門學院在數(shù)字化校園建設前都普遍存有自己的系統(tǒng),出現(xiàn)了一個現(xiàn)象單獨的部門系統(tǒng)建設比較強,互聯(lián)互通苦難。如何有效整合現(xiàn)有系統(tǒng)及數(shù)據(jù)是數(shù)字校園建設的一個重要問題。數(shù)據(jù)整合是信息化建設過程經常遇到的一個現(xiàn)實問題。這也是制約高校信息化建設和數(shù)據(jù)共享程度的一個重要因素。數(shù)據(jù)整合包括數(shù)據(jù)轉換和數(shù)據(jù)遷移,也就是本文所提到的數(shù)據(jù)轉移。根據(jù)實際項目及一些理論研究,作者提出了基于異構數(shù)據(jù)庫復制技術的數(shù)據(jù)轉移方案。1.2 課題研究的理論和實際意義由于經濟、技術、人為等因素的影響,高校信息化建設中的各個子系統(tǒng)數(shù)據(jù)庫間存在著很大的異構性,這又給數(shù)據(jù)整合帶來了更大的挑戰(zhàn)。異構數(shù)據(jù)庫復制技術可以有效地解決這一問題。異構數(shù)據(jù)庫復制就是異構數(shù)據(jù)庫與數(shù)據(jù)庫復制的結合。異構數(shù)據(jù)庫復制技術是一種與數(shù)據(jù)庫系統(tǒng)無關,完全異構的復制技術,可以保證數(shù)據(jù)遷移的完整性和準確性,也可以保證數(shù)據(jù)整合項目的順利進行。1.3 相關領域的研究進展和成果目前在這個數(shù)據(jù)轉移領域已經有了一些研究。大多數(shù)數(shù)據(jù)庫生產廠商對數(shù)據(jù)轉移均提出相應方案并且開發(fā)相關工具,比如 Microsoft DTS 轉換工具、ORACLE 的移植工作臺、Informix 的 InfoMover 等。這些工具都在一定范圍內解決了數(shù)據(jù)的提取和轉換等工作。但這些工具基本都不能自動完成數(shù)據(jù)的抽取,用戶還需利用這些工具編寫適當?shù)霓D換程序1。這些工具都可以從多個不同的業(yè)務系統(tǒng),多個平臺的數(shù)據(jù)源中抽取數(shù)據(jù),完成轉換和清洗等。但是這些方案,一般形式單一,且都基于廠商的實際利益出發(fā),希望用戶把其他數(shù)據(jù)庫都移植到自己的產品上來,而且一般價格昂貴,這給用戶帶來很大的不便。在第三方產品中,Ascential Software 公司的 DataStage 是一套相對比較完善的產品. DataStage 可以從多個不同的業(yè)務系統(tǒng)中,從多個平臺的數(shù)據(jù)源中抽取數(shù)據(jù),完成轉換和清洗,裝載到各種系統(tǒng)里面。其中每步都可以在圖形化工具里完成,同樣可以靈活的被外部系統(tǒng)調度,提供專門的設計工具來設計轉換規(guī)則和清洗規(guī)則等,實現(xiàn)了增量抽取、任務調度等基于數(shù)據(jù)庫復制技術的數(shù)據(jù)轉移方案設計與實現(xiàn)多種復雜而實用的功能。2005 年 4 月日立數(shù)據(jù)推出首款動態(tài)多維數(shù)據(jù)遷移解決方案具有較大的突破性。這個方案可根據(jù)訪問形式的變化來管理數(shù)據(jù)的遷移,為需要不同類型數(shù)據(jù)管理的應用提供信息訪問。1.4 課題研究內容作者有幸參加了廈門大學信息化建設項目,項目組成立于 2004 年 5 月。作者所在的科研管理系統(tǒng)開發(fā)小組由七位開發(fā)人員組成,其組織如下圖 1-1 所示。圖 1-1 科研管理系統(tǒng)開發(fā)團隊協(xié)作圖作者在項目中負責數(shù)據(jù)轉換移植工具開發(fā),在本文,其主要研究內容包括兩個方面:1. 數(shù)據(jù)庫復制實現(xiàn)方法和技術的歸納和總結。作為整個論文工作的基礎,本文首先介紹了數(shù)據(jù)庫復制技術的基本概念,然后分析討論了數(shù)據(jù)庫復制的主要環(huán)節(jié)及發(fā)展與現(xiàn)狀,并且分析比較目前多數(shù)數(shù)據(jù)庫廠商提出并實現(xiàn)了異構數(shù)據(jù)庫復制方案。2. 基于異構數(shù)據(jù)庫復制技術的數(shù)據(jù)轉移方案的提出、設計與實現(xiàn)。從項目背景、需求分析、系統(tǒng)設計與實現(xiàn)詳細介紹了對基于異構數(shù)據(jù)庫復制技術的數(shù)據(jù)轉移方案,并分析其技術特點及不足。1.5 本文的組織本文共分六章。文章的結構安排如下:第1章引言,闡明了本研究課題的產生背景、研究的理論與實際意義、相關領域的研究進展和成果及主要研究內容。第2章對數(shù)據(jù)庫復制的相關概念做了簡單介紹,對復制技術實現(xiàn)的關鍵方法和技術進行了歸納和總結,最后對現(xiàn)有異構數(shù)據(jù)庫復制技術做了介紹。第3章分析并總結了目前最常用的四種異構數(shù)據(jù)庫復制方案。第4章詳細介紹了基于SQL的異構數(shù)據(jù)庫復制技術的數(shù)據(jù)轉移方案,提出了設計思路、技術特點等。第5章介紹了技術的原型實現(xiàn):Transbuilder系統(tǒng),總結了系統(tǒng)的優(yōu)點與不足。最后,對本課題研究的結論進行了總結,并談了對進一步工作的構想?;跀?shù)據(jù)庫復制技術的數(shù)據(jù)轉移方案設計與實現(xiàn)第 2 章數(shù)據(jù)庫復制技術針對數(shù)據(jù)庫復制,研究界和產業(yè)界多年來進行了深入的研究,取得了許多成果。本章在分析研究這些成果的基礎上,對其中的關鍵方法和技術進行了總結歸納,以此作為全文工作的基礎,內容主要包括數(shù)據(jù)庫復制的發(fā)展和現(xiàn)狀,以及數(shù)據(jù)庫復制的兩個組成環(huán)節(jié):變化捕獲與數(shù)據(jù)分發(fā)。2.1 相關概念本節(jié)對數(shù)據(jù)庫復制的一些相關概念做簡單介紹。2.1.1分布式數(shù)據(jù)庫系統(tǒng) 分布式數(shù)據(jù)庫系統(tǒng)是由若干個站集合而成。這些站又稱為節(jié)點,它們在通訊網絡中聯(lián)接在一起,每個節(jié)點都是一個獨立的數(shù)據(jù)庫系統(tǒng),它們都擁有各自的數(shù)據(jù)庫、中央處理機、終端,以及各自的局部數(shù)據(jù)庫管理系統(tǒng)。因此分布式數(shù)據(jù)庫系統(tǒng)可以看作是一系列集中式數(shù)據(jù)庫系統(tǒng)的聯(lián)合。它們在邏輯上屬于同一系統(tǒng),但在物理結構上是分布式的。2.1.2異構數(shù)據(jù)庫由于不同的數(shù)據(jù)庫系統(tǒng)是由不同的生產廠商生產的,為了保證各自的應用特性、完整性控制和安全性控制,各個數(shù)據(jù)庫系統(tǒng)間往往表現(xiàn)出很大的異構性。異構數(shù)據(jù)庫系統(tǒng)的異構性主要體現(xiàn)在以下幾個方面: 1. 計算機體系結構的異構。各個參與的數(shù)據(jù)庫可以分別運行在大型機、小型機、工作站、個人計算機或嵌入式系統(tǒng)中。 2. 基礎操作系統(tǒng)的異構。各個數(shù)據(jù)庫系統(tǒng)的基礎操作系統(tǒng)可以是 Unix、Windows NT、Linux 等。3. 數(shù)據(jù)庫系統(tǒng)本身的異構。數(shù)據(jù)庫系統(tǒng)可以是同為關系型數(shù)據(jù)庫系統(tǒng)的Oracle、Microsoft SQL Server 等,也可以是不同數(shù)據(jù)模型的數(shù)據(jù)庫,如關系、模式、層次、網絡、面向對象、函數(shù)型數(shù)據(jù)庫等共同組成一個異構數(shù)據(jù)庫系統(tǒng)。2.1.3數(shù)據(jù)庫復制數(shù)據(jù)庫復制是將一組數(shù)據(jù)從一個數(shù)據(jù)源拷貝到多個數(shù)據(jù)源的技術,是將一份數(shù)據(jù)發(fā)布到多個存儲站點上的有效方式。使用復制技術,用戶可以將一份數(shù)據(jù)發(fā)布到多臺服務器上,從而使不同的服務器用戶都可以在權限的許可的范圍內共享這份數(shù)據(jù)。復制技術可以確保分布在不同地點的數(shù)據(jù)自動同步更新,從而保證數(shù)據(jù)的一致性?;跀?shù)據(jù)庫復制技術的數(shù)據(jù)轉移方案設計與實現(xiàn)2.1.4事務事務就是一個單元的工作,包括一系列的操作這些操作要么全部成功,要么全部失敗。事務必須滿足 ACID 屬性。ACID 的含義就是原子性(Atomic)、一致性(Consistent)、隔離性(Isolated)、和持久性(Durable)等屬性。2.1.5主節(jié)點與從節(jié)點節(jié)點:在復制系統(tǒng)中,每臺數(shù)據(jù)庫服務器稱為一個節(jié)點。主節(jié)點:運行主數(shù)據(jù)庫的節(jié)點。從節(jié)點:運行從數(shù)據(jù)庫的節(jié)點。2.1.6主數(shù)據(jù)庫與從數(shù)據(jù)庫主數(shù)據(jù)庫:具有自主數(shù)據(jù)表和相應支持對象、對客戶端提供數(shù)據(jù)服務的數(shù)據(jù)庫服務器。從數(shù)據(jù)庫:沒有自主數(shù)據(jù)表,而是通過建立數(shù)據(jù)庫連接與主數(shù)據(jù)庫建立聯(lián)系,存放主數(shù)據(jù)庫的部分或全部數(shù)據(jù)的副本的數(shù)據(jù)庫,也稱為復制數(shù)據(jù)庫。2.2 數(shù)據(jù)庫復制技術本節(jié)首先從復制分類和體系結構等方面對數(shù)據(jù)庫復制技術做一個大概的介紹。2.2.1復制分類數(shù)據(jù)庫復制通常可被劃分為兩種類型:同步復制和異步復制。1. 同步復制(Synchronous Replication)同步復制采用同步分發(fā)數(shù)據(jù)庫技術,復制數(shù)據(jù)在任何時間、任何復制節(jié)點均保持一致。如果復制環(huán)境中的任何一個節(jié)點的復制數(shù)據(jù)發(fā)生了更新操作,這種變化會立刻反映到其它所有復制節(jié)點。為了保證源數(shù)據(jù)和目標數(shù)據(jù)的一致性,在復制過程中采用了兩階段提交協(xié)議;若目標數(shù)據(jù)庫有多個,則只有當相互連接的每個目標數(shù)據(jù)庫都同意接受該更新事務時,作用在源數(shù)據(jù)上的修改事務和作用在各目標數(shù)據(jù)庫的修改事務才算提交成功,否則,均回滾。同步復制可以保證復制環(huán)境中沒有數(shù)據(jù)沖突的存在。但由于在同步復制環(huán)境中,要求硬件設備和網絡要隨時可用,否則,一旦網絡不穩(wěn)定或硬件設備出現(xiàn)故障,則對源數(shù)據(jù)的修改和對目的數(shù)據(jù)的復制均會失敗。因此同步復制要耗費更多的硬件和網絡資源?;跀?shù)據(jù)庫復制技術的數(shù)據(jù)轉移方案設計與實現(xiàn)2. 異步復制(Asynchronous Replication)異步復制,對執(zhí)行時間的要求就相對要比較松一些。異步復制采用異步分發(fā)數(shù)據(jù)庫技術,也稱為存儲轉發(fā)復制,所有復制節(jié)點的數(shù)據(jù)在一定時間內是不同步的。如果復制環(huán)境中的其中的一個節(jié)點的復制數(shù)據(jù)發(fā)生了更新操作,這種改變將在不同的事務中被傳播和應用到其它所有復制節(jié)點。這些不同的事務間可以間隔幾秒,幾分鐘,幾小時,也可以是幾天。復制節(jié)點之間的數(shù)據(jù)臨時是不同步的,但傳播最終將保證所有復制節(jié)點間的數(shù)據(jù)一致。在異步復制環(huán)境中,對任何一個復制節(jié)點上復制數(shù)據(jù)的更新將會在本地被捕捉到,生成一個延遲事務放入延遲事務隊列。在預定的時間間隔或是根據(jù)需要,延遲事務隊列中的延遲事務被傳播到其它復制節(jié)點,并在節(jié)點上執(zhí)行。如果事務在一個復制節(jié)點執(zhí)行不成功,只有該節(jié)點的事務被回滾,復制數(shù)據(jù)不進行更新,不會影響到其它的復制節(jié)點。異步復制環(huán)境相對于同步復制環(huán)境而言,要求比較少的網絡和硬件資源,并且提供了更好的可用性和性能。一個復制節(jié)點的失效不會影響到整個系統(tǒng)的正常運行,應用可以從其它的復制節(jié)點獲取數(shù)據(jù)。異步復制環(huán)境中,由于事務的延遲提交會導致系統(tǒng)中復制數(shù)據(jù)的暫時不一致,甚至有時候會產生沖突,如何處理沖突是設計異步復制方案時要考慮的問題。這兩種復制類型的差別是:同步復制是指在事務提交之前,更新操作在所有副本完成,它的優(yōu)點是可以保障副本之間的一致性及較強的容錯性,但它也帶來一系列問題,其中包括:死鎖、通信量增加、節(jié)點規(guī)模的限制及事務響應時間延長;而異步復制是在事務提交之后,更新操作才被傳播到其它節(jié)點,它的優(yōu)點是降低了通信量且縮短了響應時間,因而采用這種方法可提高系統(tǒng)效率,但是它最大的缺點是:先提交,后更改,有可能在不同節(jié)點的副本之間存在不一致性。2.2.2體系結構數(shù)據(jù)庫復制技術的體系結構體現(xiàn)了數(shù)據(jù)復制過程中數(shù)據(jù)源和數(shù)據(jù)目的之間的關系,有以下三種基本的體系結構,2,3,4 。1. 主/從結構(Master-slaver Model)主/從結構是數(shù)據(jù)只能從主數(shù)據(jù)庫中復制到復制數(shù)據(jù)庫中,如圖 2-1。更新數(shù)據(jù)的操作只能在主節(jié)點進行,從節(jié)點僅供用戶讀取數(shù)據(jù)。但當主節(jié)點出現(xiàn)故障時,更新數(shù)據(jù)的應用可以轉到其中一個從節(jié)點上去。這種復制方式實現(xiàn)起來比較簡單,易于維護數(shù)據(jù)一致性。這是一種最簡單的結構?;跀?shù)據(jù)庫復制技術的數(shù)據(jù)轉移方案設計與實現(xiàn)圖 2-1 主從結構2. 對等結構(Peer to peer Model)對等結構就是各個節(jié)點的地位是平等的,可以互相復制數(shù)據(jù),如圖 2-2。用戶可以在任何節(jié)點讀取和更新全局數(shù)據(jù),在某一節(jié)點更新全局數(shù)據(jù)時,數(shù)據(jù)庫會將數(shù)據(jù)傳送到所有其它復制節(jié)點。圖 2-2 對等結構這種復制的體系結構一般會出現(xiàn)兩種情況,一是需要復制的源數(shù)據(jù)分布在多個數(shù)據(jù)庫中,但對每個數(shù)據(jù)而言,全系統(tǒng)只有一個主數(shù)據(jù)庫,每個主數(shù)據(jù)庫有自己的數(shù)據(jù),主數(shù)據(jù)庫更新自己的數(shù)據(jù),然后按約定復制到其它各復制數(shù)據(jù)庫;二是需要復制更新的源數(shù)據(jù)分布在系統(tǒng)的多個數(shù)據(jù)庫中,每個需要復制的數(shù)據(jù)在本地更新,本地數(shù)據(jù)庫就是主數(shù)據(jù)庫,然后按約定復制到其它復制數(shù)據(jù)庫。在這種結構中會產生更新沖突,應用程序必須有辦法解決更新沖突。3. 聯(lián)接結構(Cascade Model)級聯(lián)結構是主/從結構的一個擴展,從主節(jié)點復制過來的數(shù)據(jù)又從該節(jié)點再次復制到其它復制節(jié)點,即A節(jié)點把數(shù)據(jù)復制到B節(jié)點,B節(jié)點又把這些數(shù)據(jù)或其中的部分數(shù)據(jù)基于數(shù)據(jù)庫復制技術的數(shù)據(jù)轉移方案設計與實現(xiàn)再復制到其它節(jié)點,如圖2-3所示。這種結構可以平衡當前各種數(shù)據(jù)需求對網絡通信的壓力。圖 2-3 聯(lián)接結構比較上述三種結構,主/從結構在管理上最簡便,數(shù)據(jù)只能從主數(shù)據(jù)庫中復制到復制數(shù)據(jù)庫中。更新數(shù)據(jù)只能在主節(jié)點上進行,從節(jié)點供用戶讀取數(shù)據(jù)。這種結構實現(xiàn)起來比較簡單,易于維護數(shù)據(jù)一致性,但由于數(shù)據(jù)只能在主數(shù)據(jù)庫進行更新,降低了整個大系統(tǒng)的自治性。對等結構是最靈活的一種結構,它充分體現(xiàn)了分布式數(shù)據(jù)庫的分布特性,各節(jié)點高度自治,可用性好,但它必須在解決修改沖突后才能使復制有效,然而解決修改沖突的難度較大、算法復雜、系統(tǒng)開銷大,因而其管理的代價也很高。聯(lián)接結構在復制過程中能降低網絡開銷,但在復制鏈上的任一環(huán)節(jié)的問題都會引起復制失敗,使其后的所有節(jié)點都無法獲得復制數(shù)據(jù)。這種結構通常與其它兩種結構混合使用。2.3 主要環(huán)節(jié)數(shù)據(jù)庫復制就是通過將源數(shù)據(jù)庫中指定的數(shù)據(jù)復制到目標數(shù)據(jù)庫中,以保持源數(shù)據(jù)庫與目標數(shù)據(jù)庫中指定數(shù)據(jù)的同步,一般包括對源節(jié)點的變化捕獲及數(shù)據(jù)分發(fā)兩個主要環(huán)節(jié)。 2.3.1變化捕獲變化捕獲是數(shù)據(jù)庫復制的基礎,它直接決定了數(shù)據(jù)庫復制的更新方式和選時方式。變化捕獲要獲得復制對象的變化序列。通過對當前使用的變化捕獲方法的綜合分析,本文總結出五種基本變化捕獲形式,分別是基于快照法、基于觸發(fā)器法、基于日志法、基于時間戳和基于 API 法4。1. 基于快照法基于快照法是最簡單的變化捕獲方法,可以在任何數(shù)據(jù)庫甚至是其他結構化和半結構化的數(shù)據(jù)源上實現(xiàn)。它不需要以來特別的機制,不占用額外的系統(tǒng)資源,管理和操作也非常容易,而且在復制初始化和崩潰恢復時是必須的。但由于無法區(qū)分復制對象中哪些記錄具體發(fā)生改變,因此效率很低。Oracle 和 Microsoft SQL Server 提供了基于快照的捕獲方法?;跀?shù)據(jù)庫復制技術的數(shù)據(jù)轉移方案設計與實現(xiàn)2. 基于觸發(fā)器法在源數(shù)據(jù)庫為復制對象創(chuàng)建相應的觸發(fā)器,當對復制對象進行修改、插入和刪除等DML 命令時,觸發(fā)器被喚醒,將變化傳播到目標數(shù)據(jù)庫?;谟|發(fā)器法克服了基于快照法的主要缺點,極大提高了效率,可用于同步復制、增量復制,但是觸發(fā)器捕獲法占用系統(tǒng)資源較多。Oracle 和 IBM DB2 都提供了基于觸發(fā)器的捕獲方法。3. 基于日志法數(shù)據(jù)庫事物日志是維護數(shù)據(jù)完整性和數(shù)據(jù)庫恢復的重要工具,其中包含了全部成功提交的數(shù)據(jù)庫操作記錄信息,基于日志法就是通過分析數(shù)據(jù)庫事務日志的信息來捕獲復制對象的變化序列。因為大多數(shù)數(shù)據(jù)庫都有事務日志,利用日志方便,也不會站用太多額外的系統(tǒng)資源,該方法對任何類型的復制都使用, ;利用事務日志,復制對象的變化很容易在其他節(jié)點再現(xiàn),這能提高效率和保證數(shù)據(jù)的完整性;但基于日志法也存在一些缺點,首先一些數(shù)據(jù)庫系統(tǒng)不公開日志的格式,除非廠家提供響應的日志分析工具或借口,否則要開發(fā)一個基于日志的變化捕獲程序非常困難;其次,盡管都是利用數(shù)據(jù)庫事務日記捕獲變化,但不同數(shù)據(jù)庫系統(tǒng)在具體細節(jié)上還是存在很大差異,這給異構數(shù)據(jù)庫復制帶來了新的麻煩。在實際運用中,基于日志法是最普遍的變化捕獲方法。Microsoft SQL Server、Sybase、IBM DB2 都提供了基于日志法的捕獲方法。4. 基于時間戳法基于時間戳法需要相關應用系統(tǒng)中的每個表中都有一個時間戳字段,以記錄每個表的修改時間。這種方法不影響原有應用的運行效率,但卻需要對原有系統(tǒng)做較大的調整,而且不能捕獲到那些并非通過應用系統(tǒng)引起的操作數(shù)據(jù)變化。5. 基于 API 法一些小型數(shù)據(jù)庫和非關系型數(shù)據(jù)庫沒有觸發(fā)器和日志機制,還有另一些數(shù)據(jù)則因為某些原因不能使用上上述的捕獲方法,此時還可以在應用程序和數(shù)據(jù)庫間引入一類中間件,由它提供一系列 API(包括 ODBC 驅動程序) ,這些中間件在完成應用程序對數(shù)據(jù)庫修改的同時也把復制對象的變化序列記錄下來,從而達到變化捕獲的目的。在某種意義上基于 API 法可以看承是基于日志法的一個變種,它能夠實現(xiàn)基于日記法的大多數(shù)優(yōu)點,而且給異構數(shù)據(jù)庫復制帶來便利。但它存在著兩個嚴重的缺點,一是對那些不經過 API 的操作,如在控制臺命令行方式下執(zhí)行的 update、delete、insert等語句,所引起的變化是無法被 API 捕獲的;二是應用程序的可移植性差,當從一種運行環(huán)境移植到另一種運行環(huán)境時,往往需要重新編寫應用程序,甚至改變數(shù)據(jù)庫模式,尤其當 API 不是 ODBC 驅動程序的時候。表 31 是對上述五種變化捕獲方法,從更新方式、適用范圍、占用資源、依賴機制、同步復制、異步復制及可移植性進行對比。表 21 五種變化捕獲方法比較5捕獲方法更新方式適用范圍占用資源依賴機制同步復制異構復制可移植性基于快照完整拷貝廣少無否是高基于觸發(fā)器增量修改一般多觸發(fā)器是困難低基于日志法增量修改一般一般日志是困難低基于時間戳法增量修改一般少時間戳困難苦難低基于 API 法增量修改窄一般中間件是是低基于數(shù)據(jù)庫復制技術的數(shù)據(jù)轉移方案設計與實現(xiàn)2.3.2數(shù)據(jù)分發(fā)分發(fā)有時也稱傳播(Propagate),負責節(jié)點之間數(shù)據(jù)的發(fā)送和接收。一般情況下,它把副本的更新信息從源節(jié)點傳輸?shù)侥繕斯?jié)點,分發(fā)器在不同場合還有一些其它作用,例如在同步復制時分發(fā)器要承擔協(xié)調者的任務,對等復制時如果發(fā)現(xiàn)復制沖突,分發(fā)器還負責傳遞控制信息和仲裁結果。由于數(shù)據(jù)分發(fā)是通過網絡來進行的,網絡連接方式的不一樣直接影響了數(shù)據(jù)分發(fā)。就網絡連接方式而言,有基于消息(message-based)式和基于會話(session-based)式兩種?;谙⒌倪B接,又稱為消息隊列(message queuing)式或保存并轉發(fā)(store-and-forward)連接,是早期的數(shù)據(jù)庫復制方案廣泛采用的連接方式。源節(jié)點事先把要分發(fā)的數(shù)據(jù)保存在本地的歷史文件(如日志)中,到時再按照發(fā)送和接收消息包的方式來傳遞數(shù)據(jù)。傳遞消息包通過源節(jié)點和目標節(jié)點的出/入(Outbound/Inbound)消息隊列來完成,在對等復制時還需要再提供一對反方向的出/入消息隊列。這種方式一般對網絡要求較高,有時必須管理傳輸路徑和復制的拓撲結構?;跁挼倪B接也稱點對點(point-to-point)連接,這種方式不需要事先準備分發(fā)數(shù)據(jù),因此可以在分發(fā)時才捕獲變化。節(jié)點之間的數(shù)據(jù)傳播以會話的方式進行,每個節(jié)點都可以同時發(fā)送和接受數(shù)據(jù)?;跁挼倪B接方式對網絡環(huán)境沒有特別要求,適用于各種拓撲結構,基于會話式連接在可靠性、效率及可標量性等方面具有優(yōu)勢,從發(fā)展前景看,它有逐漸取代基于消息式連接的趨勢,不過在同步復制時它不如基于消息式連接可靠。5分發(fā)工作由不同的節(jié)點承擔會形成不同的分發(fā)模型,從而影響復制的組織形式和效率。如果由源節(jié)點承擔分發(fā)任務,表現(xiàn)為數(shù)據(jù)由源節(jié)點主動地發(fā)送給目標節(jié)點,這就是“推出”模型(Push Model) ,如圖 24;而如果由目標節(jié)點承擔分發(fā)任務,表現(xiàn)為由目標節(jié)點向源節(jié)點申請而得到數(shù)據(jù),這就是“拉回”模型(Pull Model),如圖 25。兩種模型都有其利弊,只有由源節(jié)點擔任分發(fā)工作的“推出”模型,主動分發(fā)數(shù)據(jù),無視目標節(jié)點是否可以接受,而目標則會處于被動等待狀態(tài),什么時候會有數(shù)據(jù)分發(fā)不得而知;“拉回”模型雖然使得目標服務器有主動申請的權利,但是要等待源服務器的響應。如果能很好地讓兩種模型結合起來,將可以大大提供數(shù)據(jù)分發(fā)的效率。目前大多數(shù)復制方案都同時支持這兩種模型,稱為“推-拉”模型, 如圖 26。圖 2-4 推出模型圖 2-5 拉回模型基于數(shù)據(jù)庫復制技術的數(shù)據(jù)轉移方案設計與實現(xiàn)圖 2-6 推-拉模型2.4 發(fā)展與現(xiàn)狀幾家大型數(shù)據(jù)庫廠商在其主流數(shù)據(jù)庫產品同構復制的基礎上,進一步地提出了各自的異構數(shù)據(jù)庫復制方案,其中包括 Oracle 主張通過數(shù)據(jù)庫轉換器,Sybase 利用 LTM (日志傳輸器),IBM 使用數(shù)據(jù)變化表(Consistent-Change Data Table) ,微軟則提出出版者/訂閱者方案等。這些方案各有所長,但在一定程度上還存在著局限性。各個數(shù)據(jù)庫廠商由于要體現(xiàn)自己產品的特點及其他一些原因,由他們各自提出的方案都采用與數(shù)據(jù)庫系統(tǒng)核心關系緊密的實現(xiàn)技術,因此不一定適用于其它數(shù)據(jù)庫系統(tǒng),彼此之間的兼容性較差。再者,各方案普遍存在著符合某種體系結構或標準的前提,因此導致對系統(tǒng)資源的要求較高而應用范圍卻受到限制。總體說來目前的狀況是不能讓用戶滿意的。國內對數(shù)據(jù)庫復制的研究與國際上相比還存在一定的差距,對異構數(shù)據(jù)庫復制的研究則更少。作者只在一些文獻中發(fā)現(xiàn)部分相關內容,其中比較系統(tǒng)的有中國人民大學的移動數(shù)據(jù)庫系統(tǒng)金倉系統(tǒng)(KingBase)、東南大學的 Galaxy 系統(tǒng)及國防科技大學的李霖等提出面向移動領域的 TTR(三級復制體系結構,Three-Tier Replication Architecture)。2.5 本章小結作為后面工作的基礎,本章通過分析研究數(shù)據(jù)庫復制技術,對數(shù)據(jù)庫復制技術的主要步驟的變化捕獲,數(shù)據(jù)分發(fā)等方面進行了總結歸納,最后簡單介紹異構數(shù)據(jù)庫的復制技術的發(fā)展現(xiàn)狀?;跀?shù)據(jù)庫復制技術的數(shù)據(jù)轉移方案設計與實現(xiàn)第 3 章現(xiàn)有異構數(shù)據(jù)庫復制方案目前已有多數(shù)數(shù)據(jù)庫廠商提出并實現(xiàn)了異構數(shù)據(jù)庫復制方案。本文重點關注數(shù)據(jù)庫復制方案包括Oracle的轉換器方案、Sybase的復制服務器方案、IBM DB2信息集成解決方案和微軟的出版者/訂閱者方案。3.1 Oracle 的轉換器方案Oracle 主張通過數(shù)據(jù)庫轉換器來實現(xiàn)異構數(shù)據(jù)庫復制。如圖 3-1 所示。復制是對稱的方向.可以是 Oracle 數(shù)據(jù)庫到非 Oracle 數(shù)據(jù)庫,也可以是非 Oracle 數(shù)據(jù)庫到 Oracle 數(shù)據(jù)庫。圖 3-1 Oracle 轉化器方案 實現(xiàn)簡單和整體性程度高是轉換器方案的主要優(yōu)點。其缺點是在 UNIX 系統(tǒng)下 Oracle 與 SQL Server 間的數(shù)據(jù)復制無法實現(xiàn),需要另一臺 Windows 下的 Oracle 9i 來做透明網關服務器。因為 SQL Server 本身不支持 UNIX,所以 Oracle 也無法直接在 UNIX 下訪問 SQL Server。再者,由于數(shù)據(jù)庫透明網關/轉換器的復雜性,這種方案的運行性能受到限制,而且成本高。3.2 SYBASE 復制服務器方案6Sybase 的復制方案是基于日志的,它的系列服務器產品中包含了專用于復制的復制服務器。 Sybase 復制方案的關鍵成分是 LTM (Log Transfer Manager 日志傳輸管理器),它是一個在源節(jié)點檢測數(shù)據(jù)庫日志的進程或線程,一旦 LTM 發(fā)現(xiàn)源數(shù)據(jù)發(fā)生變化,就立即通知本地的復制服務器,將變化序列盡快地分發(fā)給遠程節(jié)點,那里的復制服務器接收到以后,同步目標數(shù)據(jù)庫而完成復制過程,如圖 32?;跀?shù)據(jù)庫復制技術的數(shù)據(jù)轉移方案設計與實現(xiàn)圖 3-2 SYBASE 的 LTM 方案LTM 進程,是一個由 SYBASE Open Server/Open Client 編寫的應用程序,這個進程可以駐留在單獨的機器上。正是原因 SYBASE 復制服務器才使用戶將復制系統(tǒng)對主數(shù)據(jù)庫施加的負擔降低到最小限度。又因為 Sybase 提供了 RCL(復制命令語言),所以 LTM 方案的適用范圍廣而且易于移植。然而,它的主要缺點在于受 C/S 體系的限制,LTM 方案一般只支持主從式復制;再者,LTM 方案的傳播只支持 ASAP (as soon as possible)方式,缺乏選時、調度等方面的選擇;還有當通過 WAN 復制時,需要事先人工規(guī)劃網絡路徑,同時對網絡質量的要求也比較高 5 。3.3 IBM DB2 信息集成解決方案IBM 的異構復制方式是基于觸發(fā)器的,通過觸發(fā)器捕獲復制源的變化信息并存入變化數(shù)據(jù)表(Consistent-Change Data Table)7;實施程序根據(jù)復制周期從變化數(shù)據(jù)表讀取內容并根據(jù)它們來修改目標數(shù)據(jù)庫。IBM 的變化數(shù)據(jù)表方案的優(yōu)點在于,IBM 的數(shù)據(jù)庫家族龐大及 IBM 開發(fā)了一系列的輔助工具,因此它的支持面廣;再者,由于提供的復制數(shù)據(jù)字典非常完善,變化數(shù)據(jù)表方案的數(shù)據(jù)庫模式轉換功能優(yōu)于其它數(shù)據(jù)庫廠商的方案。不過變化數(shù)據(jù)表方案也有一些缺點,比如變化數(shù)據(jù)表要占用較多的系統(tǒng)資源,如存儲空間、進程等。3.4 Microsoft 的出版者/訂閱者方案Microsoft SQL Server 的復制方案稱為“出版者/訂閱者”方案7,其中有三個主要角色:出版者、訂閱者和分發(fā)者。源數(shù)據(jù)所在的服務器是出版者,負責發(fā)表數(shù)據(jù)。出版服務器把要發(fā)表的數(shù)據(jù)的所有改變情況的拷貝復制到分發(fā)服務器,分發(fā)服務器包含有一個分發(fā)數(shù)據(jù)庫,可接收數(shù)據(jù)的所有改變,并保存這些改變,再把這些改變分發(fā)給訂閱服務器。出版者/訂閱者方案建立在 ODBC 或 OLE DB 標準上,要實現(xiàn) SQL Server 數(shù)據(jù)庫到非 SQL Server 數(shù)據(jù)庫的復制或從非 SQL server 到 SQL server 的復制,但是必須是在由 SQL Server 擔任分發(fā)者的前提下,為非 SQL Server 數(shù)據(jù)庫創(chuàng)建相應的角色和代理。 “出版者/訂閱者”方案的優(yōu)點主要表現(xiàn)在,復制方式最全面,不僅提供了異步復制,還有用于同步復制的選項;框架和構造規(guī)范且明確,方便使用?;跀?shù)據(jù)庫復制技術的數(shù)據(jù)轉移方案設計與實現(xiàn)不過該方案也有一些缺點妨礙了它的進一步應用,比如必須由 SQL Server 服務器擔任分發(fā)器角色;還有 Microsoft SQL Server 只能運行 windows 平臺。3.5 本章小結本章通過對現(xiàn)有成功的異構數(shù)據(jù)庫復制方案的研究,得出結論,這些異構數(shù)據(jù)庫復制方案優(yōu)勢突出,但同時也存在問題。數(shù)據(jù)庫廠商提供的復制方案依賴于廠商自己的數(shù)據(jù)庫系統(tǒng)核心關系緊密的實現(xiàn)技術,不一定適用于其它數(shù)據(jù)庫系統(tǒng),復制方案不是完全異構的。基于數(shù)據(jù)庫復制技術的數(shù)據(jù)轉移方案設計與實現(xiàn)第 4 章基于數(shù)據(jù)庫復制技術的數(shù)據(jù)轉移方案前面通過對現(xiàn)有成功的數(shù)據(jù)庫復制方案的研究及分析得到的結論表明,這些異構數(shù)據(jù)庫復制方案優(yōu)勢突出,比如在運行性能和整體性方面都有著明顯的優(yōu)勢,而且產商大多提供了一些輔助工具可以協(xié)助用戶更好地完成復制任務等;但同時也存在問題,數(shù)據(jù)庫產商提供的復制方案依賴于產商自己的數(shù)據(jù)庫系統(tǒng)核心關系緊密的實現(xiàn)技術,不一定適用于其它數(shù)據(jù)庫系統(tǒng),也就是說復制方案不是完全異構的。作者結合自己參與項目的實際情況,為解決完全異構及數(shù)據(jù)轉移問題,提出了基于 SQL的據(jù)庫復制技術的數(shù)據(jù)轉移方案,其核心思想是通過 SQL 語句取得源數(shù)據(jù)庫中的復制對象(源表或視圖),根據(jù)中央數(shù)據(jù)庫規(guī)范進行轉化,設置復制周期,定時復制到目標數(shù)據(jù)庫,即中央數(shù)據(jù)庫。本章將從工作原理、設計思路、技術特點以及存在問題的解決方案等幾個方面介紹作者的思想。4.1 基礎概念4.1.1復制源一個復制源就是一張用戶欲從中拷貝數(shù)據(jù)的表或視圖,當定義一個復制源時,可以指定要復制的列和行。4.1.2任務集任務集:一個任務集定義復制源數(shù)據(jù)庫與目標數(shù)據(jù)庫之間的關系及復制源與目標的數(shù)據(jù)庫連接信息。4.1.3源服務器、目標服務器與實施服務器源服務器是駐留變化將要被捕捉的表的數(shù)據(jù)庫服務器。目標服務器是從數(shù)據(jù)源復制過來的數(shù)據(jù)將要駐留的數(shù)據(jù)庫服務器。實施服務器是分發(fā)控制數(shù)據(jù)駐留的數(shù)據(jù)庫服務器。實施服務器可以是源服務器、目標服務器或網絡上的其它服務器。但是,為了性能考慮,通常實施服務器與目標服務器相同,數(shù)據(jù)可以通過網絡“拉回”目標數(shù)據(jù)庫。4.1.4源列與目標列源列是復制源表中要復制的列?;跀?shù)據(jù)庫復制技術的數(shù)據(jù)轉移方案設計與實現(xiàn)目標列是要插入的目標數(shù)據(jù)庫列。4.1.5轉化轉化,是把所有數(shù)據(jù)按中央數(shù)據(jù)庫規(guī)范轉化。4.2 設計思路4.2.1工作原理1. 數(shù)據(jù)轉換數(shù)據(jù)轉換,根據(jù)目標數(shù)據(jù)庫的規(guī)范,對源數(shù)據(jù)進行數(shù)據(jù)格式及數(shù)據(jù)內容標準化轉換。2. 數(shù)據(jù)復制數(shù)據(jù)復制根據(jù) 2.3 節(jié)提到可以分為變化捕獲和數(shù)據(jù)分發(fā)。變化捕獲是捕獲源表的變化序列的過程。本文的基于 SQL 的異構數(shù)據(jù)庫復制技術的變化捕獲思想是為多個相關源表(極端的情況可能是一張源表或整個數(shù)據(jù)庫的所有表)創(chuàng)建相應的 SQL 語句存放在實施服務器上,根據(jù)用戶所設定的任務調度時間適時進行數(shù)據(jù)分發(fā)。數(shù)據(jù)分發(fā)是指將源表的變化信息實施到相應的目標表中的過程?;跀?shù)據(jù)庫復制技術的數(shù)據(jù)轉移方案的數(shù)據(jù)分發(fā)模型是“拉回”模型,因為根據(jù)實際項目的特點,實施服務器及目標服務器對源數(shù)據(jù)只有只讀權限。4.2.2設計思想本文提出的方案的設計思想是由用戶根據(jù)需要創(chuàng)建任務,并設置執(zhí)行周期,定期執(zhí)行任務,以表的形式存放相關任務信息。任務創(chuàng)建包括取得復制源、取得目標、數(shù)據(jù)轉換、任務保存等環(huán)節(jié)。任務執(zhí)行則就是數(shù)據(jù)庫復制過程。1. 取得復制源及取得目標取得復制源及取得目標要取得數(shù)據(jù)庫連接信息及所有要復制的列。取得復制源及目標時要保證實施服務器正確連接到源服務器和目標服務器。這主要是由使用者提供連接數(shù)據(jù)庫的信息,系統(tǒng)進行連接測試。如果可以正確連接,保存連接信息包括數(shù)據(jù)庫類型、服務器名、用戶名、密碼及用戶模式。取得所有要復制的列,由用戶根據(jù)實際選擇要復制的源列和目標列。系統(tǒng)保存源列集合和目標列集合。2. 數(shù)據(jù)轉換數(shù)據(jù)轉換是任務創(chuàng)建中的最主要的環(huán)節(jié)。各個數(shù)據(jù)庫設計都有自己的相應規(guī)范,數(shù)據(jù)庫與數(shù)據(jù)庫間卻存在的一定的規(guī)范性差異。各個數(shù)據(jù)庫根據(jù)自己對應的字典表對表名、列名及字段內容進行一定的標準化。因此,這要求在進行數(shù)據(jù)轉移過程中必須對數(shù)據(jù)進行有效的轉化。源列的編碼必須根據(jù)源數(shù)據(jù)庫的字典表轉化為真實數(shù)據(jù),而當復制到目標數(shù)據(jù)庫的時候,則需要把真實數(shù)據(jù)根據(jù)目標數(shù)據(jù)庫的字典表轉換成規(guī)范編碼。在本文基于數(shù)據(jù)庫復制技術的數(shù)據(jù)轉移方案設計與實現(xiàn)所提到的方案中,采用列映射信息表存放列轉化規(guī)則,映射信息表存于實施服務器上。在實際轉化過程中,由取得的表字段信息,組成 SQL 語句對其進行數(shù)據(jù)轉換。由于各個數(shù)據(jù)庫的映射庫,代碼庫設計不一致,本文提出的方案基于兩個可能存在的情況,設置映射信息表。一種是必須根據(jù)映射表及代碼表才能進行代碼與真實數(shù)據(jù)間的轉換,如圖 4-1;另一種則是只需要代碼表就能進行轉換,如圖 4-2。因此映射信息表字段包括列名、字典表名、字典表列字段名、代碼編號、代碼表名、代碼列名、真實數(shù)據(jù)列名等。列名(column_name):要進行轉換的列的名稱。字典表名(dic_tablename):列對應的字典表名稱。列字段名(dic_fieldname):字典表中存放表字段的列的名稱。代碼編號(codeid):字典表中對應的代碼信息列。代碼表名(dm_tablename):列對應的代碼表名。代碼列名(dm_code_column):代碼表中代碼所在列的列名稱。真實數(shù)據(jù)列名(dm_description):代碼表中真實數(shù)據(jù)所在列的列名稱。圖 4-1 映射表-代碼表聯(lián)合型圖 4-2 代碼表型每個任務創(chuàng)建時應分別創(chuàng)建一張源列映射信息表及一張目標列映射信息表。源列映射信息表表名命名規(guī)則為 RULE+_源表名 1+_源表名 2+_源表 3+_.。目標列映射信息表表名命名規(guī)則則是 RULE+_目標表名。比如,從源表集合RSC.C001A001,RSC.C001A007復制到目標表 RSC.RSC_RYXX.對應的源列映射信息表表名是RULE_RSCC001A001_RSCC001A007,目標列映射信息表表名則為 RULE_RSCRSC_RYXX。3. 任務保存任務保存是以任務信息表的形式把相關信息保存于實施服務器上。任務信息表字段包括任務號、源表集合、源列集合、目標表、目標列集合、復制源數(shù)據(jù)庫連接信息、目標數(shù)據(jù)庫連接信息、源列映射信息表名、目標列映射信息表名、數(shù)據(jù)類型映射信息及執(zhí)行周期。任務號(taskid):應用程序在每個任務創(chuàng)建時,根據(jù)創(chuàng)建時間,給每個任務分配基于數(shù)據(jù)庫復制技術的數(shù)據(jù)轉移方案設計與實現(xiàn)一個任務號,用來表示任務。源表集合(srcSet):記錄所有復制源表名。源列集合(srcColSet):記錄所有要復制的列。目標表(dstTable):記錄目標表名。目標列集合(srcColSet):記錄相對應的目標列。復制源數(shù)據(jù)庫信息(srcDBConnectInfo):連接復制源數(shù)據(jù)庫的所有信息,包括復制源數(shù)據(jù)庫類型、服務器名、用戶名、密碼及數(shù)據(jù)庫名。目標數(shù)據(jù)庫信息(dstDBConnectInfo):連接目標數(shù)據(jù)庫的所有信息,包括目標數(shù)據(jù)庫類型、服務器名、用戶名、密碼及數(shù)據(jù)庫名。源列映射信息表名(srcMapInfo):包括源實體表與源代碼表之間的映射信息。目標列映射信息表名(dstMapInfo):包括目標實體表與目標代碼表之間的映射信息。數(shù)據(jù)類型映射信息(dataMapInfo):記錄兩個數(shù)據(jù)庫間數(shù)據(jù)類型的映射信息。執(zhí)行周期(executrPeriod):記錄運行周期。4. 數(shù)據(jù)庫復制數(shù)據(jù)庫復制思想就是從任務信息表讀取相關任務信息,根據(jù)數(shù)據(jù)庫連接信息、源表集合、源列集合、目標表集合、目標列集合等字段信息,根據(jù) SQL 語句取得復制源,根據(jù)列映射信息表進行轉換,然后又根據(jù)數(shù)據(jù)類型映射表進行數(shù)據(jù)類型映射,最后根據(jù)SQL 語句把源插入到目標數(shù)據(jù)庫。4.3 技術特點4.3.1完全異構完全異構意味著復制能夠在所有數(shù)據(jù)庫至少是所有關系數(shù)據(jù)庫兼容的數(shù)據(jù)庫之間進行?;赟QL的數(shù)據(jù)庫復制技術通過ODBC,OLE DB及PowerBuilder提供專用數(shù)據(jù)庫可連接各種數(shù)據(jù)庫。因此,此技術是完全異構的。4.3.2數(shù)據(jù)庫系統(tǒng)無關目前的許多復制方案,特別是數(shù)據(jù)庫產商提供的數(shù)據(jù)復制方案,都依賴于與產商自己的數(shù)據(jù)庫系統(tǒng)核心關系緊密的實現(xiàn)技術,而基于 SQL 的數(shù)據(jù)庫復制技術采用 PowerBuilder 技術開發(fā),使用 PowerBuilder 提供的數(shù)據(jù)庫專用接口及 ODBC、OLEDB 連接各種數(shù)據(jù)庫,這樣利用這些接口,就不用考慮太多底層的數(shù)據(jù)庫系統(tǒng)的特性,可以透明地操作各種數(shù)據(jù)庫系統(tǒng)。對不同類型的數(shù)據(jù)庫的連接、訪問、執(zhí)行過程、查詢等等,對于應用來說都是一樣的,所以可以做到數(shù)據(jù)庫系統(tǒng)無關。因此,此技術是與數(shù)據(jù)庫系統(tǒng)無關的。4.3.3通用性基于 SQL 的數(shù)據(jù)庫復制技術是以 SQL 語句形式出現(xiàn)的,可以給任何數(shù)據(jù)庫做復制。此技術的實施程序從任務集里讀取相關信息形成 SQL 語句對復制源數(shù)據(jù)庫進行讀取,在目標數(shù)據(jù)基于數(shù)據(jù)庫復制技術的數(shù)據(jù)轉移方案設計與實現(xiàn)庫執(zhí)行相對應 SQL 語句,進行復制。4.3.4可配置基于 SQL 的數(shù)據(jù)庫復制數(shù)據(jù)轉移方案是可以配置的,根據(jù)用戶需要進行配置。4.4 可能存在問題4.4.1效率問題由于使用的變化捕獲方法是完全捕獲,而不是通過監(jiān)視變化進行的增量復制,這使得復制效率稍低。采取完全捕獲是由于作者根據(jù)實際實現(xiàn)項目的特殊性,對實時要求并不是特別高及數(shù)據(jù)源記錄數(shù)并不大及對信息完整性的要求較高等因素。然而,這個仍然有待進一步改進。4.4.2數(shù)據(jù)弱一致性由于使用定時復制技術,所以在進行兩次復制之間的這段時間內,不能保證多個數(shù)據(jù)副本之間的數(shù)據(jù)一致性,稱這種一致性為弱一致性; 基于SQL的數(shù)據(jù)庫復制技術,提供手動進行復制,在獲知復制源數(shù)據(jù)已經發(fā)生改變,但復制周期還未到的時候,可以啟動手動復制。4.4.3處理時間滯后由于是定時復制技術,所以在主數(shù)據(jù)庫中新增加或修改的信息不能立即反映到從數(shù)據(jù)庫中,數(shù)據(jù)傳送的滯后就會造成事務處理時間的滯后。這種由定時進行數(shù)據(jù)復制引起的事務處理時間的滯后,在多大程度上可以讓使用者接受,這是設置復制操作周期的重要依據(jù)。4.5 本章小結本章根據(jù)全面對數(shù)據(jù)庫復制技術的分析與研究,提出了基于 SQL 數(shù)據(jù)庫復制技術的數(shù)據(jù)轉移方案,并分析其技術特點及可能存在問題?;跀?shù)據(jù)庫復制技術的數(shù)據(jù)轉移方案設計與實現(xiàn)第 5 章技術實現(xiàn)為了基于 SQL 復制技術的可行性及技術特點,作者與茅曉白同學共同開發(fā)了Transbuilder 數(shù)據(jù)移植工具,本章將進行詳細介紹。5.1 實驗環(huán)境實驗環(huán)境如下:數(shù)據(jù)庫系統(tǒng): ORACLE9i, Microsoft SQL server 2000操作系統(tǒng): Windows server 2000, Windows server 網絡:局域網(TCP/IP 100Mbps)硬件:PC 機(Pentium4 2.4G, 1G RAM, 80GHD), PC 機(Pentium4 2.4G,512M RAM, 80GHD), PC 機(Pentium4 2.4G, 256M RAM, 80GHD)開發(fā)平臺:Sybase PowerBuilder 9.05.2 應用背景在進行課程研究的過程中,作者參與廈門大學信息化建設中心的數(shù)據(jù)轉移項目。根據(jù)各個部門學院的工作職能,各個部門學院共享基本數(shù)據(jù),保留私有數(shù)據(jù)。共享數(shù)據(jù)存放于中央數(shù)據(jù)庫,各個部門學院擁有自己的數(shù)據(jù)庫,如圖 5-1 所示。圖 5-1 數(shù)據(jù)庫系統(tǒng)結構基于數(shù)據(jù)庫復制技術的數(shù)據(jù)轉移方案設計與實現(xiàn)項目第一期工作是將各個部門學院的共享數(shù)據(jù)抽取出來放于中央數(shù)據(jù)庫。第一階段任務是將人事處的人員基本信息復制到校園中央數(shù)據(jù)庫,供其他相關部門共享。因此復制源為人事處數(shù)據(jù)庫的人員基本信息,目標數(shù)據(jù)庫為中央數(shù)據(jù)庫。人事處數(shù)據(jù)庫是 Microsoft SQL server2000,中央數(shù)據(jù)庫則是 Oracle9i,數(shù)據(jù)庫間存在著異構。再者,由于現(xiàn)有的源數(shù)據(jù)庫及目標數(shù)據(jù)庫的設計不一樣,其中表結構和字典表等的不一致性,給復制工作帶來了更大的挑戰(zhàn)。中央數(shù)據(jù)庫含有映射代碼庫、實體表庫、私有代碼庫及其他代碼庫,如框架圖52 所示;人事處數(shù)據(jù)庫經研究分析如圖 53 所示拓撲圖。因此,在復制過程要根據(jù)源數(shù)據(jù)庫的字典表對源數(shù)據(jù)進行代碼與真實數(shù)據(jù)間的轉化,在復制到目標數(shù)據(jù)庫時要根據(jù)目標數(shù)據(jù)庫的字典表對數(shù)據(jù)進行真實數(shù)據(jù)與代碼間的轉化。研研究究生生院院現(xiàn)現(xiàn)存存數(shù)數(shù)據(jù)據(jù)庫庫教教務務處處現(xiàn)現(xiàn)存存數(shù)數(shù)據(jù)據(jù)庫庫人人事事處處現(xiàn)現(xiàn)存存數(shù)數(shù)據(jù)據(jù)庫庫財財務務處處現(xiàn)現(xiàn)存存數(shù)數(shù)據(jù)據(jù)庫庫_DESCRIPTIONPKRSC_TABLENAME RSC_DESC_RYXX JZ010001 JZ010004 JZ010008 JZ010009 JZ010010 JZ010029 JZ200003 JZ030002映映射射代代碼碼庫庫X部部門門實實體體表表庫庫共共享享代代碼碼庫庫X部部門門私私有有代代碼碼庫庫.表表名名 / / 字字段段名名 字字段段內內容容其其他他代代碼碼庫庫字字段段內內容容_DESCRIPTI

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論