Goldengate Replicate Mode介紹
從Goldengate 12c版本開始,oracle引入了兩種新的replicat mode,分別叫做Integrated Replicat Mode和Coordinated Replicat Mode.
其中,與integrated Capture Mode類似,Integrated Replicat Mode是針對oracle平臺的,實際上就是將以前oracle stream中的功能整合進了新的Goldengate版本中.使用Intergrated Replicat Mode要求oracle資料庫版本最低為11.2.0.4.
Coordinated Replicat Mode特性適用於各個資料庫平臺,與Classic Replicat Mode中的單執行緒Replicat程式不同,該模式中透過將replicat程式建立為多執行緒來提高資料複製時的可擴充套件性.Oracle文件中沒有提到為了支援該特性,資料庫版本方面有什麼特殊需求,此外,該特性實際上是在作業系統程式層面所作的改進,所以該特性的使用應該是與資料庫版本無關的.
下面就針對Goldengate的三種Replicate Mode作一簡要介紹:
1.Classic Replicat Mode
Classic Replicat Mode也被稱為Nonintegrated Replicat Mode,該模式中,Replicat程式是單執行緒的. 其工作流程如下:
>. 讀取Goldengate Trail File;
>. 根據Replicat引數配置,執行資料過濾,對映和轉換操作;
>. 按資料變化在源資料庫端提交的順序構建SQL DML或DDL語句;
>. 透過本地資料庫連線,執行前面構建的SQL語句,從而將資料變化應用到目標資料庫裡.
在Classic Replicat Mode中,單執行緒的工作方式顯然無法滿足所有的負載需求.這時,我們通常使用並行複製的方式來應對這種挑戰. Classic Replicat Mode中主要透過以下兩種方式來實現並行複製:
>. 將需要複製的表作邏輯上的拆分,建立多個replicat程式,每個程式負責複製一部份表;
>. 當某個單一表上的負載較大需要作拆分時,oracle提供了@RANGE函式來幫助實現表內的拆分;
我在<> 一文中有對以上拆分方式的更詳細描述.
嚴格來說,Classic Replicat Mode對並行的支援是不夠靈活的,對錶的拆分要注意邏輯上的關聯性,特別是那些存在外來鍵依賴性的資料.
2.Coordinated Replicat Mode
該模式中,Replicat程式是多執行緒的. 其工作流程如下:
>. 讀取Goldengate Trail File;
>. 根據Replicat引數配置,執行資料過濾,對映和轉換操作;
>. 按資料變化在源資料庫端提交的順序構建SQL DML或DDL語句;
>. 透過本地資料庫連線,執行前面構建的SQL語句,從而將資料變化應用到目標資料庫裡.
可以看到,其工作流程與Classic Replicat Mode是一致的.兩種模式的區別就在於其多執行緒工作機制上,每個執行緒可以獨立的讀取trail file進行分析,然後執行sql,也就是多個執行緒可以並行工作.
由於有多個執行緒並行工作,因而也就涉及到任務的劃分,協調等工作,所以有個單獨的coordinate執行緒會做這方面的工作,這應該也就是coordinated replicat命名的由來了.
Coordinated Replicat Mode中也提供了由使用者來劃分工作負載的方法,具體實現方法參見官方文件.
從以上描述來看,Coordinated Replicat Mode是對Classic Replicat Mode中並行實現所提供的一種新的選擇.
3.Integrated Replicat Mode
該模式下,Goldengate利用了oracle stream採用的方式來apply資料變化,其工作流程如下:
>. 讀取Goldengate Trail File;
>. 根據Replicat引數配置,執行資料過濾,對映和轉換操作;
>. 根據源端資料變化構建LCR(logical change record);
>. Replicate程式透過與資料庫中的stream後臺程式互動,將前面生成的LCR交由stream程式來應用到資料庫中.
使用過oracle stream的使用者應該知道,stream中控制apply程式並行度是很靈活的,透過將replicat建立為Integrated Replicat Mode,stream的特性也可以在Goldengate中實現。
從integrated Capture Mode和Integrated Replicat Mode可以看到,oracle在收購了Goldengate後,已經將stream的很多功能整合進了Goldengate的新版本中。
其中,與integrated Capture Mode類似,Integrated Replicat Mode是針對oracle平臺的,實際上就是將以前oracle stream中的功能整合進了新的Goldengate版本中.使用Intergrated Replicat Mode要求oracle資料庫版本最低為11.2.0.4.
Coordinated Replicat Mode特性適用於各個資料庫平臺,與Classic Replicat Mode中的單執行緒Replicat程式不同,該模式中透過將replicat程式建立為多執行緒來提高資料複製時的可擴充套件性.Oracle文件中沒有提到為了支援該特性,資料庫版本方面有什麼特殊需求,此外,該特性實際上是在作業系統程式層面所作的改進,所以該特性的使用應該是與資料庫版本無關的.
下面就針對Goldengate的三種Replicate Mode作一簡要介紹:
1.Classic Replicat Mode
Classic Replicat Mode也被稱為Nonintegrated Replicat Mode,該模式中,Replicat程式是單執行緒的. 其工作流程如下:
>. 讀取Goldengate Trail File;
>. 根據Replicat引數配置,執行資料過濾,對映和轉換操作;
>. 按資料變化在源資料庫端提交的順序構建SQL DML或DDL語句;
>. 透過本地資料庫連線,執行前面構建的SQL語句,從而將資料變化應用到目標資料庫裡.
在Classic Replicat Mode中,單執行緒的工作方式顯然無法滿足所有的負載需求.這時,我們通常使用並行複製的方式來應對這種挑戰. Classic Replicat Mode中主要透過以下兩種方式來實現並行複製:
>. 將需要複製的表作邏輯上的拆分,建立多個replicat程式,每個程式負責複製一部份表;
>. 當某個單一表上的負載較大需要作拆分時,oracle提供了@RANGE函式來幫助實現表內的拆分;
我在<
嚴格來說,Classic Replicat Mode對並行的支援是不夠靈活的,對錶的拆分要注意邏輯上的關聯性,特別是那些存在外來鍵依賴性的資料.
2.Coordinated Replicat Mode
該模式中,Replicat程式是多執行緒的. 其工作流程如下:
>. 讀取Goldengate Trail File;
>. 根據Replicat引數配置,執行資料過濾,對映和轉換操作;
>. 按資料變化在源資料庫端提交的順序構建SQL DML或DDL語句;
>. 透過本地資料庫連線,執行前面構建的SQL語句,從而將資料變化應用到目標資料庫裡.
可以看到,其工作流程與Classic Replicat Mode是一致的.兩種模式的區別就在於其多執行緒工作機制上,每個執行緒可以獨立的讀取trail file進行分析,然後執行sql,也就是多個執行緒可以並行工作.
由於有多個執行緒並行工作,因而也就涉及到任務的劃分,協調等工作,所以有個單獨的coordinate執行緒會做這方面的工作,這應該也就是coordinated replicat命名的由來了.
Coordinated Replicat Mode中也提供了由使用者來劃分工作負載的方法,具體實現方法參見官方文件.
從以上描述來看,Coordinated Replicat Mode是對Classic Replicat Mode中並行實現所提供的一種新的選擇.
3.Integrated Replicat Mode
該模式下,Goldengate利用了oracle stream採用的方式來apply資料變化,其工作流程如下:
>. 讀取Goldengate Trail File;
>. 根據Replicat引數配置,執行資料過濾,對映和轉換操作;
>. 根據源端資料變化構建LCR(logical change record);
>. Replicate程式透過與資料庫中的stream後臺程式互動,將前面生成的LCR交由stream程式來應用到資料庫中.
使用過oracle stream的使用者應該知道,stream中控制apply程式並行度是很靈活的,透過將replicat建立為Integrated Replicat Mode,stream的特性也可以在Goldengate中實現。
從integrated Capture Mode和Integrated Replicat Mode可以看到,oracle在收購了Goldengate後,已經將stream的很多功能整合進了Goldengate的新版本中。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29519108/viewspace-1392545/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- GoldenGate Integrated Capture Mode介紹及配置方法GoAPT
- mysql 複製引數replicate_do_db和replicate_ignore_db介紹MySql
- Apply Mode in GoldengateAPPGo
- oracle goldengate 相關概念介紹OracleGo
- writing-mode屬性用法介紹
- GoldenGate 12.3 MA架構介紹系列(4)–Restful API介紹Go架構RESTAPI
- Oracle 優化引數 optimizer_mode 介紹Oracle優化
- GoldenGate 12.3 MA架構介紹系列(3) - 各功能模組介紹Go架構
- Oracle 最佳化引數 optimizer_mode 介紹Oracle
- GoldenGate for Java Adapter介紹一(原理篇)GoJavaAPT
- GoldenGate for Java adapter介紹二(程式碼篇)GoJavaAPT
- How To Replicate Data from Oracle to Postgres Using GoldenGate (Doc ID 1544137.1OracleGo
- GoldenGate12.3中新增的Parallel Replicat (PR)介紹GoParallel
- GoldenGate 12.3 MA架構介紹系列(1) - 安裝Go架構
- 應用補丁升級引起的Goldengate的replicate程式異常終止Go
- Docker Swarm Mode簡介DockerSwarm
- Can GoldenGate Replicate An Oracle Table That Contains Only CLOB Column(s)? (Doc ID 971833.1)GoOracleAI
- GoldenGate 12.3 MA架構介紹系列(5) - 靜默安裝Go架構
- The method of create a replicate of the database .Database
- GoldenGate 12.3 MA架構介紹系列(2) - 資料同步測試Go架構
- 介紹
- replicate-rewrite-db和Replicate_Wild_Do_Table實現表級別對映覆制
- GoldenGate的Logdump工具使用簡介Go
- GoldenGate的簡介與複製原理Go
- LAMP架構介紹、MYSQL介紹、安裝LAMP架構MySql
- php介紹PHP
- CSRedisCore 介紹Redis
- BitMap介紹
- GeoServer介紹Server
- RabbitMQ 介紹MQ
- 模式介紹模式
- Pyzmq介紹MQ
- Java介紹Java
- css介紹CSS
- kafka介紹Kafka
- 【RESTEasy 介紹】REST
- Kafka 介紹Kafka
- PostgreSQLHooK介紹SQLHook