逻辑复制插槽使用
针对每一个订阅,都会有一个逻辑复制插槽。逻辑复制插槽主要作用是用插件来进行逻辑解码,记录解码的位置。
当你创建订阅的时候,会自动在主库上执行创建逻辑复制插槽。
pg_create_logical_replication_slot ( name, 'pgoutput' )
复制
pgoutput
是逻辑复制解码默认插件。它对wal进行解码,并创建逻辑复制消息。
接下来我们新建一个逻辑插槽,然后再新创建一个发布,由于当前没人订阅,我们可以通过pg_logical_slot_get_binary_changes
函数查询出初始化需要传输的信息(也就是两条记录)。
hr=# select pg_create_logical_replication_slot('test_slot', 'pgoutput');
pg_create_logical_replication_slot
------------------------------------
(test_slot,0/1DC2E18)
(1 row)
hr=# CREATE PUBLICATION my_publication FOR TABLE jobs;
CREATE PUBLICATION
hr=# SELECT * FROM pg_logical_slot_get_binary_changes('test_slot', NULL, NULL, 'proto_version', '1', 'publication_names', 'my_publication');
lsn | xid | data
-----------+------+--------------------------------------------------------
0/1DC2E38 | 1078 | \x420000000001dc904800026140013146c900000436
0/1DC90E0 | 1078 | \x43000000000001dc90480000000001dc90e000026140013146c9
(2 rows)复制
异步复制

如图所示:是一个异步复制的情况。
1.客户端发起commit提交事务。
2.后台进程会通知写wal日志。
3.后台进程发送sigusr1信号告知wal sender进程,订阅信息已更新。
4.客户端得到提示,事务已提交。
5.wal sneder进程读取wal日志文件,并通过pgoutput进行解码。
6.将解码后的信息传送给订阅端。
同步复制

如图所示:是一个同步复制的情况。
1.客户端发起commit提交事务。
2.后台进程会通知写wal日志。
3.后台进程发送sigusr1信号告知wal sender进程,订阅信息已更新。
4.wal sneder进程读取wal日志文件,并通过pgoutput进行解码。
5.将解码后的信息传送给订阅端。
6.wal sender进程通知后台进程,消息已经传递。
7.客户端得到提示,事务已提交。
后记
未来待续......


励志成为PostgreSQL大神
长按关注吧
文章转载自励志成为PostgreSQL大神,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
王炸!OGG 23ai 终于支持从PostgreSQL备库抽取数据了
曹海峰
414次阅读
2025-03-09 12:54:06
玩一玩系列——玩玩login_hook(一款即将停止维护的PostgreSQL登录插件)
小满未满、
380次阅读
2025-03-08 18:19:28
明明想执行的SQL是DELETE、UPDATE,但为什么看到的是SELECT(FDW的实现原理解析)
小满未满、
360次阅读
2025-03-19 23:11:26
PostgreSQL初/中/高级认证考试(3.15)通过考生公示
开源软件联盟PostgreSQL分会
314次阅读
2025-03-20 09:50:36
IvorySQL 4.4 发布 - 基于 PostgreSQL 17.4,增强平台支持
通讯员
204次阅读
2025-03-20 15:31:04
套壳论
梧桐
201次阅读
2025-03-09 10:58:17
命名不规范,事后泪两行
xiongcc
188次阅读
2025-03-13 14:26:08
PG vs MySQL 执行计划解读的异同点
进击的CJR
128次阅读
2025-03-21 10:50:08
版本发布| IvorySQL 4.4 发布
IvorySQL开源数据库社区
119次阅读
2025-03-13 09:52:33
宝藏PEV,助力你成为SQL优化高手
xiongcc
116次阅读
2025-03-09 23:34:23