none
SQL Server可更新事务复制无法跨越同一个网段:未初始化的订阅。如何诊断故障? RRS feed

  • 问题

  • 我做了2个对比试验:

    试验A,发布服务器(IP:192.168.228.249)和订阅服务器(IP:192.168.228.18)都在同一个C段里。

    试验B,发布服务器还是试验A里的发布服务器,但订阅服务器IP换成192.168.72.51,在两个不同的C段里,但是192.168.228段和192.168.72段相互是可以ping通,可以充分互联互通的。任何端口都能直接访问,比如135端口等等,不会有任何防火墙之类的问题。

    两个试验的复制都能创建成功,但只有试验A的可更新事务复制是实际生效的,发布服务器和订阅服务器的数据更新能相互传播到对方。但是试验B的复制,在复制监视器里面,其订阅的状态始终停留在“未初始化的订阅”那里,三个代理作业(快照代理,日志读取器代理,队列读取器代理)都状态正常,没有报错。

    试验A和试验B中的订阅服务器,除了IP换了之外,其他几乎完全一样。至于发布服务器,在试验A做完之后,在hosts文件中将订阅服务器的机器名重新指定解析IP到192.168.72.51后,删除之前的复制设置重新创建一个完全一样的复制,没有其他改变。

    快照发布是通过FTP方式进行的。在试验A中,复制创建完成后,很快就会出现来自订阅服务器的FTP下载,读取快照文件;但是在试验B中,一直没有FTP连接出现。也没有报错。

    请问有哪些办法或工具来诊断为何试验B的复制不能进行下去?到底哪里有问题?

    另外说明,没有启用Windows的域。很烦这种跟系统高度集成的东西,我就把SQL Server复制当成一个纯粹的数据库功能来用,行么?

    2014年2月20日 15:49

全部回复

  • Why use ftp if servers can talk to each other directly? What's sql port on those servers? Did you test sql port with telnet? 
    2014年2月20日 18:48
  • 复制是不需要Windows的域功能的
    2014年2月21日 6:38
  • 两个机器只是能保证互联互通,但不能\\server-name\directory的方式直接访问共享目录,所以只能用FTP来做复制。

    SQL端口当然都是默认的1433,我当然用telnet相互测过了,135,1433什么的,肯定都是通的。

    2014年2月22日 14:03
  • SQL Server的事务复制显然是跟系统结合紧密的。复制的新增订阅设置必须在订阅机器的“组件服务”中打开“网络DTC访问”,并在事务管理器通信中“不要求进行验证”,才能配置成功。

    在网上找得到的复制配置向导文章中,很多都是启用域的。由于事务复制配置极其容易失败(或者配置成功但实际上无法实现事务从发布服务器到订阅服务器的双向传播),自然容易担心是否是域的问题导致配置失败。

    2014年2月22日 14:08
  • May need certificate if servers are not in same domain.
    2014年2月22日 14:17
  • 那你的意思不就是说有没有域还是有影响的对吗?

    在SQL Server2012里还把“可更新订阅的事务发布”给取消了,只有一个“对等发布”。这个配置也不行,订阅服务器是2005或2008的就配置不了了。报错。

    为什么这么麻烦。。。

    2014年2月25日 4:46
  • Peer to peer replication requires enterprise edition and works on servers with same sql version.
    2014年2月25日 14:11
  • Peer to peer replication needs certificate too if involved servers are not in same domain.
    2014年2月25日 14:12