sqlserver自带的发布订阅可以帮助实现数据库迁移,主从同步,读写分离等,而且配置简单,这里简单介绍下流程

配置前需要安装sqlserver的复制功能,如果没有安装可以通过安装教程添加该功能

1.配置分发服务器

    连接到将要作为分发服务器的数据库服务器,展开数据库节点,右键点击复制,选择配置分发

    

sql server 发布订阅 sqlserver发布订阅的目的_数据库

    使用本机做分发服务器

    

sql server 发布订阅 sqlserver发布订阅的目的_sqlserver_02

    开启sqlserver代理

    配置快照文件夹(可以根据情况设置本地也可以设置网络共享文件夹目录),如果分发给其他服务器,需要给其他服务器配置访问权限,建议为sqlserver代理新建一个windows用户,并将快照目录权限配置给该用户,方便管理     

    

sql server 发布订阅 sqlserver发布订阅的目的_sqlserver_03

    设置分发数据库名称和数据库存放位置(如果被分发的数据库较大,建议将分发数据库放在其他磁盘,否则在同一个磁盘可能造成磁盘IO过高等)

    

sql server 发布订阅 sqlserver发布订阅的目的_服务器_04

    配置发布服务器(需要发布的数据库服务器,这里也是分发服务器),可以根据情况选择连接方式

    

sql server 发布订阅 sqlserver发布订阅的目的_发布订阅_05

    之后下一步,完成分发配置

    

sql server 发布订阅 sqlserver发布订阅的目的_发布订阅_06

    配置完成后我们可以看到这里生成了分发数据库,然后右键复制目录,选择分发服务器属性   

   

sql server 发布订阅 sqlserver发布订阅的目的_数据库_07

    

sql server 发布订阅 sqlserver发布订阅的目的_发布订阅_08

    这里可以根据实际情况进行一些设置,节省资源,也可以新增或删除分发服务器,启用/禁用发布服务器等

    

sql server 发布订阅 sqlserver发布订阅的目的_sql server 发布订阅_09

2.发布

    右键复制目录——本地发布——新建发布

    

sql server 发布订阅 sqlserver发布订阅的目的_数据库_10

    选择需要发布的数据库

    

sql server 发布订阅 sqlserver发布订阅的目的_数据库_11

    发布类型,这里选择事物发布(实时同步)

    

sql server 发布订阅 sqlserver发布订阅的目的_sql server 发布订阅_12

    根据需要选择发布的表单(注意:表必须包含主键)

    

sql server 发布订阅 sqlserver发布订阅的目的_sql server 发布订阅_13

    一路往下,设置快照代理运行时间;代理安全设置

对于事物发布而言,快照代理只需第一次运行初始化即可,重复执行会造成快照文件夹过大,下图中应单次运行

    

sql server 发布订阅 sqlserver发布订阅的目的_发布订阅_14

    

sql server 发布订阅 sqlserver发布订阅的目的_发布订阅_15

   设置发布名称——完成

   

sql server 发布订阅 sqlserver发布订阅的目的_数据库_16

3.订阅

    登录订阅服务器,并连接数据库

    右键复制目录——本地订阅——新建订阅

    

sql server 发布订阅 sqlserver发布订阅的目的_服务器_17

    选择发布服务器——数据库——发布项

    

sql server 发布订阅 sqlserver发布订阅的目的_服务器_18

    选择代理位置,可以选择分发服务器或者订阅服务器,这里选择订阅服务器

    

sql server 发布订阅 sqlserver发布订阅的目的_数据库_19

    选择将表或数据库订阅到哪个数据库

    

sql server 发布订阅 sqlserver发布订阅的目的_数据库_20

    配置与分发服务器的连接

    

sql server 发布订阅 sqlserver发布订阅的目的_数据库_21

    下一步——完成

    

sql server 发布订阅 sqlserver发布订阅的目的_数据库_22

   此时我们可以看到订阅服务器上test数据库已经订阅到发布服务发布的数据,并且由于是事物发布,数据是实时同步的

    

sql server 发布订阅 sqlserver发布订阅的目的_sql server 发布订阅_23