发布(Publication)定义在任何物理主库节点上。一个发布对应一张表或一组表的变更事件集合。通过 CREATE PUBLICATION 创建发布:
CREATE PUBLICATION mypub FOR TABLE users, departments; CREATE PUBLICATION alltables FOR ALL TABLES;
可以精确控制向订阅端同步哪些特定的数据操作类型(默认包含 INSERT, UPDATE, DELETE, TRUNCATE):
CREATE PUBLICATION insert_only FOR TABLE mytable WITH (publish = 'insert');
为了能够准确复制 UPDATE 与 DELETE 操作,发布端的数据表必须具备复制标识(Replica Identity),以便在订阅端定位并更新对应的目标行。在默认情况下,表的主键自动充当复制标识。若表无主键,可使用 ALTER TABLE ... REPLICA IDENTITY 指定唯一的候选索引,或在极端情况下声明为 FULL(将整行全量字段作为比对标识)。