Goal
探究SharePlex与Oracle Goldengate事务开始复制还是事务提交之后复制。
1.SharePlex验证
1.1 搭建一个简单SharePlex链路
本地oracle到kafka链路,配置如下:
sp_ctrl (single:12000)> view config kafka datasource:o.messay #source tables target tables routing map expand hr.% not (TEST_TYPE) !kafka single sp_ctrl (single:12000)> show Process Source Target State PID ---------- ------------------------------------ ---------------------- -------------------- ------ Capture o.messay Running 8336 Read o.messay Running 8338 Post o.messay-single x.kafka Running 8836 sp_ctrl (single:12000)> qstatus Queues Statistics for single Name: o.messay (Capture queue) Number of messages: 0 (Age 0 min; Size 2 mb) Backlog (messages): 0 (Age 0 min) Name: single (o.messay-x.kafka) (Post queue) Number of messages: 0 (Age 0 min; Size 1 mb) Backlog (messages): 0 (Age 0 min)
1.2 测试
1.2.1 源端插入数据,并不提交
06:20:55 HR@messay > insert into test values(19,'s(*)*dfsfdsdfsdfs'); 1 row created.
1.2.2 查看队列数据
sp_ctrl (single:12000)> qstatus Queues Statistics for single Name: o.messay (Capture queue) Number of messages: 0 (Age 0 min; Size 2 mb) Backlog (messages): 0 (Age 0 min) Name: single (o.messay-x.kafka) (Post queue) Number of messages: 0 (Age 0 min; Size 1 mb) Backlog (messages): 0 (Age 0 min)
1.2.3 qview查看队列数据
[oracle@single rim]$ qview -i qview> qinit # 初始化qview工具 qview> list # 列出当前所有队列 The following queues exist: o.messay+C WRITER +PA+o.messay+sp_ocap+o.messay READER +PR+o.messay+sp_ordr+o.messay single+P+o.messay-x.kafka subqueues range from 0 to 7 WRITER +PR+o.messay+sp_ordr+o.messay READER +PP+single+sp_xpst+o.messay-x.kafka qview> sque o.messay+C # 查看capture队列所有的sub queue子队列 Queue name: o.messay+C qview> sque single+P+o.messay-x.kafka # 查看子队列消息数量 Queue name: single+P+o.messay-x.kafka qview>
# 可以看到队列中没有任何数据,那是否SharePlex没有复制呢?我们继续验证
1.2.4 继续插入数据,依然不提交
06:23:54 HR@messay > insert into test values(20,'6646dfsfdsdfsdfs'); 1 row created.
1.2.5 查看队列,可以看到post队列中已经有一条message
sp_ctrl (single:12000)> qstatus Queues Statistics for single Name: o.messay (Capture queue) Number of messages: 0 (Age 0 min; Size 2 mb) Backlog (messages): 0 (Age 0 min) Name: single (o.messay-x.kafka) (Post queue) Number of messages: 1 (Age 0 min; Size 1 mb) Backlog (messages): 0 (Age 0 min)
1.2.6 qview验证消息
sp_ctrl (single:12000)> stop post [oracle@single rim]$ ../../prodir/bin/qview -i qview> qinit qview> list The following queues exist: o.messay+C WRITER +PA+o.messay+sp_ocap+o.messay READER +PR+o.messay+sp_ordr+o.messay single+P+o.messay-x.kafka subqueues range from 0 to 7 WRITER +PR+o.messay+sp_ordr+o.messay READER +PP+single+sp_xpst+o.messay-x.kafka qview> set out qview> set detail full qview> sque single+P+o.messay-x.kafka Queue name: single+P+o.messay-x.kafka Subqueue 6: 1 msgs 2:10 mins qview> open p r Current queue single+P+o.messay-x.kafka user +PP+single+sp_xpst+o.messay-x.kafka qview> oread 6 1 Total messages read: 1 qview> exit [oracle@single rim]$ cat qview.out OREAD 6 1 : Sun Aug 23 06:29:07 2020 for single+P+o.messay-x.kafka --------------------------------------------------- Sque 6, seq 0, mid 17, sqmid 1, mflags 0 odr_magic 0x4f445236 odr_op ODR_INSERT1 (1) odr_trans 7(5).3169-6(1145) odr_time 08/23/20 06:23:55 (1049178235) odr_sid messay odr_seq#/offset 26/33896976 odr_scn (high) 0 odr_scn 16534229 odr_userid