ALTER SUBSCRIPTION
功能描述
ALTER SUBSCRIPTION可以修改在CREATE SUBSCRIPTION中指定的订阅属性。
注意事项
订阅的所有者才能执行ALTER SUBSCRIPTION,并且新的所有者必须是系统管理员。
语法格式
更新订阅的连接信息。
ALTER SUBSCRIPTION name CONNECTION 'conninfo'
更新订阅的发布端的发布名称。
ALTER SUBSCRIPTION name SET PUBLICATION publication_name [, ...]
更新订阅的订阅列表。
ALTER SUBSCRIPTION name REFRESH PUBLICATION [ WITH ( refresh_option [= value] [, ... ] ) ]
激活订阅。
ALTER SUBSCRIPTION name ENABLE
禁用订阅。
ALTER SUBSCRIPTION name DISABLE
更新CREATE SUBSCRIPTION中定义的属性。
ALTER SUBSCRIPTION name SET ( subscription_parameter [= value] [, ... ] )
更新订阅的属主。
ALTER SUBSCRIPTION name OWNER TO { new_owner | CURRENT_USER | SESSION_USER }
修改订阅的名称。
ALTER SUBSCRIPTION name RENAME TO new_name
参数说明
name
要修改属性的订阅的名称。
CONNECTION 'conninfo'
该子句修改最初由CREATE SUBSCRIPTION设置的连接属性。
ENABLE
启用先前禁用的订阅,在事务结束时启动逻辑复制工作。
DISABLE
禁用正在运行的订阅,在事务结束时停止逻辑复制工作。
SET ( subscription_parameter [= value] [, … ] )
该子句修改原先由CREATE SUBSCRIPTION设置的参数。允许的选项是slot_name和synchronous_commit。
- 如果创建订阅时设置enabled为false,则slot_name将被强制设置为NONE,即空值,即使用户指定了slot_name的值,复制槽也不存在。
- 将enabled参数的值由false改为true,如果是第一次启用订阅,将会连接发布端创建复制槽,此时如果用户未指定slot_name参数的值,则会使用默认值,即对应的订阅的名称。
- 将enabled参数的值由true改为false,将会禁用订阅,暂停数据同步。
- 当enabled为true,即订阅处于正常使用状态,不能修改slot_name为空,但可以修改复制槽的名称为其他非空合法名称。
除了修改原先由CREATE SUBSCRIPTION设置的参数外,还允许设置skiplsn,说明如下。
skiplsn (string)
如果设置了skiplsn,则后续commit_lsn为该lsn的事务将会被跳过。
syncconninfo(bolean)
如果设置为syncconninfo=false,则发布端主备切换后不会同步连接信息。
REFRESH PUBLICATION
从发布端获取缺少的表信息。这将开始复制自上次调用REFRESH PUBLICATION或从CREATE SUBSCRIPTION以来添加到订阅发布中的表。
refresh_option指定了刷新操作的附加选项。支持的选项有:
copy_data (boolean) 指定在复制启动后是否应复制正在订阅的发布中的现有数据。默认值是true。(以前订阅的表不会被复制)
new_owner
订阅的新所有者的用户名。
new_name
订阅的新名称。
示例
请参见示例。