GoldenGate的Sequence同步DLL及其相關問題
應客戶要求,在進行Goldengate測試功能的時候,其中有個sequence測試dll的同步複製沒有成功,後來找到相關資料,最終搞定,記之以共享。
====環境==========
oracle : 10.2.0.5 64bit
linux: redhat 5.8 64bit
ogg: 11.2.1.0.1
===============
源端: exta(抽取), dpea(推送);
目標: repa(複製)
====exta
====dpea
點選(此處)摺疊或開啟
====repa
1) 如果要啟動DDL, 需要在源端的資料庫執行maker_setup.sql, ddl_setup.sql, role_setup.sql,ddl_enable.sql
2) 並把許可權付給glodengate的資料庫管理使用者,比如:gger或者ggsadmin, 或者ogg之類的,反正是自己定義的gg管理使用者。
具體sql:GRANT GGS_GGSUSER_ROLE, RESOURCE, DBA, CONNECT to ggsadmin.
3)以上執行無問題之後,如果sequence在源端建立、alter目標端沒有同步,檢視是否在源端exta和目標端沒有ddl include all,而是ddl include mapped(見上面指令碼紅色字型),本主在測試時就是這個問題不能同步sequence,修改之後,通暢無比:)
4)sequence的DDL同步正常後,通常測試sequence的同步情況,如果目標和源不能同步sequence的值,請檢查如下:
4.1 在目標和源資料庫端執行sequence.sql
4.2 在源端的exta和dpea中增加sequence的抽取命令
4.3 在目標端select test_seq.nextval from dual; n>5次, 檢查目標端是否變化,根據自己的實測有延遲。比如在源端執行了5次,源端的currval是4, 目標端select test_seq.currval from dual應該是5,結果會有不同,可以查詢user_sequence檢視,檢視LAST_NUMBER即可。
4.4 如果兩端不一致,則需要建立sequence的時候不要cache,如:
create sequence test_seq start with 0 increment by 1 minvalue 0 nocache;
根據以上情況,sequence的ddl和同步無問題。
====環境==========
oracle : 10.2.0.5 64bit
linux: redhat 5.8 64bit
ogg: 11.2.1.0.1
===============
源端: exta(抽取), dpea(推送);
目標: repa(複製)
====exta
點選(此處)摺疊或開啟
- EXTRACT exta
- setenv(ORACLE_SID=ORCL1)
- setenv(NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
- --report at 01:59
- --reportrollover 02:00
- --USERID ggsadmin PASSWORD ggsadmin
- userid ggsadmin, password AACAAAAAAAAAAAIACCKISHFGOHRAMJWG,ENCRYPTKEY default
- TRANLOGOPTIONS EXCLUDEUSER ggsadmin
- EXTTRAIL /home/oracle/ogg/dirdat/rt
- discardfile /home/oracle/ogg/dirrpt/exta.dsc, append, megabytes 50M
- --DDL INCLUDE OBJNAME \"scott.*\"
- --DDL INCLUDE OBJTYPE \"SEQUENCE\"
- --DDL INCLUDE MAPPED
- DDL INCLUDE ALL
- DDLOPTIONS ADDTRANDATA, report, nocrossrename
- Gettruncates
- --FETCHOPTIONS, NOUSESNAPSHOT
- FETCHOPTIONS, USESNAPSHOT, NOUSELATESTVERSION, MISSINGROW REPORT
- STATOPTIONS REPORTFETCH
- WARNLONGTRANS 1H, CHECKINTERVAL 5M
- dynamicresolution
- table scott.*;
- sequence scott.*;
點選(此處)摺疊或開啟
- extract dpea
- passthru
- numfiles 5000
- rmthost 192.168.52.135, mgrport 7809, compress
- rmttrail /home/oracle/ogg/dirdat/rt
- dynamicresolution
- CMDTRACE DETAIL
- table scott.*;
- sequence scott.*;
點選(此處)摺疊或開啟
- REPLICAT repa
- setenv(ORACLE_SID=ORCL2)
- setenv(NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
- --userid ggsadmin, password ggsadmin
- userid ggsadmin, password AACAAAAAAAAAAAIACCKISHFGOHRAMJWG, ENCRYPTKEY default
- HANDLECOLLISIONS
- assumetargetdefs
- reperror default, discard
- discardfile ./dirrpt/repwp.dsc, append, megabytes 150M
- dynamicresolution
- --report options
- reportCount every 30 minutes, rate
- report at 01:00
- reportRollover at 01:15
- --ddl options
- --DDL INCLUDE MAPPED
- DDL INCLUDE ALL
- DDLOPTIONS REPORT
- BATCHSQL
- DBOPTIONS DEFERREFCONST
- DBOPTIONS LOBWRITESIZE 102400
- DDLERROR DEFAULT DISCARD RETRYOP MAXRETRIES 5 RETRYDELAY 20
- CMDTRACE DETAIL ;
- map scott.*, target scott.*;
2) 並把許可權付給glodengate的資料庫管理使用者,比如:gger或者ggsadmin, 或者ogg之類的,反正是自己定義的gg管理使用者。
具體sql:GRANT GGS_GGSUSER_ROLE, RESOURCE, DBA, CONNECT to ggsadmin.
3)以上執行無問題之後,如果sequence在源端建立、alter目標端沒有同步,檢視是否在源端exta和目標端沒有ddl include all,而是ddl include mapped(見上面指令碼紅色字型),本主在測試時就是這個問題不能同步sequence,修改之後,通暢無比:)
4)sequence的DDL同步正常後,通常測試sequence的同步情況,如果目標和源不能同步sequence的值,請檢查如下:
4.1 在目標和源資料庫端執行sequence.sql
4.2 在源端的exta和dpea中增加sequence的抽取命令
4.3 在目標端select test_seq.nextval from dual; n>5次, 檢查目標端是否變化,根據自己的實測有延遲。比如在源端執行了5次,源端的currval是4, 目標端select test_seq.currval from dual應該是5,結果會有不同,可以查詢user_sequence檢視,檢視LAST_NUMBER即可。
4.4 如果兩端不一致,則需要建立sequence的時候不要cache,如:
create sequence test_seq start with 0 increment by 1 minvalue 0 nocache;
根據以上情況,sequence的ddl和同步無問題。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3090/viewspace-1420831/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- GoldenGate實施相關問題Go
- 關於sequence問題的緊急處理
- GoldenGate無法同步壓縮表問題Go
- linux crontab 定時任務 郵件問題 及其相關的 dead.letter 問題Linux
- 關於序列同步的問題
- Docker 相關問題Docker
- django相關問題Django
- electron相關問題
- Oracle MTS的相關問題Oracle
- 關於forEach同步非同步的問題非同步
- 關於盒模型相關的問題模型
- Linux下處理時間同步相關問題彙總Linux
- .netcore ioc 迴圈依賴問題及其相關思考之DispatchProxyNetCore
- 有關時間同步的問題
- java語言相關的問題Java
- 面試遇到的redis相關問題面試Redis
- Java相關問題整理Java
- PHP相關問題集合PHP
- 大模型相關問題大模型
- Tomcat8+Nginx+redis組合解決session同步的相關問題TomcatNginxRedisSession
- 列表(recyclerView、listView及其相關)View
- 如何用Autoincrement,sequence問題REM
- oracle goldengate 相關概念介紹OracleGo
- TCP/IP 協議相關的問題TCP協議
- MySQL中鎖的相關問題DTQUMySql
- mysql相關問題總結MySql
- 個人專案相關問題
- Sql Mode及相關問題SQL
- 瀏覽器相關問題瀏覽器
- python pip相關問題Python
- RUST所有權相關問題Rust
- VMLogin 指紋與瀏覽器資料同步相關問題解析瀏覽器
- 關於 go-micro 相關問題Go
- win10 下關於redis的相關問題Win10Redis
- Python的Sequence切片下標問題Python
- 關於非同步傳送EMail的問題非同步AI
- 解除安裝goldengate相關配置資訊Go
- iptables刪除命令中的相關問題