CREATE SUBSCRIPTION
功能描述
为当前数据库添加一个新的订阅。订阅名称必须与数据库中任何现有的订阅不同,订阅表示到发布者的复制连接。
注意事项
- 该语法仅8.2.0.100及以上集群版本支持。
- 只有系统管理员才可以创建订阅。
语法格式
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_123。
- host
发布端IP地址,可以同时指定发布端主机和备机的IP地址,如果同时指定了多个IP,以英文逗号分隔。
- port
发布端端口,此处的端口不能使用主端口,而应该使用主端口+1端口,否则会与线程池冲突。可以同时指定发布端主机和备机的端口,如果同时指定了多个端口,以英文逗号分隔。
host和port的数量要一致,并且要一一对应。
- dbname
发布所在的数据库。
- user和password
用于连接发布端且具有系统管理员权限(SYSADMIN)或者运维管理员权限(OPRADMIN)的用户名和密码。
- host
- publication_name
要订阅的发布端的发布名称,一个订阅可以对应多个发布。
- WITH ( subscription_parameter [= value] [, … ] )
该子句指定订阅的可选参数。支持的参数有:
- enabled
指定订阅是否应该主动复制,或者是否应该只是设置,但尚未启动。
取值范围:true,false。
默认值:true。
- create_slot
指定该命令是否要在发布者上创建复制槽。
取值范围:true,false。
默认值:true。
- slot_name
要使用的复制槽的名称。
取值范围:字符串。
默认值:默认使用订阅名称作为复制槽的名称。
- enabled
示例
CREATE SUBSCRIPTION mysub CONNECTION 'host=192.168.1.50 port=5432 user=foo dbname=foodb password=xxxx' PUBLICATION mypublication;