PostgreSQL通过解析日志,获取数据库增量变化,pg_recvlogical

本文介绍了如何在PostgreSQL中通过pg_recvlogical工具和test_decoding插件来获取数据库的增量变化,包括创建逻辑复制槽、远程回放日志、设置开始接收位置以及删除复制槽的操作步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.首先用该工具来看我们的日志变化,需要先将test_decoding插件编译并安装(进入contrib,编译安装即可)

 

创建一个slot

SELECT * FROM pg_create_logical_replication_slot('regression_slot', 'test_decoding’);

 

获取slot记录的变更日志:

postgres=# insert into test values(1, 'test', now());

INSERT 0 1

postgres=# insert into test values(1, 'test', now());

INSERT 0 1

 

只获取变化,不消费slot

postgres=# SELECT * FROM pg_logical_slot_peek_changes('regression_slot', NULL, NULL);

    lsn    | xid |                                                             data

-----------+-----+-------------------------------------------------------------------------------------------------------------------------------

 0/16637F8 | 572 | BEGIN 572

 0/16637F8 | 572 | table public.test: INSERT: id[integer]:1 info[text]:'test' crt_time[timestamp without time zone]:'2019-05-27 11:52:08.147527'

 0/1663B20 | 572 | COMMIT 572

 0/1663B58 | 573 | BEGIN 573

 0/1663B58 | 573 | table public.test: INSERT: id[integer]:1 info[text]:'test' crt_time[timestamp without time zone]:'2019-05-27 11:52:09.67556'

 0/1663BD8 | 573 | COMMIT 573

(6 rows)

postgres=# select * from pg_replication

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值