1. 程式人生 > >Oracle Golden Gate體系架構詳解

Oracle Golden Gate體系架構詳解

GoldenGate簡介 
Oracle Golden Gate軟體是一種基於日誌的結構化資料複製備份軟體,它通過解析源資料庫線上日誌或歸檔日誌獲得資料的增量變化,再將這些變化應用到目標資料庫,從而實現源資料庫與目標資料庫同步。Oracle Golden Gate可以在異構的IT基礎結構(包括幾乎所有常用作業系統平臺和資料庫平臺)之間實現大量資料亞秒一級的實時複製,從而在可以在應急系統、線上報表、 實時資料倉庫供應、交易跟蹤、資料同步、集中/分發、容災、資料庫升級和移植、雙業務中心等多個場景下應用。同時,Oracle Golden Gate可以實現一對一、廣播(一對多)、聚合(多對一)、雙向、點對點、級聯等多種靈活的拓撲結構。


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

Manager程序 
Manager程序是GoldenGate的控制程序,執行在源端和目標端上。它主要作用有以下幾個方面:啟動、監控、重啟Goldengate的其他程序,報告錯誤及事件,分配資料儲存空間,釋出閥值報告等。在目標端和源端有且只有一個manager程序,其執行狀態為running好stopped。 在windows系統上,manager程序作為一個服務來啟動,二在Linux/Unix系統上則是一個系統程序。
Extract程序

 
Extract執行在資料庫源端,負責從源端資料表或者日誌中捕獲資料。Extract的作用可以按照表來時間來劃分:
初始時間裝載階段:在初始資料裝載階段,Extract程序直接從源端的資料表中抽取資料。

同步變化捕獲階段:初始資料同步完成以後,Extract程序負責捕獲源端資料的變化(DML和DDL)
GoldenGate並不是對所有的資料庫都支援ddl操作 
Extract程序會捕獲所有已配置的需要同步的物件變化,但只會將已提交的事務傳送到遠端的trail檔案用於同步。當事務提交時,所有和該事務相關的 日誌記錄被以事務為單元順序的記錄到trail檔案中。Extract程序利用其內在的checkpoint機制,週期性的記錄其讀寫的位置,這種機制是 為了保證Extract程序終止或作業系統當機,重新啟動Extract後,GoldenGate可以恢復到之前的狀態,從上一個斷點繼續往下執行。通過 上面的兩個機制,就可以保證資料的完整性了。

多 個Extract 程序可以同時對不同物件進行操作。例如,可以在一個extract程序抽取並向目標端發生事務資料的同時,利用另一個extract程序抽取的資料做報 表。或者,兩個extract程序可以利用兩個trail檔案,同時抽取並並行傳輸給兩個replicat程序以減少資料同步的延時。
在進行初始化轉載,或者批量同步資料時, GoldenGate會生成extract檔案來儲存資料而不是trail檔案。預設情況下, 只會生成一個 extract檔案,但如果出於作業系統對單個檔案大小限制或者其他因素的考慮,也可以通過配置生成多個 extract檔案。 extract檔案不記錄檢查點。

Extract程序的狀態包括Stopped(正常停止),Starting(正在啟動),Running(正在執行),Abended(Abnomal End的縮寫,標示異常結束)。
Pump程序 
pump程序執行在資料庫源端,其作用是將源端產生的本地trail檔案,把trail以資料塊的形式通過TCP/IP 協議傳送到目標端,這通常也是推薦的方式。pump程序本質是extract程序的一種特殊形式,如果不使用trail檔案,那麼extract程序在抽取完資料以後,直接投遞到目標端,生成遠端trail檔案。
與 Pump程序對應 的叫Server Collector程序,這個程序不需要引起我的關注,因為在實際操作過程中,無需我們對其進行任何配置,所以對我們來說它是透明的。它執行在目標端,其 任務就是把Extract/Pump投遞過來的資料重新組裝成遠端ttrail檔案。 

注意:無論是否使用pump程序,在目標端都會生成trail檔案 
pump程序可以線上或者批量配置,他可以進行資料過濾,對映和轉換,同時他還可以配置為“直通模式”,這樣資料被傳輸到目標端時就可以直接生成所需的格式,無需另外操作。 直通模式提高了data pump的效率,因為生成後的物件 不需要繼續進行檢索。
在大多數情況下,oracle都建議採用data pump,原因如下: 
1、為目標端或網路問題提供保障 :如果只在目標端配置trail檔案,由於源端會將extract程序抽取的內容不斷的儲存在記憶體中,並及時的傳送到目標端。當網路或者目標端出現故障時, 由於extract程序無法及時的將資料傳送到目標, extract程序將耗盡記憶體然後異常終止。 如果在源端配置了data pump程序,捕獲的資料會被轉移到硬碟上,預防了 異常終止的情況。當故障修復,源端和目標端 恢復連通性時,data pump程序傳送源端的trail檔案到目標端。
2、 可以支援複雜的資料過濾或者轉換: 當使用資料過濾或者轉換時,可以先配置一個data pump程序在目標端或者源端進行第一步的轉換,利用另一個data pump程序或者 Replicat組進行第二部的轉換。

