# 创建发布
#### 什么是发布订阅？
RDS for SQL Server提供的发布与订阅功能，利用复制技术来实现数据同步，实现数据的读写分离和云数据库之间以及线下线上数据库之间的数据同步。
#### 操作场景
RDS for SQL Server提供的发布功能，将当前实例作为发布实例，需要先为发布实例设置分发服务器，再创建发布，然后为已创建的发布添加订阅服务器，实现发布实例的数据通过分发服务器同步到订阅服务器。
图1拓扑图   
![](https://support.huaweicloud.com/usermanual-rds-mssql/zh-cn_image_0000002250115137.png "点击放大")
#### 约束限制
- RDS for SQL Server不支持跨Region创建发布订阅链路。
- 1个实例只能设置1个分发服务器，当前实例的所有发布均使用这个分发服务器。删除分发服务器会同时删除发布。
- RDS for SQL Server Web版不能作为分发服务器和创建发布，但可以作为订阅服务器。
- 创建发布时，数据库名和发布名不能和已有的发布一致。
- RDS for SQL Server仅支持事务发布。
- 添加其他订阅服务器时，远程用户要有sysadmin权限。
- 添加RDS for SQL Server订阅服务器时，一次性最多选择10个数据同步的链路。
- 如果实例已开启发布订阅功能，不支持修改该实例的内网IP和端口。
- 发布端和订阅端的表名和字段名不支持中文字符。
- 当分发服务器节点故障时，不支持通过主备切换恢复发布订阅链路。
 
#### 设置分发服务器
1. [登录RDS管理控制台](https://console.huaweicloud.com/rds/#/rds/management/list)。
2. 单击管理控制台左上角的![](https://support.huaweicloud.com/usermanual-rds-mssql/zh-cn_image_0000002572991262.png)，选择区域。
3. 在"实例管理"页面，选择目标实例，单击实例名称，进入实例的"概览"页面。
4. 在左侧导航栏选择"发布订阅"。
5. 在"发布"页签下，单击"设置分发服务器"。
6. 在弹框中，选择当前实例或者其他实例作为发布服务器，勾选"我已了解上述信息"，单击"确定"。 
   图2设置分发服务器   
   ![](https://support.huaweicloud.com/usermanual-rds-mssql/zh-cn_image_0000002215075222.png "点击放大")
   
   
7. 查看已设置的分发服务器。 
   图3查看分发服务器   
   ![](https://support.huaweicloud.com/usermanual-rds-mssql/zh-cn_image_0000002249955245.png "点击放大")
   
   
 
 #### 创建发布
1. [登录RDS管理控制台](https://console.huaweicloud.com/rds/#/rds/management/list)。
2. 单击管理控制台左上角的![](https://support.huaweicloud.com/usermanual-rds-mssql/zh-cn_image_0000002572991262.png)，选择区域。
3. 在"实例管理"页面，选择目标实例，单击实例名称，进入实例的"概览"页面。
4. 在左侧导航栏选择"发布订阅"。
5. 在"发布"页签下，单击"创建发布"。
6. 在创建发布页面，设置发布信息后，单击"确认"。 
   - 填写发布名称、选择发布数据库，以及发布数据。
   
   - 设置发布表/字段的筛选器：单击"设置筛选器"，设置筛选条件，将按照筛选条件发布表/字段。
   
   - 设置项目属性：单击"设置项目属性"，填写发布表/字段的属性信息。
   
   - 增量快照策略：支持按天、按周、按月自定义策略，在分发服务器生成增量快照。
   
   
   图4创建发布   
   ![](https://support.huaweicloud.com/usermanual-rds-mssql/zh-cn_image_0000002214915398.png "点击放大")
   图5设置项目属性   
   ![](https://support.huaweicloud.com/usermanual-rds-mssql/zh-cn_image_0000002215075226.png "点击放大")
   
   
7. 查看已创建的发布。 
   图6查看发布   
   ![](https://support.huaweicloud.com/usermanual-rds-mssql/zh-cn_image_0000002215075214.png "点击放大")
   - 添加订阅功能，请参见[添加订阅服务器]。
   
   - 单击"查看监控"，查看"数据更改延迟后时长"和"事务数"监控数据。
   
   - 选择"更多 \> 修改发布"，可以重新选择发布表/字段，以及增量快照策略。
   
   - 选择"更多 \> 删除"，删除发布。
   
   - 选择"更多 \> 重新生成快照"，在分发服务器重新生成增量快照。
   
   
   
   
 
 #### 添加订阅服务器
1. [登录RDS管理控制台](https://console.huaweicloud.com/rds/#/rds/management/list)。
2. 单击管理控制台左上角的![](https://support.huaweicloud.com/usermanual-rds-mssql/zh-cn_image_0000002572991262.png)，选择区域。
3. 在"实例管理"页面，选择目标实例，单击实例名称，进入实例的"概览"页面。
4. 在左侧导航栏选择"发布订阅"。
5. 在"发布"页签下，在已创建的发布上，单击"添加订阅"。
6. 单击"添加订阅服务器"。
7. 在弹出页面，设置订阅服务器信息后，单击"确定"。 
   RDS for SQL Server支持的发布订阅服务器参考[发布订阅服务器兼容矩阵](https://support.huaweicloud.com/usermanual-rds-mssql/rds_sqlserver_08_0025.html#rds_sqlserver_08_0025__zh-cn_topic_0000001550167145_section4618203719311)。
   **服务器来源：云数据库RDS for SQL Server。**
   - 目标数据库：勾选1个或多个RDS for SQL Server订阅实例及目标数据库，单击![](https://support.huaweicloud.com/usermanual-rds-mssql/zh-cn_image_0000002249955237.png)同步到右侧，即从当前实例同步数据到已勾选的目标数据库。
     当前实例作为发布实例，发布实例与订阅实例需要在同一VPC或建立了对等连接的不同VPC，若不在同一安全组则需配置安全组规则。
     
   
   - 订阅方式：推送订阅
   
   - 同步策略：选择数据订阅的同步方式，支持按天、按周、按月自定义策略。
   
   
   图7添加RDS订阅服务器   
   ![](https://support.huaweicloud.com/usermanual-rds-mssql/zh-cn_image_0000002215075230.png "点击放大")
   **服务器来源：其他服务器。**
   - 填写服务器名称、IP、端口号、登录用户名及密码，以及目标数据库。
   
   - 订阅方式：推送订阅
   
   - 同步策略：选择数据订阅的同步方式，支持按天、按周、按月自定义策略。
   
   
   图8添加其他订阅服务器   
   ![](https://support.huaweicloud.com/usermanual-rds-mssql/zh-cn_image_0000002215075218.png "点击放大")
   
   
8. 在已创建的发布上，单击订阅数据库列的个数，查看订阅详情。 
   图9订阅详情   
   ![](https://support.huaweicloud.com/usermanual-rds-mssql/zh-cn_image_0000002250115121.png "点击放大")
   
   
 
