订阅(Subscription)是逻辑复制的下游接收端,定义在订阅节点上。订阅声明了连接到远端发布库的网络连接串,以及其所订阅的一个或多个发布名:
CREATE SUBSCRIPTION mysub
CONNECTION 'host=192.168.1.50 port=5432 user=repuser dbname=mydb'
PUBLICATION mypub;
执行该命令时,系统会在远端发布库上自动创建一个配套的逻辑复制槽(Replication Slot),用于持久锁定发布端的 WAL 日志保留进度,确保断网重连时不丢数据。
订阅端的数据表必须预先手动建好表结构(逻辑复制仅复制数据变更,不复制 DDL 建表语句)。表名通过完整的模式限定名精准对齐。字段列按名称匹配,订阅端的字段顺序无需与发布端一致,甚至可以包含发布端不存在的额外带默认值的列。