故障描述
业务方反馈某个表通过OGG同步之后,远端和目标端数据库数据不一致。
处理及结果
2.1 分析过程
1)查询进程运行情况
2)表结构及索引结构
3)查询用户的权限
4)查看复制进程参数
GGSCI > view param R_CJ_1
replicat r_cj_1
SETENV (ORACLE_HOME=/ogg/client/oracle12)
SETENV (NLS_LANG="AMERICAN_AMERICA.zhs16gbk")
userid ***@***_node2, password *****
sqlexec "Alter session set constraints=deferred"
ASSUMETARGETDEFS
--HANDLECOLLISIONS
DBOPTIONS NOSUPPRESSTRIGGERS
reperror default,discard
discardfile ogg/****/***/dirrpt/r_cj_1.dsc,append, megabytes 2000
--CACHEMGR CACHESIZE 2048MB
ALLOWNOOPUPDATES
BATCHSQL
GROUPTRANSOPS 100
DBOPTIONS LOBWRITESIZE 102400
REPORTCOUNT EVERY 10 MINUTES, RATE
MAP **.**.******, TARGET **.******;
……
--里面的内容已脱敏处理
BATCHSQL
使用此参数可以提高replicat的性能,使replicat将类似的sql语句组织到一个数组中并加快应用。
2.2 修改复制进程参数
edit param R_CJ_1
replicat r_cj_1
SETENV (ORACLE_HOME=/ogg/client/oracle12)
SETENV (NLS_LANG="AMERICAN_AMERICA.zhs16gbk")
userid ***@***_node2, password *****
sqlexec "Alter session set constraints=deferred"
ASSUMETARGETDEFS
--HANDLECOLLISIONS
DBOPTIONS NOSUPPRESSTRIGGERS
reperror default,discard
discardfile /ogg/****/***/dirrpt/r_cj_1.dsc,append, megabytes 2000
--CACHEMGR CACHESIZE 2048MB
ALLOWNOOPUPDATES
--BATCHSQL
GROUPTRANSOPS 100
DBOPTIONS LOBWRITESIZE 102400
REPORTCOUNT EVERY 10 MINUTES, RATE
MAP **.**.******, TARGET **.******;
……
--里面的内容已脱敏处理
start R_CJ_1
结论
3.1 可以使用该参数的数据库
DB2 for i (except V5R4 or i6.1) DB2 LUW DB2 on z/OS Oracle PostgreSQL SQL Server Teradata Times Ten
3.2 工作原理
Inserts to table A
Inserts to table B
Updates to table A
Updates to table B
Deletes from table A
Deletes from table B
3.3 使用限制
1)包含LOB或LONG数据的语句; 2)包含长度超过25k的行的语句; 3)语句,其中目标表除了主键之外还有一个或多个唯一键。不能批量处理此类语句,因为如果非主键的值可能发生更改,BATCHSQL不能保证它们的顺序正确; 4)(SQL Server)目标表具有触发器的语句; 5)导致错误的语句。

本文作者:刘 锐(上海新炬中北团队)
本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




