天天看點

Oracle GoldenGate概述

GoldenGate 現在是業内成熟的資料容災與複制産品,經過多年的發展和完善,現在已 經成為業内事實上的标準之一。

原文位址:http://blog.csdn.net/sunansheng/article/details/51854786

1. GoldenGate的曆史

GoldenGate 公司于1995年成立于美國加州舊金山,它的名稱源自舊金山聞名于世的 金門大橋。兩位創始人Eric Fish 和Todd Davidson最初旨在為Tandem計算機公司設計一個 容錯系統,由于GoldenGate 的健壯性和出色的資料複制功能,銀行用它來把AT M網絡的 交易資料發送到IBM 大型機,後來廣泛地應用到金融行業及要求資料複制高效、健壯的各 個行業,全球licences 數量超過4000。

該公司于2009年9 月被Oracle 公司收購,在此之前 Oracle 和GoldenGate 公司就有了 長達超過10年的合作關系。Oracle 收購GoldenGate 以後,按照Oracle 公司的一貫政策, 迅速把它和自己的資料庫、中間件以及應用內建,依托 Oracle 公司研發技術的優勢,并對 其做了大量的更新和改進。截止到目前為止,全球已經有五百多家大客戶使用GoldenGate 作為其容災、複制的解決方案。作為一個企業級的成熟産品,因為其快速、易用、靈活、 健壯等特性,越來越多的使用者把它作為關鍵業務系統容災、複制、同步的首選。随着Oracle 公司對其不斷改進,這個産品會越來越穩定、成熟、可靠,同時也會有更多人去學習它, 使用它。

目前GoldenGate 的最新版本為11.1 ,為了和 Oracle 資料庫、中間件産品的稱謂保持一 緻,Oracle 稱之為11g ,目前Oracle 公司把它歸到Fusion Middleware ,也就是融合中間件 産品線中。但實際上它和資料庫的聯系更加緊密,有經驗的DBA花較短的時間就可以迅 速地掌握它。

2. GoldenGate家族

Oracle GoldenGate最為常見的家族成員包括GoldenGate 、GoldenGate Director(現更 名為GoldenGate Management Pack,但是絕大部分熟悉 GoldenGate 的人還是習慣性地稱其 為GoldenGate Director,為了保證上下文的一緻性,這裡統一稱其為 GoldenGate Director)、 GoldenGate Veridata 。另外,也有不太常見的GoldenGate for Mainframe 和GoldenGate Adapters。

GoldenGate 産品是核心産品,GoldenGate Director為GoldenGate 提供友好的GUI 配置 管理界面,而GoldenGate Veridata為GoldenGate 源端和目标端提供資料比對和校驗的功能。 注意這三者并不是一個打包的産品,比如如果您購買了 GoldenGate 軟體,如果需要圖 形界面或需要資料校驗的功能,就需要額外購買 GoldenGate Director 或者GoldenGate Veridata。

3. GoldenGate及Oracle産品戰略

在Oracle 收購GoldenGate 以後,與 Oracle 原有的 Data Guard、 ODI 互為補充,共同 為企業提供跨平台實時資料同步的解決方案。與此同時,又可以與Oracle Real Application Cluster 、Data Guard 一起為使用者提供豐富、靈活的容災方案及高可用特性,這既是Oracle 公司目前也是其未來的産品發展政策與方向。

另外有的人可能注意到了Oracle 公司對其內建在資料庫中的Streams的态度的一些 變化。Oracle 公司聲稱對其産品Streams将不再做任何重大改進,而是會把 Streams的一些 優秀特性內建到GoldenGate 産品上來,同時 Oracle 也承諾繼續對現有使用Streams的客戶 提供技術支援。與此同時,內建在Oracle 資料庫中的另外一項邏輯複制産品——Data Guard Logical Standby 也遭受了同樣的命運。Oracle 對其産品線可整合能力可見一斑。

4. GoldenGate支援的平台以及資料庫

截止到筆者撰寫本書為止,GoldenGate 幾乎支援市面上流行的所有主流作業系統平台 和資料庫。

目前經過GoldenGate 11.1 認證的主流資料庫版本包括以下幾種。

Oracle 8i (隻支援DML)。 
Oracle 9 i 以上所有的資料庫版本 ( 支援DML和DDL)。 
IBM DB2 UDB 8.1 、8.2、9.1、9.5 以上版本(隻支援DML)。 
Microsoft SQL Server 2000、2005和2008(隻支援DML)。 
MySQL 4.1、5.0(隻支援DML)。 
Sybase ASE 12.5.4 、15.0 (隻支援DML)。 
           

5. GoldenGate的定位

  1. 零當機時間資料庫更新和遷移。
  2. 滿足使用者亞秒級實時資料的需求。
  3. 可持續的資料高可用性和實時商務智能。
  4. 異構平台及跨作業系統實時資料同步。
  5. 對源系統和目标系統是非侵入式的。

6. GoldenGate技術架構

和傳統的邏輯複制一樣,Oracle GoldenGate 實作原理是通過抽取源端的redo log 或者 archive log ,然後通過TCP/IP投遞到目标端,最後解析還原應用到目标端,使目标端實作 同源端資料同步。圖1-1 是Oracle GoldenGate 的技術架構。

Oracle GoldenGate概述

6.1 Manager程序

