CREATE SUBSCRIPTION
是用于定义逻辑复制订阅的DDL命令。
CREATE SUBSCRIPTION
在 PostgreSQL 10 中添加。
用法
提供方上不需要存在相应的 发布。请注意,默认情况下会创建一个活动复制槽。
更改历史记录
- PostgreSQL 17
- 添加参数
failover
(提交 776621a5)
- 添加参数
- PostgreSQL 16
- PostgreSQL 15
- PostgreSQL 14
- PostgreSQL 10
- 添加(提交 665d1fad)
示例
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"
参考
- PostgreSQL 文档: CREATE SUBSCRIPTION