DB2資料庫與Oracle資料庫之間遠端複製(轉)

BSDLite發表於2007-08-12
DB2資料庫與Oracle資料庫之間遠端複製(轉)[@more@]一、背景
  DB2 聯合資料庫是分散式資料庫管理的特殊形式。在聯合資料庫系統中,可以透過一個 SQL 命令來發出對多個資料來源的命令請求。DB2 與非 DB2 資料庫之間進行復制之前,首先需要保證非 DB2 資料來源可以被 DB2 ESE Version 8 federated database訪問。對於DB2 Replication Version 8 所需的聯合資料庫功能可以在現有釋出的 DB2 ESE Version 8 和 DB2 Connect Enterprise Edition Version 8 中提供。

  "SQL複製"又稱為"DB2複製",是為 DB2 開發的兩種資料複製型別中的一種,它是透過 SQL 進行的複製。在這裡簡單提一下,DB2 複製中的另一種"Q複製"是透過 Websphere MQ 訊息佇列進行的。在進行 SQL 複製時,Capture 程式讀取 DB2 恢復日誌以獲取對指定源表的更改。該程式將更改儲存到傳輸表格中,也稱作變化資料表(changed data table),Apply 程式並行讀取更改並應用於目標事務,見圖1。




DB2資料庫與Oracle資料庫之間遠端複製(轉)400) {this.resized=true; this.width=400; this.alt='Click here to open new window';}" border=0>

  圖1:SQL複製的結構

  WebSphere II 全球資訊整合複製,透過不同資料庫之間的複製,有效的利用了資料資源,為提高效率提供了良好的平臺。

  DB2 與非 DB2 資料庫之間的複製需要用到 WebSphere II。本文力爭透過複製例項讓讀者對不同資料庫之間的複製有一個整體的概念。

二、動機

  商業上出於很多原因使用複製,可以歸納為:

分散:把資料分散到各個位置;
整合:把其他位置的資料聯合起來;
交換:與其他位置進行雙向的資料交換;
靈活應用:對上面提到的方式進行一些改變或者結合。
  聯合 (Federated) 資料庫系統的誕生,利用了現有的資料資源,把不同商業資料庫軟體的資料整合到一起,很大程度的提高了資料利用率。聯合資料庫可以用一個SQL語句對分佈在不同地點的多種資料來源發出請求。聯合資料庫系統可以把本地表和遠端資料來源聯接起來,就像資料都在本地一樣,並且可以透過對資料來源進行分佈請求來提高資料來源處理能力,還可以透過在聯合伺服器處理部分分佈請求來補充資料來源的 SQL 限制。

  聯合資料庫具有兩個與其他應用伺服器不同的特點:

聯合伺服器可以被配置為接收全部或接收部分針對資料來源的請求。聯合伺服器把這些請求分散到資料來源。
與其他應用伺服器一樣,一個聯合伺服器用 DRDA 通訊協議(例如 SNA 和 TCP/IP)與 DB2 家族例項通訊。然而,與其他應用伺服器不同的是,與非 DB2 家族例項通訊時用其他協議。
  圖2描述了聯合資料庫系統的設定流程:


  圖2:聯合資料庫系統的設定流程




DB2資料庫與Oracle資料庫之間遠端複製(轉)400) {this.resized=true; this.width=400; this.alt='Click here to open new window';}" border=0>

  WebSphere II 包括兩種包裝器(Wrapper),一種為關係型包裝器,負責DB2 UDB, Informix, Oracle, Microsoft SQL Server, Sybase, ODBC, OLE DB 等資料的複製。另一種為非關係型包裝器,負責 Flatfile, Excel, XML 等非關係型資料的複製。

  包裝器定義了一個負責本地資料庫與遠端資料庫通訊的庫。包裝器執行很多工,比如:它可以連線到資料來源,包裝器應用了資料來源的標準連線API。它還可以給資料來源提交請求。聯合資料庫系統可以操作遠端聯合系統的表。遠端表在本地聯合資料庫中虛擬存在,客戶應用程式可以操作這些虛擬表,但是它們真正存在於遠端資料庫中。每個遠端虛擬資料庫,把聯合資料庫當作資料庫客戶端,他們只對資料庫客戶端的請求有回應。因此聯合資料庫需要下載各種遠端資料庫的客戶端。

  一個聯合系統的構造,需要一個作為聯合伺服器的 DB2 例項,一個作為聯合資料庫的資料庫,一個或多個資料來源,和可以存取資料庫和資料來源的客戶(使用者和應用)。如果要完成遠端不同資料庫之間的複製,還需要應用DB2的資料複製功能。

IBM DB2 複製(在一些平臺上被稱為資料傳播)是一個從一個位置到另一個位置複製 DB2 和/或其他資料庫廠商資料的強大的,靈活的工具。IBM的複製支援資料轉換,資料連線和過濾資料。可以在不同的平臺之間搬運資料,也可以把資料分散到不同的地點或從分散的地方把資料聚合到一個地方。可以在不同的系統之間交換資料。

  IBM複製由四個主要部分組成:管理 (Administrator),Capture,Apply,警報監視器 (Alert Monitor)。

  管理的部分主要透過複製中心的圖形介面來實現。透過複製中心可以定義複製源,定義從資料來源到目標資料的地圖。它也用來管理和監控本地和遠端的 Capture 和 Apply 程式。從圖3中可以看出複製中心圖形介面對其他幾個部分的支援關係。




DB2資料庫與Oracle資料庫之間遠端複製(轉)400) {this.resized=true; this.width=400; this.alt='Click here to open new window';}" border=0>

  圖3:複製中心的應用



  在源資料伺服器上執行的 Capture 程式可以獲取 DB2 源資料表中的變化。DB2 的源資料伺服器可以為 DB2 在 z/os, os/390 上的版本 6,7和8,也可以是 iseries 在 os/400 V5R2,或 DB2 在 Windows, Unix 系統中的版本 8。當定義資料來源的時候會自動生成相應的觸發器 (Triggers),可以用來捕獲資料來源的變化。要複製的資料可以在 Capture 程式中透過選擇列來進行過濾。被捕獲的更改資訊首先存放到本地的源資料所在的資料庫的表中並且當更改應用到目標資料中之後會自動刪除。

  當對源表進行改動時,DB2 把相關的記錄寫入日誌。這些日誌服務於資料庫發現和複製。Capture 程式透過資料庫自動連線並獲取日誌記錄。每個源表都有相應的 CD (change data) 表來獲取資料的變化。當定義一個複製資料來源時,複製中心自動生成 CD 表。

  對於 Apply 部分,捕獲的改變透過 Apply 程式應用到目標表中。Apply 程式可以在任何伺服器上執行並且必須對所用到的源伺服器和目標伺服器都有連通性。資料可以透過列,行進行過濾,可以進行合併(例如透過檢視),也可以在 Apply 過程中透過 SQL 表示式進行傳送。DB2 與其他相關的資料間進行復制的時候,必須透過聯合資料庫系統來進行暱稱的建立。在本地機器上需要安裝關係型包裝器和非關係型包裝器。對於本例中db2ORACLE之間的複製,需要安裝關係型包裝器。見圖4。


  圖4:進行遠端複製關係圖




DB2資料庫與Oracle資料庫之間遠端複製(轉)400) {this.resized=true; this.width=400; this.alt='Click here to open new window';}" border=0>

  報警監視器用來進行對Capture和Apply部分的錯誤監控。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-950124/,如需轉載,請註明出處,否則將追究法律責任。

相關文章