暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

ogg for postgresql extract跳过事务

原创 范计杰 2022-04-26
1185

当遇到extract报错(如ERROR OGG-25549),需要临时跳过事务恢复抽取时,OGG提供以下语法,更改抽取的点,但在我测试时(OGG 21.3.0.0.0),使用以下方式跳过事务失败。
ALTER EXTRACT , LSN 0/156784
ALTER EXTRACT , begin 2020-02-18 14:50:43.4230

由于OGG使用test_decoding进行抽取,我们可以通过修改logical slot跳过事务。

简单记录一下步骤

获取要跳过事务的LSN
test=# SELECT * FROM pg_logical_slot_peek_changes('ext1_5127e1a7a8404faf', NULL, 100, 'include-xids', '0');
    lsn     | xid  |                                                                 data
------------+------+--------------------------------------------------------------------------------------------------------------------------------------
 0/6B03CA38 | 2996 | BEGIN
 0/6B03CA38 | 2996 | table public.oggtest: INSERT: id[numeric]:10 c[character varying]:'aaa' tm[timestamp without time zone]:'2022-04-20 10:08:31.465206'
 0/6B03CD00 | 2996 | COMMIT
(3 rows)

修改slot lsn
SELECT * FROM pg_replication_slot_advance('ext1_5127e1a7a8404faf','0/6B03CD00');
select * from pg_get_replication_slots();
       slot_name       |    plugin     | slot_type | datoid | temporary | active | active_pid | xmin | catalog_xmin | restart_lsn | confirmed_flush_lsn
-----------------------+---------------+-----------+--------+-----------+--------+------------+------+--------------+-------------+---------------------
 ext1_5127e1a7a8404faf | test_decoding | logical   |  16384 | f         | f      |            |      |         2997 | 0/6B03CA00  | 0/6B03CD00
(1 row)

调整OGG 抽取lsn
alter ext1,lsn 0/6B03CD00

启动抽取进程
最后修改时间:2022-04-26 10:49:23
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论