Golden Gate(簡稱OGG)提供異構環境下交易數據的實時捕捉、變換、投遞。
OGG支持的異構環境有:
OGG的特性:
- 對生產系統影響小:實時讀取交易日志,以低資源占用實現大交易量數據實時復制
- 以交易為單位復制,保證交易一致性:只同步已提交的數據
- 高性能
- 智能的交易重組和操作合並
- 使用數據庫本地接口訪問
- 並行處理體系
- 智能的交易重組和操作合並
- 靈活的拓撲結構:支持一對一、一對多、多對一、多對多和雙向復制等
- 支持數據過濾和轉換
- 可以自定義基於表和行的過濾規則.
- 可以對實時數據執行靈活影射和變換.
- 可以自定義基於表和行的過濾規則.
- 提供數據壓縮和加密:降低傳輸所需帶寬,提高傳輸安全性.
OGG的工作原理:

OGG的進程:
- Manager進程是GoldenGate的控制進程,運行在源端和目標端上。它主要作用有以下幾個方面:啟動、監控、重啟Goldengate的其他進程,報告錯誤及事件,分配數據存儲空間,發布閥值報告等。在目標端和源端有且只有一個manager進程
- Extract運行在數據庫源端,負責從源端數據表或者日志中捕獲數據。Extract的作用可以按照階段來划分為:
- 初始時間裝載階段:在初始數據裝載階段,Extract進程直接從源端的數據表中抽取數據
- 同步變化捕獲階段:初始數據同步完成以后,Extract進程負責捕獲源端數據的變化(DML和DDL)
- 初始時間裝載階段:在初始數據裝載階段,Extract進程直接從源端的數據表中抽取數據
- Data Pump進程運行在數據庫源端,其作用是將源端產生的本地trail文件,把trail以數據塊的形式通過TCP/IP 協議發送到目標端,這通常也是推薦的方式。pump進程本質是extract進程的一種特殊形式,如果不使用trail文件,那么extract進程在抽 取完數據以后,直接投遞到目標端,生成遠程trail文件。
- Collector進程與Data Pump進程對應 的叫Server Collector進程,這個進程不需要引起我的關注,因為在實際操作過程中,無需我們對其進行任何配置,所以對我們來說它是透明的。它運行在目標端,其 任務就是把Extract/Pump投遞過來的數據重新組裝成遠程ttrail文件。
- Replicat進程,通常我們也把它叫做應用進程。運行在目標端,是數據傳遞的最后一站,負責讀取目標端trail文件中的內容,並將其解析為DML或 DDL語句,然后應用到目標數據庫中。
關於OGG的Trail文件:
- 為了更有效、更安全的把數據庫事務信息從源端投遞到目標端。GoldenGate引進trail文件的概念。前面提到extract抽取完數據以 后 Goldengate會將抽取的事務信息轉化為一種GoldenGate專有格式的文件。然后pump負責把源端的trail文件投遞到目標端,所以源、 目標兩端都會存在這種文件。
- trail文件存在的目的旨在防止單點故障,將事務信息持久化,並且使用checkpoint機制來記錄其讀寫位置,如果故障發生,則數據可以根據checkpoint記錄的位置來重傳 。