一个多服务器数据同步的问题?很头痛,希望高手来看下

DSQUARE 2005-08-22 05:59:49
现有4台服务器:
A:广州服务器(电信)
B:本地服务器(电信)
C:本地服务器(网通)
D:北京服务器(网通)

要实现的功能是把四个服务器上的数据库数据实现同步(四个服务器上都有一个数据库表和字段完全相同的数据库)

现在将B设成一个发布服务器,其订阅服务器为A和C

然后,再将C设成一个发布服务器,其订阅服务器为D

目前可以做到的是,A,B,C的数据都可以同步,就是剩下D的数据不知道为什么无法同步,合并的代理程序并没有出错,就是没办法把数据同步过去而已

不知道是什么原因?有没有人知道解决的办法的??先谢谢了
...全文
228 点赞 收藏 11
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
zjcxc 2005-08-24
一台服务器可以同时是发布/分发/订阅服务器.

没用任何错误信息是很奇怪的事, 你另找一台电脑, 测试本机直接的发布/订阅难验证你的配置是否正确
回复
DSQUARE 2005-08-24
自己顶一下
回复
DSQUARE 2005-08-24
其实快照文件生成之后肯定是要通过触发器或者某些其他的程序,然后才能通知合并代理程序把数据合并过去的吧?
回复
DSQUARE 2005-08-24
快照文件应该是正常生成了的,我看过快照代理程序的生成历史记录,里面生成的快照文件记录数是有增加的,但是数据却没有更新过去
回复
zjcxc 2005-08-24
快照文件的生成依赖于sql agent 服务而不是数据变化(按时间调度的) ,如果快照文件都没有正常生成, 应该是你的 sql agent 工作不正常或者根本没有启动.
回复
DSQUARE 2005-08-24
因为现在的架构主要是,A,B,C这三台服务器形成了一个发布和订阅服务器组,B做为发布,其他两个订阅,然后C和D又构成了另外一个发布和订阅服务器组,C做为发布,D做为订阅,这样做的时候,如果前一个组发生了数据的变化的话,那后一个组能不能知道这一变化呢??我感觉会不会是这里可能有问题?如果这里有问题的话,那可能就要改整个架构了,但是如果改架构的话可能会比较困难
回复
DSQUARE 2005-08-24
不是的,我本来就是在服务器上设置的发布和订阅,而且其中有的服务器是在远程设置的,设置的时候都没有出现问题,我也试过修改服务器的发布和订阅的一些属性,但是好像都没用,还有就是我用的是强制订阅.

其实,我早上查了一下快照代理程序的历史记录,它生成快照的时候,是会把新添加的记录加进去的,但是好像无法触发更新订阅服务器的事件
回复
zjcxc 2005-08-23
发布和订阅服务器都没有任何错误信息?

那中作业中,对应作业的状态是什么?
回复
DSQUARE 2005-08-23
核对过了的,有主键,结构完全一样,没有问题

情况主要是这样的:如果我更新A或者B上的数据,那么C上面的数据也会同步更新,但是D就没办法同步,如果我修改了C或者D上面的数据的话,那么C,D之间的数据是可以同步的,但是A,B上面的数据也没办法同步
回复
samfeng_2003 2005-08-23
我猜大概是主键丢失的关系,因为A,C订阅B上的表的时候,表在A,C上生成框架并不生成主键。那么这个时候你再向D上同步那么表没有了主键是不能被发布的!所以,你可以检查一下你服务器C的表,看是否存在主键!因为就算用合并发布也是不能发布没有主键的表的!以上是猜测而已,只供参考。
回复
DSQUARE 2005-08-23
没有,没有任何错误,状态也是正常的,就是说根本查不到有什么出错的地方,所以我才觉得郁闷

不过我不知道是不是可以这样设置,就是说一个服务器可不可以同时设置为发布和订阅服务器,这样设置的话会不会有什么问题
回复
发帖
应用实例
创建于2007-09-28

2.7w+

社区成员

MS-SQL Server 应用实例
申请成为版主
帖子事件
创建了帖子
2005-08-22 05:59
社区公告
暂无公告