3、有效的規劃儲存資源 :當從多個數據源同步到一個數據中心時,採用data pump的方式,可以在源端儲存抽取的資料,目標端儲存trail檔案,從而節約儲存空間。
4、解決單資料來源向多個目標端傳輸資料的單點故障: 當從一個數據源傳送資料到多個目標端時,可以為每個目標端分別配置不同的data pump程序。這樣如果某個目標端失效或者網路故障時,其他的目標端不會受到影響可以繼續同步資料。 
Replicat程序 
Replicat程序,通常我們也把它叫做應用程序。執行在目標端,是資料傳遞的最後一站,負責讀取目標端trail檔案中的內容,並將其解析為DML或 DDL語句,然後應用到目標資料庫中。
和Extract程序一樣,Replicat也有其內部的checkpoint機制,保證重啟後可以從上次記錄的位置開始恢復而無資料損失的風險。
Replicat 程序的狀態包括Stopped(正常停止),Starting(正在啟動),Running(正在執行),Abended(Abnomal End的縮寫,標示異常結束)。 
Trail檔案 
為了更有效、更安全的把資料庫事務資訊從源端投遞到目標端。GoldenGate引進trail檔案的概念。前面提到extract抽取完資料以後 Goldengate會將抽取的事務資訊轉化為一種GoldenGate專有格式的檔案。然後pump負責把源端的trail檔案投遞到目標端,所以源、 目標兩端都會存在這種檔案。 trail檔案存在的目的旨在防止單點故障,將事務資訊持久化,並且使用checkpoint機制來記錄其讀寫位置,如果故障發生,則資料可以根據checkpoint記錄的位置來重傳 。 當然,也可以通過extract通過TCP/IP協議直接傳送到目標端,生成遠端trail檔案。但這種方式可能造成資料丟失,前面已經提到過了,這裡不再贅述。
Trail檔案預設為10MB,以兩個字元開始加上000000~999999的數字作為檔名。如c:\directory/tr000001.預設情況下儲存在GoldenGate的dirdat子目錄中。可以為不同應用或者物件建立不同的trail檔案。同一時刻,只會有一個extract程序處理一個trail檔案。

10.0版本以後的GoldenGate,會在trail檔案頭部儲存包含trail檔案資訊的記錄,而10.0之前的版本不會儲存該資訊。每個trail檔案中的資料記錄包含了資料頭區域和資料區域。在 資料頭區域中包含事務資訊,資料區域包含實際抽取的資料  

程序如何寫trail檔案

為了減小系統的I/O負載,抽取的資料通過大位元組塊的方式儲存到trail檔案中。同時為了提高相容性,儲存在trail檔案中的資料以通用資料模式(一種可以在異構資料庫之間進行快速而準確轉換的模式)儲存。 當然,根據不同應用的需求,資料也可以儲存為不同的模式。

預設情況下,extract程序以追加的方式寫入trail檔案。當extract程序異常終止時,trail檔案會被標記為需要恢復。當extract重新啟動時會追加checkpoint之後的資料追加到該trail檔案中。在 GoldenGate 10.0之前的版本, extract程序採用的是覆蓋模式。即當 extract程序異常終止,則會將至上次完整寫入的事務資料之後的資料覆蓋現有trail檔案中的內容。

這裡是筆者理解不是很透徹,原文如下,望讀者給予建議

By default, Extract operates in append mode, where if there is a process failure, a recovery  marker is written to the trail and Extract appends recovery data to the file so that a history  of all prior data is retained for recovery purposes. 

In append mode, the Extract initialization determines the identity of the last complete  transaction that was written to the trail at startup time. With that information, Extract  ends recovery when the commit record for that transaction is encountered in the data  source; then it begins new data capture with the next committed transaction that qualifies  for extraction and begins appending the new data to the trail. A data pump or Replicat  starts reading again from that recovery point. 

Overwrite mode is another version of Extract recovery that was used in versions of  GoldenGate prior to version 10.0. In these versions, Extract overwrites the existing  transaction data in the trail after the last write-checkpoint position, instead of appending  the new data. The first transaction that is written is the first one that qualifies for  extraction after the last read checkpoint position in the data source. 

checkpoint  

