sqlserver2008 R2 发布订阅失败

sqlserver2008 R2 发布订阅失败,第1张

环境:发布服务器A:Windows Server 2008 R2 Standard, SQL SERVER 2008 R2, 订阅服务器B:Windows Server 2003 R2 Standard X64 Edition Service Pack2, SQL SERVER 2008 R2 Standard

开始前,你必须确保实例已经安装了Replication Componets,否则会报错,详情请见MS SQL 2008 发布订阅配置遇到的错误,在服务器A上,打开SSMS,右键单击Local Publication(本地发布),选择New Publication(新建发布)

(图1)

然后就进入新建发布的向导了,如果第一次新建发布,有可能出现下面图2、图3,否则不会遇到这些界面

(图2)

不建议将快照文件夹放在C盘,最好设置在其它非系统磁盘。如果下面你不用UNC路径并且共享改目录,必须设置可读权限,否则后面你可能会碰到一个让你棘手的错误,具体参见MS SQL 2008 发布订阅配置错误总结

(图3)

选择你要发布的数据库,这里只能单选,不能选择多个数据库。

(图4)

接下来,关于选择发布类型,根据你的实际情况,选择合适的发布类型

快照复制:快照复制将数据以特定时刻的瞬时状态分发,而不监视对数据的更新。发生同步时,将生成完整的快照并将其发送到订阅服务器。 当符合以下一个或多个条件时,使用快照复制本身是最合适的:

1: 很少更改数据。

2: 在一段时间内允许具有相对发布服务器已过时的数据副本。 

3: 复制少量数据。

4: 在短期内出现大量更改。

事务复制:事务复制通常用于服务器到服务器环境中, 在以下各种情况下适合采用事务复制:

 1: 希望发生增量更改时将其传播到订阅服务器。

 2: 从发布服务器上发生更改,至更改到达订阅服务器,应用程序需要这两者之间的滞后时间较短。 

3: 应用程序需要访问中间数据状态。 例如,如果某一行更改了五次,事务复制将允许应用程序响应每次更改(例如,激发触发器),而不只是响应该行最终的数据更改。

4:发布服务器有大量的插入、更新和删除活动。

 5:发布服务器或订阅服务器不是 SQL Server 数据库(例如,Oracle)。

发布订阅默认最小时间间隔就是10秒,即使你选择的时间是实时,但其实也不会是实时。你可以将发布订阅看成是由sqlserver建立的一系列job,在这些job里自动完成你需要的数据同步工作。想要真正理解这个10秒间隔,理解整个发布订阅的数据流程,你就会非常清楚。

首先发布库做自己的事务,完成后写到自己的日志;

然后在分发服务器上有个日志读取器,它会隔一会就来读取一下有没有新日志,有就进行分发工作,没有就继续等待;

订阅收到日志,然后进行重建工作,让订阅端也能看到对应的数据。

可能你会觉得为什么日志读取器不一直standby,因为这需要成本,而数据库是非常在意成本的,所以不会一直读取,而是隔一个很小的间隔读取一次。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10056723.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存