CREATE SUBSCRIPTION
功能描述
为当前数据库添加一个新的订阅(SUBSCRIPTION)。
订阅(Subscription) 是指一个数据库实例(称为订阅者)从另一个数据库实例(称为发布者)接收数据变更的过程。订阅者通过订阅发布者的数据变更,实现数据的同步和分发。
该语法在9.1.1.100及以上集群版本中已废弃,执行时会报错SUBSCRIPTION is not yet supported。
注意事项
- 只有系统管理员才可以创建订阅。
- 新创建的订阅名称不能与当前数据库中任何现有的订阅名称相同。
语法格式
1 2 3 4 | CREATE SUBSCRIPTION name CONNECTION 'conninfo' PUBLICATION publication_name [, ...] [ WITH ( subscription_parameter [= value] [, ... ] ) ] |
参数说明
| 参数 | 描述 | 取值范围 |
|---|---|---|
| name | 新订阅的名称。 | 字符串,要符合标识符的命名规范。参见标识符命名规范。 |
| conninfo | 连接发布端的字符串。
| 例如:host=1.1.1.1,2.2.2.2 port=10000,20000 dbname=postgres user=repusr1 password=password。 |
| publication_name | 要订阅的发布端的发布名称,一个订阅可以对应多个发布。 | 已有的发布名称。 |
| WITH ( subscription_parameter [= value] [, ... ] ) | 该子句指定订阅的可选参数。
| - |
示例
数据库发布的示例数据请参考示例。
- 创建订阅,订阅上游数据库的发布。
CREATE SUBSCRIPTION sub_demo CONNECTION 'host=10.***.*.** port=10000 user=u_admin dbname=testdb password=********' PUBLICATION pub_sales_only; - 订阅多个发布。
CREATE SUBSCRIPTION sub_demo_1 CONNECTION 'host=10.***.*.** port=10000 user=u_admin dbname=testdb password=********' PUBLICATION pub_sales_only,pub_sales_all_ops; - 订阅所有表(需上游发布包含ALL TABLES IN SCHEMA)。
CREATE SUBSCRIPTION sub_demo_1 CONNECTION 'host=10.***.*.** port=10000 user=u_admin dbname=testdb password=********' PUBLICATION pub_all_tables;