checkpoint用於抽取或複製失敗後(如系統宕機、網路故障燈),抽取、複製程序重新定位抽取或者複製的起點。在高階的同步配置中,可以通過配置checkpoint另多個extract或者replicat程序讀取同個trail檔案集。

extract程序在資料來源和trail檔案中都會標識checkpoint,Replicat只會在trail檔案中標示checkpoint。

在批處理模式中,extract和replicat程序都不會記錄checkpoint。如果批處理失敗,則整改批處理會重新進行。

checkpoint資訊會預設儲存在goldengate的子目錄dirchk中。在目標端除了checkpoint檔案外,我們也可以通過配置通過額外checkpoint table來儲存replicat的checkpoint資訊。

Group 
我們可以通過為不同的extract和replicat程序進行分組來去區分不同程序之間的作用。例如,當需要並行的複製不同的資料集時,我們則可以建立兩個或者多個複製程序。
程序組中包含程序,程序檔案,checkpoint檔案和其他與程序相關的檔案。對於replicat程序來說,如果配置了checkpoint table,則不同組的都會包含checkpoint table。
組的命名規則如下


GGSCI 
GGSCI是GoldenGate Software Command Interface 的縮寫,它提供了十分豐富的命令來對Goldengate進行各種操作,如建立、修改、監控GoldenGate程序等等。
Commit Sequence Number
前文已經多次提到,Goldengate是以事務為單位來保證資料的完整性的,那麼
 
GoldenGate又是怎麼識別事務的呢? 這裡用到的是Commit Sequence Number(CSN)。CSN儲存在事務日誌中和trail檔案中 ,用於資料的抽取和複製。CSN作為事務開始的標誌被記錄在trail檔案中,可以通過@GETENV欄位轉換函式或者logdump工具來檢視。不同的資料庫平臺的CSN顯示如下


GoldenGate對不同資料庫的支援情況