Manager程序是GoldenGate 的控制程序。如果把所有的 Oracle 程序比喻為軍隊,那麼 Manager 就相當于司令。Manager 程序運作在源端和目标端上,它主要有以下幾個方面的 作用:啟動、監控、重新開機GoldenGate 的其他程序,報告錯誤及事件,配置設定資料存儲空間, 釋出門檻值報告等。

每個源端或者目标端有且隻能存在一個 Manager 程序。其運作狀态有兩種即 RUNNING(正在運作)和STOPPED(已經停止)。

在Windows 系統上,Manager程序是作為一個服務來啟動的,而在類UNIX 系統中, Manager則是一個作業系統程序。

6.2 Extract 程序

Extract 運作在資料庫源端,負責從源端資料表或者日志中捕獲資料。在早期的 GoldenGate 版本中,它通常被稱為Collect 程序。按照其所處的階段不同,Extract 的作用 可以按照時間來劃分。

初始資料裝載階段:在初始資料裝載階段,Extract 程序直接從源端的資料表中抽取資料。 同步變化捕獲階段:初始資料同步完成以後,Extract 程序負責捕獲源端資料的變化 (DML和DDL)。

Extract 程序利用其内在的checkpoint 機制,周期性地檢查并記錄其讀寫的位置,通常 是寫入到一個本地的trail 檔案。這種機制是為了保證如果Extract 程序終止或者作業系統 當機,重新啟動 Extract 程序後,GoldenGate 能夠恢複到以前的狀态,從上一個斷點處繼續 往下運作,而不會有任何資料損失。

Extract 程序的狀态包括STOPPED(正常停止)、STARTING (正在啟動)、RUNNING (正在運作)、ABENDED (Abnomal End 的縮寫,表示異常結束)。

6.3 Pump 程序

Pump 程序運作在資料庫源端,其作用非常簡單。如果源端使用了本地的trail 檔案, 那麼Pump 程序就會把trail 以資料塊的形式通過TCP/IP協定發送到目标端,這通常也是推 薦的方式。Pump 程序本質是Extract 程序的一種特殊形式,如果不使用trail 檔案,那麼就 是Extract 程序在抽取完資料以後,直接投遞到目标端。

與Pump 程序相對應的叫做Server Collector 程序,這個程序不需要引起人們的關注, 因為在實際操作過程中無需對其進行任何配置,是以對人們來說它是透明的。它運作在目 标端,其任務就是把 Extract/Pump 投遞過來的資料塊重新組裝成trail 檔案,人們稱之為遠 程trail 檔案。

6.4 Trail檔案

為了更有效、更安全地把資料庫事務資訊從源端投遞到目标端,GoldenGate 引進trail 檔案的概念。前面提到Extract 抽取完資料以後GoldenGate 會将抽取的事務資訊轉化為一 種GoldenGate 專有格式的檔案,然後Pump 負責把源端的trail 檔案投遞到目标端,是以源、 目标兩端都會存在這種檔案,源端存放的trail 檔案叫本地trail 檔案,目标端存放的trail 檔案叫遠端trail 檔案。trail 檔案存在的目的旨在防止單點故障,将事務資訊持久化,并且 使用checkpoint 機制來記錄其讀寫位置,如果故障發生,則資料可以根據checkpoint 記錄 的位置來重傳。

值得一提的是,trail 檔案并不總是必須的。人們可以在配置Extract 程序的時候通過 TCP/IP協定直接把日志的資訊投遞到目标端。但通常并不推薦這麼做,因為一旦發生系統 當機或者網絡故障,則有可能造成資料的丢失。

6.5 Replicat 程序

Replicat 程序,通常也把它叫做應用程序。運作在目标端,是資料傳遞的最後一站, 負責讀取目标端trail 檔案中的内容,并将其解析為 DML或DDL語句,然後應用到目标數 據庫中。

和Extract 程序一樣,Replicat也有其内部的checkpoint 機制,保證程序重新啟動後可 以從上次記錄的位置開始恢複,而無資料損失的風險。 它的運作狀态和 Extract 程序一緻,包括 STOPPED、STARTING 、RUNNING 、 ABENDED 。

6.6 GGSCI

GGSCI是GoldenGate Software Command Interface的縮寫,它提供了十分豐富的指令 來對GoldenGate 進行各種操作,如建立、修改、監控GoldenGate 程序等。

絕大部分的操作都是通過它來完成的。當然如果您需要GUI 方式的圖形界面來管理, 則需要購買GoldenGate Director。

7. GoldenGate的複制模式

GoldenGate 的模式包括圖1-2 中描述的幾種,其中“一對一”是 GoldenGate 最簡單的 一種模式,也是最常用的模式。

這種模式的一種典型應用就是用于資料容災,通常源端資料庫為生産端,目标端資料 庫為容災端。

另外一種應用場景是把源端的OLTP系統産生的交易日志傳送到目标端,使用BI資料 倉庫或者是OLAP。

Oracle GoldenGate概述

8. GoldenGate應用情況

1.高可用性與容災

  • 容災與應急備份。
  • 消除計劃内停機。
  • 雙業務中心。
  • OLTP 和OLAP 分開。

2.主資料 資料庫移植、更新

3.實時資料內建

  • 資料倉庫實時供給。
  • 實時報表。
  • 政府、企業垂直部門級資料同步。
  • 主資料。