概述  

配置复制就没有数据库镜像和AlwaysOn的要求那么高,只需要两台服务器能通过TCP进行通讯即可,两台服务器操作系统和SQL版本都可以不完全一致,而且两台服务器也不需要加入域,所以配置复制订阅就简单多了,但是复制订阅主要是针对数据表而不能像镜像和AlwaysOn那样配置整个数据库,这也是它的缺点吧。

接下来主要除了前面介绍配置复制订阅后面还会解释一些需要注意的事项。

复制数据库:AdventureWorks2008R2

目录

 概述  配置分发服务器  创建发布  创建订阅  查看配置  添加新的发布表  总结 配置分发服务器

将分发服务器和发布服务器配置为同一台服务器。

1.复制-本地发布-配置


MYSQL发布订阅到SQLSERVER sqlserver发布订阅的目的_MYSQL发布订阅到SQLSERVER


2.配置分发向导-下一步


MYSQL发布订阅到SQLSERVER sqlserver发布订阅的目的_数据库_02


3.CLU11是发布服务器,这里选择将CLU11同时配置为分发服务器,会在CLU11上面创建分发数据库


MYSQL发布订阅到SQLSERVER sqlserver发布订阅的目的_MYSQL发布订阅到SQLSERVER_03


4.选择快照路径,默认路径即可


MYSQL发布订阅到SQLSERVER sqlserver发布订阅的目的_数据库_04


5.分发数据库名称和分发数据库数据文件、日志文件路径


MYSQL发布订阅到SQLSERVER sqlserver发布订阅的目的_MYSQL发布订阅到SQLSERVER_05


6.默认下一步


MYSQL发布订阅到SQLSERVER sqlserver发布订阅的目的_MYSQL发布订阅到SQLSERVER_06


7.默认完成


MYSQL发布订阅到SQLSERVER sqlserver发布订阅的目的_服务器_07


8.完成分发服务器配置


MYSQL发布订阅到SQLSERVER sqlserver发布订阅的目的_SQL_08


创建发布

1.复制-本地发布-新建发布 


MYSQL发布订阅到SQLSERVER sqlserver发布订阅的目的_服务器_09


2.选择需要发布的数据库


MYSQL发布订阅到SQLSERVER sqlserver发布订阅的目的_MYSQL发布订阅到SQLSERVER_10


3.选择发布类型-事务发布

发布类型总共有四种,这里配置最常用的事务发布类型


MYSQL发布订阅到SQLSERVER sqlserver发布订阅的目的_数据库_11


4.选择需要配置发布的表

创建发布的表一定要存在主键列


MYSQL发布订阅到SQLSERVER sqlserver发布订阅的目的_服务器_12


5.查看发布的项目属性,默认配置即可


MYSQL发布订阅到SQLSERVER sqlserver发布订阅的目的_数据库_13


6.在表项目属性中主要是配置将哪些对象和设置应用的订阅服务器,

在属性中我们可以看到会复制聚集索引、排序规则、DML操作、DLL操作等应用到订阅服务器,

因为一般发布服务器和订阅服务器的业务应用是不一样的,所以默认只会复制这些主要的对象,不会复制非聚集索引外键等,因为在订阅服务器可能需要建的它需要的业务场景的索引。


MYSQL发布订阅到SQLSERVER sqlserver发布订阅的目的_SQL_14


7.不配置筛选,默认下一步


MYSQL发布订阅到SQLSERVER sqlserver发布订阅的目的_服务器_15


8.勾选立即创建快照并保持可用状态


MYSQL发布订阅到SQLSERVER sqlserver发布订阅的目的_数据库_16


9.配置代理安全性账户


MYSQL发布订阅到SQLSERVER sqlserver发布订阅的目的_SQL_17


10.用于连接到发布服务器的rep账户必须拥有AdventureWorks2008R2数据库的所有者权限,服务器级别的权限public即可


MYSQL发布订阅到SQLSERVER sqlserver发布订阅的目的_MYSQL发布订阅到SQLSERVER_18


11.创建发布-下一步


MYSQL发布订阅到SQLSERVER sqlserver发布订阅的目的_数据库_19


12.输入发布项目名称


MYSQL发布订阅到SQLSERVER sqlserver发布订阅的目的_MYSQL发布订阅到SQLSERVER_20


13.完成发布数据库配置


MYSQL发布订阅到SQLSERVER sqlserver发布订阅的目的_SQL_21


创建订阅

1.在订阅服务器中-复制-本地订阅-新建订阅 


MYSQL发布订阅到SQLSERVER sqlserver发布订阅的目的_数据库_22


2.选择发布服务器-查找SQL Server发布服务器


