解析DB2與非DB2資料庫之間遠程複製

來源:互聯網
上載者:User

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。

 

圖1:SQL複製的結構

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

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

二、動機

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

分散:把資料分散到各個位置;

整合:把其他位置的資料聯合起來;

交換:與其他位置進行雙向的資料交換;

靈活應用:對上面提到的方式進行一些改變或者結合。

聯合 (Federated) 資料庫系統的誕生,利用了現有的資料資源,把不同商務資料庫軟體的資料整合到一起,很大程度的提高了資料利用率。聯合資料庫可以用一個SQL語句對分布在不同地點的多種資料來源發出請求。聯合資料庫系統可以把本地表和遠端資料源聯結起來,就像資料都在本地一樣,並且可以通過對資料來源進行分布請求來提高資料來源處理能力,還可以通過在同盟伺服器處理部分分布請求來補充資料來源的 SQL 限制。

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

同盟伺服器可以被配置為接收全部或接收部分針對資料來源的請求。同盟伺服器把這些請求分散到資料來源。

與其他應用伺服器一樣,一個同盟伺服器用 DRDA 通訊協定例如 SNA 和 TCP/IP)與 DB2 家族執行個體通訊。然而,與其他應用伺服器不同的是,與非 DB2 家族執行個體通訊時用其他協議。

圖2描述了聯合資料庫系統的設定流程

 

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

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中可以看出複製中心圖形介面對其他幾個部分的支援關係。

 

圖3:複製中心的應用

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

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

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

 

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

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

  1. IBM DB2 9推出快速啟動軟體包 增強行業應用
  2. IBM DB2 Universal中存多個漏洞
  3. IBM DB2 Connect簡介(1)
  4. IBM DB2 UDB Stinger簡介(1)

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.