CREATE SUBSCRIPTION

用于创建订阅的SQL命令

CREATE SUBSCRIPTION 是用于定义逻辑复制订阅的DDL命令。

CREATE SUBSCRIPTIONPostgreSQL 10 中添加。

用法

提供方上不需要存在相应的 发布。请注意,默认情况下会创建一个活动复制槽。

更改历史记录

示例

CREATE SUBSCRIPTION 的基本执行示例

postgres=# CREATE SUBSCRIPTION test_subscription
  CONNECTION 'host=node1 dbname=testdb user=produser'
  PUBLICATION test_publication;
NOTICE:  created replication slot "test_subscription" on publisher
CREATE SUBSCRIPTION

psql 中列出可用的订阅

postgres=# \dRs
                    List of subscriptions
       Name        |  Owner   | Enabled |    Publication     
-------------------+----------+---------+--------------------
 test_subscription | postgres | t       | {test_publication}
(1 row)

尝试创建重复的订阅

postgres=# CREATE SUBSCRIPTION test_subscription
             CONNECTION 'host=node1 dbname=testdb user=produser'
             PUBLICATION test_publication;
ERROR:  subscription "test_subscription" already exists

尝试使用不正确的 conninfo 字符串创建订阅

postgres=# CREATE SUBSCRIPTION dummy_subscription
             CONNECTION 'host=foo.bar dbname=testdb user=produser'
             PUBLICATION dummy_publication;
ERROR:  could not connect to the publisher: could not translate host name "foo.bar" to address: Name or service not known

尝试使用无效的 conninfo 字符串创建订阅

postgres=# CREATE SUBSCRIPTION dummy_subscription
             CONNECTION 'hostname=foo.bar dbname=testdb user=produser'
             PUBLICATION dummy_publication;
ERROR:  invalid connection string syntax: invalid connection option "hostname"

分类

DDL逻辑复制SQL命令

另请参阅

ALTER SUBSCRIPTIONDROP SUBSCRIPTIONCREATE PUBLICATION

反馈

提交任何关于 "CREATE SUBSCRIPTION" 的评论、建议或更正 此处