此条目与PostgreSQL的一个功能相关,该功能是PostgreSQL 17的一部分,预计将于2024年底发布。
pg_createsubscriber
是一个用于将物理备用转换为新的逻辑备用的核心实用程序。
pg_createsubscriber
是在PostgreSQL 17中添加的。
更改历史记录
- PostgreSQL 17
- 添加 (提交d44032d0)
示例
此pg_createsubscriber
的基本用法示例假设一个由主节点和两个物理备用节点组成的三节点集群,并且正在使用复制槽。
postgres=# SELECT slot_name, slot_type, restart_lsn FROM pg_replication_slots ORDER BY 1; slot_name | slot_type | restart_lsn -----------+-----------+------------- node2 | physical | 0/4000060 node3 | physical | 0/4000060 (2 rows)
要将node3
转换为逻辑备用,请执行以下步骤:
- 停止
node3
node3$ pg_ctl -D /var/lib/pgsql/data/ stop
- 执行
pg_createsubscriber
node3$ pg_createsubscriber \ -D /var/lib/pgsql/data/ \ --publisher-server 'host=node1 dbname=postgres user=postgres port=5432' \ -d postgres
- 启动
node3
node3$ pg_ctl -D /var/lib/pgsql/data/ start
此时,node3
将作为逻辑备用连接到node1
。
postgres=# SELECT slot_name, slot_type, restart_lsn FROM pg_replication_slots ORDER BY 1; slot_name | slot_type | restart_lsn --------------------------------+-----------+------------- node2 | physical | 0/40382F0 pg_createsubscriber_5_80f3c6f3 | logical | 0/40382B8 (2 rows)
参考文献
- PostgreSQL 17 文档: pg_createsubscriber
有用链接
- PostgreSQL 17:使用pg_createsubscriber将物理复制转换为逻辑复制 - 2024年3月Daniel Westermann / dbi services发表的博文