*只能作為目標端,不能作為源端。但Goldengate可以從mysql直接裝載的原表中抽取資料。(由於筆者不瞭解mysql,這裡只是在字面意思翻譯,原文如下
the exception being that GoldenGate can extract records from MySQL source tables as part of a GoldenGate direct load.
** GoldenGate進行事務資料管理的API工具
*** 只支援映象複製,不支援資料操作、過濾,欄位對映等。 

參考至:《Oracle GoldenGate Administrator Guide》
           《企業級IT運維寶典之GoldenGate實戰_第1章》聯動北方著
本文原創,轉載請註明出處、作者
如有錯誤,歡迎指正
郵箱:[email protected] 

相關推薦

Oracle Golden Gate體系架構

GoldenGate簡介  Oracle Golden Gate軟體是一種基於日誌的結構化資料複製備份軟體,它通過解析源資料庫線上日誌或歸檔日誌獲得資料的增量變化,再將這些變化應用到目標資料庫,從而實現源資料庫與目標資料庫同步。Oracle Golden Gate可以在異

java程式設計師菜鳥進階(五)oracle基礎(五)oracle資料庫體系架構

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

oracle資料庫體系架構

在學習oracle中,體系結構是重中之重,一開始從巨集觀上掌握它的物理組成、檔案組成和各種檔案組成。掌握的越深入越好。在實際工作遇到疑難問題,其實都可以歸結到體系結構中來解釋。體系結構是對一個系統的框架描述。是設計一個系統的巨集觀工作。這好比建一棟大樓。你首先應該以圖紙的方式

InnoDB體系架構

InnoDB的架構由記憶體池和後臺執行緒構成,架構圖如圖所示(1)記憶體根據分工以及儲存檔案的不同分為緩衝池、重做日誌緩衝、額外記憶體池:緩衝池:InnoDB引擎是基於磁碟儲存的,並將其中的記錄按照頁的方式進行管理。由於磁碟IO的速度感人,為了提高資料庫的整體效能,在記憶體中

Log4j 2.x的體系架構

本譯文主要內容分為以下兩部分:   1. Log4j 2.x的層次結構   2. Log4j 2.x的主要元件詳解 更多有關Log4j的配置詳解及例子詳見Log4j 2.x 配置詳解及詳細配置例子 主要元件   Log4j使用下圖中顯示的類。

Oracle數據庫之體系結構,基本操作管理及客戶端遠程連接

plus down 緩沖區 擴展名 應用 提交 normal 系統 等待 上一篇文章《Oracle Database 12c安裝》講解了如何安裝oracle數據庫,這篇文章繼續講解數據庫的體系結構,基本操作管理及客戶端遠程連接Oracle的體系結構 Oracle數據庫由兩部

關係型資料庫Oracle架構

寫在前面 作為開發人員,掌握資料庫是必不可少的一件事情,當你已經對資料庫系統的基本理論知識和基本的SQL語句有所掌握時,理所應當去深入學習一種資料庫系統,以便在開發中能加以運用。就目前而言,市場上常見的資料庫有以下這些。 你大可不必為應當學習以上哪種資料庫系統而煩惱,當你的資料庫理論及

高並發高流量網站架構

高並發高流量網站架構詳解(推薦)高並發高流量網站架構詳解Web2.0的興起,掀起了互聯網新一輪的網絡創業大潮。以用戶為導 向的新網站建設概念,細分了網站功能和用戶群,不僅成功的造就了一大批新生的網站,也極大的方便了上網的人們。但Web2.0以用戶為導向的理念,使得新 生的網站有了新的特點——高並發,高流量,數

OSI七層與TCP/IP五層網絡架構

p地址 tro 簡單 流控 之間 模型 網卡 層次結構 user OSI和TCP/IP是很基礎但又非常重要的網絡基礎知識,理解得透徹對運維工程師來說非常有幫助。今天偶又復習了一下:   (1)OSI七層模型   OSI中的層 功能 TCP/IP協議族   應用層 文件傳輸,

PLSQL連接Oracle 數據庫配置

evel 目錄 win32 asi ges network con 配置詳解 soft 1. 下載instantclient-basic-win32-11.2.0.1.0 (oracle官網下載地址:http://www.oracle.com/technetwork/t

oracle數據庫歸檔

oracle什麽是Oracle歸檔模式? Oracle數據庫有聯機重做日誌,這個日誌是記錄對數據庫所做的修改,比如插入,刪除,更新數據等,對這些操作都會記錄在聯機重做日誌裏。一般數據庫至少要有2個聯機重做日誌組。當一個聯機重做日誌組被寫滿的時候,就會發生日誌切換,這時聯機重做日誌組2成為當前使用的日誌,當聯機

ORACLE GOLDEN GATE oracle同步數據至kafka

文件夾 lin ebe inux display off wms alter common 一.服務器信息 ip 軟件版本 ogg版本 軟件包 操作系統版本 OGG安裝路徑 10.1.50.52 源 oracle11.2.0.4 12.2.0.1.1 V100

Flume日誌收集系統架構--轉

with 指定 mwl 裏程碑 工程 生命 數據接收 dba -i 2017-09-06 朱潔 大數據和雲計算技術 任何一個生產系統在運行過程中都會產生大量的日誌,日誌往往隱藏了很多有價值的信息。在沒有分析方法之前,這些日誌存儲一段時間後就會被清理。隨著技術的發展和

zabbix實現原理及架構

收集 信息 核心 狀態 start 原理 整體架構 比較 zabbix 想要用好zabbix進行監控,那麽我們首要需要了解下zabbix這個軟件的實現原理及它的架構。建議多閱讀官方文檔。 一、總體上zabbix的整體架構如下圖所示: 重要組件說明: 1)zabbix se

【轉載】FusionSphere架構

computing ssis 修改 hyperv 適配器 drive 特殊 架構 avi FusionSphere底層使用Xen架構: 1.單臺物理機上建立hypervisor系統。 2.將所有單個hypervisor系統整合起來管理使用。 安裝C

NopCommerce源碼架構

body clear get main 都是 反轉 ace 通過 .com NopCommerce源碼架構詳解--初識高性能的開源商城系統cms 很多人都說通過閱讀、學習大神們高質量的代碼是提高自己技術能力最快的方式之一。我覺得通過閱讀NopCommerce

轉://Oracle Golden Gate 概念和原理

拓撲 根據 target 提高 支持斷點續傳 占用 均衡負載 col 都是 引言:Oracle Golden Gate是Oracle旗下一款支持異構平臺之間高級復制技術,是Oracle力推一種HA高可用產品,簡稱“OGG”,可以實現Active-Active 雙業務中心架構

openstack架構

服務組 rest opensta volume config -s ins serve 三臺 需要的軟件:RHEL7OSP-8.0-20160421-x86_64.isoopenstack 雲:形象化的說法分類:Iaas:基礎架構即服務 提供雲主機Paas:平臺即服務

RESTful 架構

但是 就是 per 設置 產生 mce 計數器 計時 混淆 原文章地址:http://www.runoob.com/w3cnote/restful-architecture.html 1. 什麽是REST REST全稱是Representational State T

dkhadoop大數據處理架構

hadoop大數據處理架構 大數據處理架構hadoop 大數據處理架構 大數據的時代已經來了,信息的爆炸式增長使得越來越多的行業面臨這大量數據需要存儲和分析的挑戰。Hadoop作為一個開源的分布式並行處理平臺,以其高拓展、高效率、高可靠等優點越來越受到歡迎。這同時也帶動了hadoop商業版的發行。