MYSQL发布订阅到SQLSERVER sqlserver发布订阅的目的_服务器_23


3.连接CLU11发布服务器


MYSQL发布订阅到SQLSERVER sqlserver发布订阅的目的_MYSQL发布订阅到SQLSERVER_24


4.由于CLU11服务器中只配置了一个发布,所以默认显示出刚才配置的发布


MYSQL发布订阅到SQLSERVER sqlserver发布订阅的目的_服务器_25


5.配置分发代理位置-选择在分发服务器上运行所有代理


MYSQL发布订阅到SQLSERVER sqlserver发布订阅的目的_数据库_26


6.下一步


MYSQL发布订阅到SQLSERVER sqlserver发布订阅的目的_SQL_27


8.配置订阅代理安全性账户


MYSQL发布订阅到SQLSERVER sqlserver发布订阅的目的_数据库_28


9.连接到订阅服务器的账户同样需要订阅数据库的所有者权限,服务器级别也是Public即可


MYSQL发布订阅到SQLSERVER sqlserver发布订阅的目的_SQL_29


10.代理计划-连续运行


MYSQL发布订阅到SQLSERVER sqlserver发布订阅的目的_MYSQL发布订阅到SQLSERVER_30


11.初始化时间-立即


MYSQL发布订阅到SQLSERVER sqlserver发布订阅的目的_服务器_31


12.创建订阅


MYSQL发布订阅到SQLSERVER sqlserver发布订阅的目的_数据库_32


13.完成订阅创建


MYSQL发布订阅到SQLSERVER sqlserver发布订阅的目的_MYSQL发布订阅到SQLSERVER_33


14.完成


MYSQL发布订阅到SQLSERVER sqlserver发布订阅的目的_服务器_34


查看配置

1.在发布服务器CLU11的路径下可以找到新生成的快照文件路径

 

MYSQL发布订阅到SQLSERVER sqlserver发布订阅的目的_MYSQL发布订阅到SQLSERVER_35


2.在CLU11发布服务器的系统数据库中创建了“distribution”分发数据库


MYSQL发布订阅到SQLSERVER sqlserver发布订阅的目的_SQL_36


3.在订阅服务器,订阅数据库“AdventureWorks2008R2”中生成了发布的两张表,

注意:订阅数据库与发布数据库不需要一样,这里不要被误解


MYSQL发布订阅到SQLSERVER sqlserver发布订阅的目的_SQL_37


4.在发布服务器的复制下创建了一个发布项目


MYSQL发布订阅到SQLSERVER sqlserver发布订阅的目的_数据库_38


5.查看复制监视器,在这里可以配置和查看发布订阅和监控分发情况,可以配置警告


MYSQL发布订阅到SQLSERVER sqlserver发布订阅的目的_SQL_39


6.发布属性-这里可以配置和修改发布


MYSQL发布订阅到SQLSERVER sqlserver发布订阅的目的_SQL_40


7.订阅属性-这里可以修改订阅安全登入账号


MYSQL发布订阅到SQLSERVER sqlserver发布订阅的目的_数据库_41


8.在发布服务器的代理中生成了三个作业,分别是和分发有关的快照日志读取作业,和发布有关的发布作业,和订阅有关的分发作业。


MYSQL发布订阅到SQLSERVER sqlserver发布订阅的目的_数据库_42


添加新的发布表

1. 在复制监视器-我的发布服务器-CLU11-右键发布项目-属性,去掉”仅显示列表中已选中的项目勾选“

勾选”AWBuildVersion“表,确定保存

创建发布的表一定要存在主键列


MYSQL发布订阅到SQLSERVER sqlserver发布订阅的目的_MYSQL发布订阅到SQLSERVER_43


2.复制监视器-我的发布服务器-CLU11-右键发布项目-生成快照


MYSQL发布订阅到SQLSERVER sqlserver发布订阅的目的_数据库_44


3.在订阅数据库查看生成的订阅表


MYSQL发布订阅到SQLSERVER sqlserver发布订阅的目的_数据库_45


4.在发布服务器的快照文件夹下面可以看到生成了一个新的快照文件夹


MYSQL发布订阅到SQLSERVER sqlserver发布订阅的目的_服务器_46


5.查看订阅属性,可以看到分发历史记录


MYSQL发布订阅到SQLSERVER sqlserver发布订阅的目的_SQL_47


总结

 由于将分发服务器和发布服务器配置在同一台服务器,对发布服务器会有一定的压力,在平时的操作过程中如果需要对发布的表进行删除字段的操作之前首先要查看订阅表中是否创建了该字段的索引,如果创建了需要把字段从索引中去掉,否则会造成发布订阅报错。