要求同步两台SQL Server2008的数据库,假设为A与D,A与D是不能直接访问的,客户要求不能更改.A能与B服务器直接,B与C能直连,C与D能直接连接,B与D及C与A是不能直接访问的。大家谁有好的思路

解决方案 »

  1.   

    将 B 作为分发服务器,用于将发布服务器 A 上的发布分发到订阅服务器 C;
    将 C 配置为再发布服务器,将订阅于 A 的发布内容再发布到 D 上。
      

  2.   

    目前我的解决方案就是楼上的这种,我想通过配置web发布,将A当发布与分发,B设置为IIS服务器,D可以说服客户开放端口访问B,可惜设置web发布能成功,订阅时老提示系统找不到相应的文件,什么原因.
      

  3.   

    iis 上有没有添加 Replisapi.dll 扩展?购买一个可靠的 vpn 服务实现服务器 A 和 D 的直接互联,是否可行?
      

  4.   

    Using Replication for High Availability and Disaster Recovery微软的一份关于复制的文档
      

  5.   

    一个方法首先A 设置为Published 发布服务器, B 设置为subsription 服务器, 在将B上对应的数据库Published,C设置为subsription服务器,。A (published)------------B(subscription)-----B(published)--------C(subscription)----C(published)--------D(subscription)这个方法的好处是 没有任何投资,只要服务器和链路是稳定的,问题不大。但还有另外一个方法,做过但针对的是ORacle--- sql server。 写一些表的同步脚本,因为数据库比较大同步起来有问题,所以将需要同步的表进行连接,这样在sql server的job里面运行,好处是减小的带宽,性能有一定提高,缺点是实施麻烦
      

  6.   

    发布和订阅用几个机器串不是很好的方法,除了有很特别的需求.主服务器的架构更改以后需要初始化的时候就哭了.A和D不能直接访问的话中间加点路由吧.然后在host加别名
      

  7.   

    自己可写代码实现,并灵活调度,A-->D 先将增量数据复制到B、再复制到C,再复制D,同步。。反之亦然
    有偿支持