Oracle GoldenGate學習總結
Oracle GoldenGate學習總結
一、Oracle GoldenGate工作原理:
網上有,不再描述,具體參考:
Oracle GoldenGate產品的相關下載地址:
GoldenGate幾個重要程式介紹:
1、Manager管理程式在兩端開啟,監控和重啟其他程式;分配資料儲存和報告錯誤及事件;
2、Extract程式從日誌中抓取並傳輸到target端事務資料;
3、Server Collector程式在target(接受)端接受資料並寫入trail檔案;
4、Replicat程式讀取trail檔案,並應用到traget資料庫;
5、trail檔案時gg自己抓捕資訊的檔案,是一個OS檔案,存放在./dirdat/下,以X00000命名,N順序1,2,3…此檔案用完可配置引數自動刪除。
二、Oracle GoldenGate配置:
1、同一臺計算上,部署兩個Orcle資料庫,yglis源資料庫,ygtest目標資料庫。分部建立兩個GG環境:
2、將下載的GoldenGate解壓重新命名,建立兩個gg環境的如下:
注:解壓後的資料夾名稱不能為Oracle GoldenGate會存在衝突。
源資料配置GG路徑:
D:\gg\ggs_yglis
目標資料配置GG路徑:
D:\gg\ggs2_ygtest
3、配置OrateGoldenGate
>Cd D:\gg\ggs_yglis
>ggsci
>create subdirs
>exit
>D:\gg\ggs2_ygtest
>ggsci
>create subdirs
>exit
4、檢視源資料庫是否開啟最小附加日誌模式,進入到源資料庫的SQL命令模式:
Sql> select supplemental_log_data_min from v$database;
若查詢結果為N,執行下述命令:
Sql> alter database add supplemental log data;
Sql> alter system switch log file;
Sql> exit;
5、配置源資料庫的GoldenGate引數:
注:配置相關資料前,請先建立測試表。
gg> ggsci
gg> edit params ./GLOBALS
在彈出的檔案中寫入
MGRSERVNAME mgrtest1
gg> exit;
6、接著配置windows源資料庫程式
> install addservice addevents
配置成功後再次進入到源資料庫的ggsic
gg> ggsic
gg> edit params mgr
在彈出的檔案中輸入
Port 7809
7、配置一個Extract程式:
gg> edit param eiextt
在彈出的檔案中輸入
--註釋,第一行是Extract的名稱
--第二三行處理的是中文亂碼問題
--第四是要匯出的資料庫連線
--第五行是匯入的trail檔案路徑
--第六行之後,需要出的表
EXTRACT EIEXTT
setenv (NLS_LANG = "AMERICAN_AMERICA.ZHS16GBK")
getenv (NLS_LANG)
USERID yglis@ygcms, PASSWORD yglis
EXTTRAIL ./dirdat/tt
TABLE yglis.ldcode123;
TABLE yglis.ldcom;
上述檔案建立後,需增加Extract程式
gg> add extract eiextt,tranlog,begin now
gg> add exttrail ./dirdat/tt,extract eiextt, megabytes 5
8、在源資料庫端增加一個PUMP程式
gg> edit params epmptt
在彈出的檔案中輸入:
EXTRACT EPMPTT
PASSTHRU
setenv (NLS_LANG = "AMERICAN_AMERICA.ZHS16GBK")
getenv (NLS_LANG)
RMTHOST localhost,MGRPORT 7841
RMTTRAIL ./dirdat/tt
TABLE yglis.ldcode123;
TABLE yglis.ldcom;
上述檔案建立後,增加pump程式
gg> add extract epmptt,exttrailsource ./dirdat/tt
gg> add rmttrail ./dirdat/tt,extract epmptt,megabytes 5
所有上述配置完成後,源資料庫端配置完成,檢查程式可使用
gg> info all
啟動程式
gg> start mgr
gg> start *
9、配置目標資料庫端的GoldenGate相關:
配置manager程式與源資料段一致
gg> edit params ./GLOBALS
彈出檔案寫入
MGRSERVNAME mgrtarget
CHECKPOINTTABLE ygtest.ggschkpt
在退出exit中輸入install addservice addevents
再進入到ggsci模式
gg> edit params mgr
在彈出的文字框中寫入
Port 7841
gg> add checkpointtable ygtest.ggschkpt
gg> dblogin userid ygtest,password ygtest
gg> add replicat poratt,exttrail ./dirdat/tt,checkpointtable ygtest.ggschkpt
配置replicat程式(接受程式)
gg> edit param poratt
在彈出的文字框中寫入
replicat poratt
setenv (NLS_LANG = "AMERICAN_AMERICA.ZHS16GBK")
getenv (NLS_LANG)
userid ygtest@ygtest, password ygtest
assumetargetdefs
reperror default, discard
discardfile ./dirrpt/poratt.dsc, purge
map yglis.ldcode123, target ygtest.ldcode123;
map yglis.ldcom, target ygtest.ldcom;
完成上述操作後,檢查程式:
gg> info all
gg> start mgr
gg> start *
10、當源、目標端的GG都配置完成,並且所有的程式都RUNNING狀態,說明配置成功,即可驗證
源資料庫端配置
目標端配置
附加新建的表和測試資料:
附加所有程式檔案:
源端程式配置檔案
目標端程式配置檔案
三、DDL表結構同步情況:
DDL配置可以不用與DML配置同時進行,可以單獨進行,沒有關聯必要性,參考網址:
1、進入到GoldenGate安裝路徑後,使用dba許可權連線資料庫,檢視相關配置是否OK
確認資料庫歸檔模式:
RECYCLEBIN是否關閉---10G以上版本為了支援DDL複製建議關閉RECYCLEBIN
SQL> show parameter recyclebin;
SQL> alter system set recyclebin=off;
設定完成後,重啟資料庫服務,並重新進入GoldenGate安裝路徑,使用SYSDBA使用者登入並執行下述SQL
SQL> @marker_setup.sql
SQL> @ddl_setup.sql
SQL> @role_setup.sql
SQL> GRANT GGS_GGSUSER_ROLE to [使用者名稱];
SQL> @ddl_enable.sql
SQL> @marker_status.sql
SQL> exit
2、修改上述二中配置的DML程式eiextt和poratt程式,分部增加DDL複製同步的配置語句,具體截圖如下:
修改eiextt和poratt程式前先配置管理程式,增加GGSCHEMA使用者如下
以下Eiextt和Poratt程式配置新增DDL相關。
3、上述所有配置完成後,重啟manager服務,並開啟所有程式,測試修改表結構
alter table ldcode123 add(test varchar(20));
4、檢查另一個環境的表是否同步修改。
四、遺留問題:
1、目前使用GG在兩個庫之間的同步發現,同步資料中有中文,則出現亂碼,還未解決!
中文亂碼問題解決,在配置的Extract和Replicat程式中增加配置語句:
setenv (NLS_LANG = "AMERICAN_AMERICA.ZHS16GBK")
getenv (NLS_LANG)
2、另對於同步程式進行修改的時候,是否需要終止程式?若終止程式,則如何保證資料同步的實時及準確性?
3、雙向實時複製同一個表的資料,是否會存在問題?
此問題已經解決,配置方法同Oracle GoldenGate步驟,反向配置源目端的程式,可以實現DML雙向資料同步,但不能解決DDL雙向資料同步。
附加檔案:
YGLIS源端配置檔案:
YGTEST目標端配置檔案:
五、如何解除安裝Oracle GoldenGate產品:
如果想解除安裝源資料庫或目標資料庫不在使用Oracle GoldenGate產品了,且需從當前的windows系統的任務服務中刪除,執行操作步驟:
1、進入源或目標GG配置目錄,輸入以下命令:
gg> stop *
gg> stop mgr
2、刪除Oracle GoldenGate安裝路徑
3、執行windows命令,執行sc delete [服務名]
六、Oracle GoldenGate命令引數詳解:
參考官方文件
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29819001/viewspace-1685645/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle學習總結Oracle
- About the Oracle GoldenGate TrailOracleGoAI
- ORACLE GoldenGate Initial LoadOracleGo
- 學習總結
- Oracle GoldenGate安裝(一)OracleGo
- Oracle GoldenGate安裝(二)OracleGo
- Oracle GoldenGate安裝(三)OracleGo
- Oracle GoldenGate 18.1釋出OracleGo
- MYSQL學習總結MySql
- 近期學習總結
- KUDU學習總結
- CompletableFuture學習總結
- SpringCloud 學習總結SpringGCCloud
- awk 學習總結
- MyBatis 學習總結MyBatis
- Maven學習總結Maven
- Ajax學習總結
- JVM學習總結JVM
- mysqlimport學習總結MySqlImport
- WorkFlow學習總結
- JNI 學習總結
- SVG學習總結SVG
- 【TS】學習總結
- Kafka 總結學習Kafka
- Typescript學習總結TypeScript
- python學習總結Python
- redis學習總結Redis
- ConstraintLayout 學習總結AI
- BOM學習總結
- tkinter學習總結
- vue學習總結Vue
- HSF學習總結
- HTML學習總結HTML
- Mybatis學習總結MyBatis
- JavaWeb學習總結JavaWeb
- ElasticSearch 學習總結Elasticsearch
- Storm學習總結ORM
- vue 學習總結Vue
- lua 學習總結