ITPub博客

首页 > 数据库 > > goldengate小结

goldengate小结

作者:zcs0237 时间:2019-06-09 21:47:16 0 删除 编辑

ogg小结

1、trail file 到999999后的处理方法

(1)目标端

a、数据库里的checkpoint表会有replicat最后应用的scn

b、删除replicat重新添加就可以

(2)源端

a、trail号与target号可能相近/最大值

b、目标端cktab中查源scn

c、scn转为时间

d、从比scn稍前一点儿抽取


2、用ogg分表(使用filter过滤之后进行分发)

(1)pump进程直接加参数

或TABLE t1, FILTER (@STREQ(col2, 'x'));   

或TABLE t1,FILTER (col2>100 and col2<200)

(2)对于含主键的表,如果filter的条件列不是主键,源端需要对filter列手工增加trandata,如:add trandata u1.t1 cols(col_name)


3、使用defgen 同步不同定义表

(1)参考http://m.blog.itpub.net/26764973/viewspace-1218605/

(2)两边数据库类型及结构一致时用ASSUMETARGETDEFS;

(3)两边数据库类型及结构不一致时用否则使用SOURCEDEFS数据结构定义文件,实现不同数据库间同步

SOURCEDEFS /u01/ogg/dirdef/defg.p

map gg.DEFG1 , target regg.DEFG2 COLMAP(mb1=ob1,mb2=ob2,mb3=ob3,mb4=ob4);


4、schema拆分为多个replication

(1)只同步多个单表

map caicprod.PRPL1  target   caicprod2.*;

map caicprod.PRPL2  target   caicprod2.*;

map caicprod.PRPL3  target   caicprod2.*;

map caicprod.PRPL4  target   caicprod2.*;

(2)只同步某前缀的表

map  CAICPROD.PRPJ* target   CAICPROD.PRPJ*;

(3)排除某些表

tableexclude CAICPROD.PRPJ*;

tableexclude CAICPROD.PRPD*;

map  CAICPROD.* target   CAICPROD.*;

(4)源端目标端用户名与表名不同

MAP U1.t1,TARGET U2.t2;


5、replication触发器问题

(1)ddl include MAPPED exclude OPTYPE alter OBJTYPE 'trigger' &

EXCLUDE INSTR 'ENABLE CONSTRAINT'

(2)alter trigger tr_dept disable

(3)有时候触发器实现了很多业务逻辑,实际上还是要触发,只是不执行触发器中的代码

MAP scott.dept, target scott.dept, SQLEXEC (SPNAME scott.sp_disable_trigger, ID sp_disable_trigger1, PARAMS (p_tablename = 'dept'));

MAP scott.emp, target scott.emp, SQLEXEC (SPNAME scott.sp_disable_trigger, ID sp_disable_trigger2, PARAMS (p_tablename = 'dept'));

(4)--select 'alter trigger '||owner||'.'||trigger_name||' disable;' tr

from dba_triggers

where status='ENABLED'

and owner IN ('&user')

order by status,owner;



6、开发规范

(1)备注

--原因:/* */备注禁止使用

--通知:备注的行首必须加--

--在plsql中备注前后要加回车

(2)避免大事务/长事务(

大批量变更安排在空闲时间)

(3)索引与表owner统一

错误:create index idx_a on user1.t1(col1);

正确:create index user1.idx_a on user1.t1(col1)

(4)避免plsql异常退出(可能导致长事务/锁)

(5)避免分布式事务如

insert into u.ca_jy select * from u.ca_jy@db3;需在备库手工补数

(6)中文约束名易出错:alter table u.t drop constraint 主键不能为空102;

(7)避免itas/ctas两处出现用户名create table u1.t2 as select u1.t1;

(8)建议表有主键,如果表无主键或者本次修改了主键则需

delete trandata schema.mytable 

add trandata schema.mytable

(9)避免压缩表

(10)留意temp前缀的表(习惯上tableexclude *.TEMP*;)

(11)lob分区表在初始化时会很慢

(12)不允许ALTER SESSION SET CURRENT_SCHEMA(另外:打错对象名,比如操作一个不存在的表)

(13)触发器、外键创建或调整前检查ogg参数(ddl include MAPPED exclude OPTYPE alter OBJTYPE 'trigger' &

EXCLUDE INSTR 'ENABLE CONSTRAINT')

(14)DDL需从SQL脚本中分出来,需逐行单独执行。

(15)留意analyze table、alter procedure compile、hint、alter PACKAGE BODYcompile


7、ogg中的六跳

(1)抽取进程跳表

temp_高频率的ddl

(2)replicat跳表

(3)replicat跳代码(DDLERROR 24344 DISCARD灾备确保数据正确、编译出错不用修)

$ oerr ora 24344

24344, 00000, "success with compilation error"

// *Cause:  A sql/plsql compilation error occurred.

// *Action: Return OCI_SUCCESS_WITH_INFO along with the error code


(4)replicat跳事务

ddl可以跳事务(比如create  index伯start prod01 skiptransaction跳过后在备库手工create  index执行)

dml事务有多个ins/del/update,不能skiptransaction,跳表即可)


(5)跳语句(比如在logdump看到create index)

(6)跳rba(logdump+> alter replicat r1,extseqno 13033,extrba 301113171)


8、巡检与监控指标

(1)lag延迟

(2)abend中断(小刚用shell写了个脚本)

(3)trail堆积

(4)抽取进程长事务send ext showtrans



9、HANDLECOLLISIONS

注意打开此参数则所有数据错误不管reperror如何配置均不再写discard文件,即所有数据冲突信息被默认规则处理,没有任何日志(则会忽略error mapping数据错误,而且不会报告到discard


文件),因此日常复制不建议使用该参数;下面是应用场景

源端delete 数据 目标端找不到相应的数据 ---replicat 进程发生中断(missing delete)

源端update数据目标段找不到相应的数据---replicat进程发生中断(missing update)

另外:该参数依赖于主键或唯一索引处理冲突数据


10、start replicat <rep name> filterduptransactions(经历的故障)

2018-02-13 16:53:02  ERROR   OGG-01705  Oracle GoldenGate Delivery for Oracle, caicprod.prm:  Input checkpoint position 92166617 for input trail file 


'./dirdat/nc011276' is greater than the size of the file (92075909).  Please consult Oracle Knowledge Management Doc ID 1138409.1. for instructions.


Input checkpoint position  for input trail file  is greater than the size of the file 


11、veridata

(1)Group Configuration

-DB对

-TAB集合

(2)Job Configuration

(3)执行job(性能较差)

-全量比对

-增量比较


12、补充

alter extract extname,etrollover #抽取进程trail文件号自动加1

alter extract dumpname,etrollover #datapump进程trail文件号自动加1 

alter extract dumpname, extseqno xx, extrba 0 #指定datapump进程的序列号和日志位置

alter replicat repname, extseqno XX, extrba 0 #在目标端的dirdat下看新生成的trail序号

数据同步出问题的表没有主键,客户执行insert的时候没有问题,在执行update的时候报错涉及三个参数,KEYCOLS,ALLOWNOOPUPDATES,APPLYNOOPUPDATES。

DBOPTIONS DEFERREFCONST:将完整性约束推迟到replicat事务提交以后再检测



动力小刚于2019年5月  个人邮箱:zcs0237#163.com


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/210154/viewspace-3120575/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2013-01-25

  • 博文量
    42
  • 访问量
    495566