PostgreSQL 18 中文参考文档(未翻译部分保留英文)🌐 切换到英文原版 →

29.2. 订阅 #

订阅(Subscription)是逻辑复制的下游接收端,定义在订阅节点上。订阅声明了连接到远端发布库的网络连接串,以及其所订阅的一个或多个发布名:

CREATE SUBSCRIPTION mysub
    CONNECTION 'host=192.168.1.50 port=5432 user=repuser dbname=mydb'
    PUBLICATION mypub;

执行该命令时,系统会在远端发布库上自动创建一个配套的逻辑复制槽(Replication Slot),用于持久锁定发布端的 WAL 日志保留进度,确保断网重连时不丢数据。

订阅端的数据表必须预先手动建好表结构(逻辑复制仅复制数据变更,不复制 DDL 建表语句)。表名通过完整的模式限定名精准对齐。字段列按名称匹配,订阅端的字段顺序无需与发布端一致,甚至可以包含发布端不存在的额外带默认值的列。