ogg配置这里不详细介绍了,可以参考下面两篇文章。
http://blog.csdn.net/linucle/article/details/13505939
http://blog.csdn.net/miyatang/article/details/10220827
我主要记录下我配置过程过遇到的问题及解决方法
1 ogg ddl过滤
我要同步所有ddl,但部分表的drop不同步,可以使用instr这点很方便
ddl include all exclude instr 'DROP TABLE user.tablename'
2 假如同步有问题,想看详细日志
send extract ext trace ./dirdat/trace.log
send replicat rep trace ./dirdat/rep.log
3 replicat同步慢
第一:按照rep的进程名进行 ps -ef | grep ,获得rep的进程PID
第二:按照rep的进程PID 进行 ps -ef | grep PID,的LOCAL=YES的进程
sqlplus 里执行如下sql
SELECT sql_text,sql_id FROM v$sqltext a WHERE a.hash_value = (SELECT sql_hash_value FROM v$session b
WHERE b.SID =( select s.sid from v$session s,v$process p where s.paddr=p.addr and p.spid='')) spid为第二步查找到的spid
根据查出的sql_id查执行计划
select plan_table_output from table(dbms_xplan.display_cursor('6ufrk02y1h6u5'));
4 同步卡在某个进程/文件的时候,在接受数据丢失的情况下
info repli 查找repli进程当前的事务所在的队列文件和RBA
alter repli,extseqno 6,extrba 160
extseqno即文件为文件号,extrba
可以通过info repli查看
也可以通过以下方式查看详细信息。
[oracle@ggsdb ogg11r2]$ ./logdump
Oracle GoldenGate Log File Dump Utility for Oracle
Version 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230
Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
Logdump 1 >open dirdat/l2000040
Current LogTrail is /oracle/ogg11r2/dirdat/l2000040
Logdump 2 >pos 84509907
Reading forward from RBA 84509907
Logdump 3 >n
pos是position的缩写,意思是定位到replicat启始的位置,n是next的缩写,第一个n定位显示出当前应用的记录,可以看出是update 还有表的名字,还有image的值,我们要跳过这个事务当然要再输一个n,可以看到下一个记录的rba是 84510103绝不是前面RBA简单的加1.这样我们就可以修改replicat进程启动时的rba指定为84510103