云数据库 RDS-RDS for PostgreSQL发布与订阅:订阅使用限制
订阅使用限制
- 为了确保使用Failover Slot,必须在发布端手工创建逻辑复制槽(Failover Slot),并通过create_slot = false关联已有复制槽,如下:
CREATE SUBSCRIPTION sub1 CONNECTION 'host=192.168.0.1 port=5432 user=user1 dbname=db1' PUBLICATION pub_name with (create_slot = false,slot_name = FailoverSlot_name);
- 逻辑复制不会复制DDL变更,因此发布集中的表必须已经存在于订阅端上。
- 同一个数据库中,可以创建多个subscription,这些subscription可以来自一个或多个发布者。
- 订阅者的同一张表,不能接受来自同一个源的多个发布。
- 在创建subscription或者alter subscription时,可以使用enable来启用该订阅,或者使用disable暂停该订阅。
- 如果要完全删除订阅,使用DROP SUBSCRIPTION,注意,删除订阅后,本地的表不会被删除,数据也不会清除,仅仅是不在接收该订阅的上游信息。
如果订阅与复制槽相关联,就不能在事务块内部执行DROP SUBSCRIPTION。可以使用ALTER SUBSCRIPTION取消关联复制槽。
删除订阅可参考以下步骤: