概述
1、问题症状
- replicat进程正常运行
- ggserr.log无错误输出,卡在启动阶段
日志一直停在这里
2020-06-02 01:48:50 INFO OGG-01815 Oracle GoldenGate Delivery for Oracle, rept01.prm: Virtual Memory Facilities for: COM
anon alloc: mmap(MAP_ANON) anon free: munmap
file alloc: mmap(MAP_SHARED) file free: munmap
target directories:
/home/oracle/ggate/dirtmp.
- send rept01,status 无响应
我的replicat进程叫rept01
2、先说问题结论
因为应用用了oracle的sequence作为主键,但OGG没有配置sequence同步。
3、排查过程
1."天启"阶段:重启
因为,ggserr.log没有日志输出;replicat.dsc也没有输出,基本没有思路。
以为是OGG的bug,因为特定的事务触发了,尝试n次重启,问题照旧。
2.跳过当前事务
还是考虑特定事务有关,想着跳过这个特殊事务就好了。
方法1:跳过当前事务
start replicat rept01 skiptransaction
我都案例中,这个方法无效。启动后,直接还是有问题的样子。
方法2:按事务号跳过
查询当前事务号
info rept01
通过logdump工具查看下一事务号
ALTER REPLICAT rept01, EXTRBA 0
方法点作用,会正常running一会,很快问题重现。
3.探查导致卡住的事务
在第2阶段时,就有端倪,当时卡住的事务,不是普通的insert、update、delete,是sequence,看不出具体内容。
Logdump 7 >n
2020/06/01 01:54:16.229.190 Sequence OP Len 61 RBA 21026675
Name: TRAN.SEQ_TRANMATERIAL
After Image: Partition 4 G s
0000 0008 0000 0004 5452 414e 0001 0014 0000 0010 | ........TRAN........
5345 515f 5452 414e 4d41 5445 5249 414c 0002 000c | SEQ_TRANMATERIAL....
0000 0008 3338 3137 3436 3932 0003 0005 0000 0001 | ....38174692........
30 | 0
跳过卡顿事务后,再次卡住后,查看事务,依然是sequence有关。
这个时候,线索指向比较明显了,可能与sequence有关。
4、解决方法
1.解决方法
先在备机
-
执行OGG的工具包
用sqlplus执行sequence.sql,该文件在OGG根目录下
期间,需要输入OGG软件使用的schema -
OGG全局文件增加GGSCHEMA
GGSCI 25> view param ./GLOBALS
checkpointtable ggate.ckpt
GGSCHEMA GGATE -
OGG执行flush sequence
GGSCI > dblogin userid ggate password ggate
GGSCI > FLUSH SEQUENCE scott.seq*
注意:这个只是OGG同步需要,不会充值oracle的序列的值。 -
在主机同样执行
-
重启全部进程。
2.问题复盘
OGG支持sequence同步,但需要单独设置和额外工具包支持。一开始的环境是不具备的。
跳过卡顿事务,正常运行一段时间,可能期间刚好是delete、update操作,所以不卡顿。
最后
以上就是眼睛大老鼠为你收集整理的因sequence导致的replicat卡顿,显示正常运行但没有真写数据1、问题症状2、先说问题结论3、排查过程4、解决方法的全部内容,希望文章能够帮你解决因sequence导致的replicat卡顿,显示正常运行但没有真写数据1、问题症状2、先说问题结论3、排查过程4、解决方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复