分发代理无法连接到订阅者

时间:2014-08-11 22:36:09

标签: sql-server sql-server-2008-r2 transactional-replication

我在不同的不受信任的域上有两台服务器。服务器A是发布者,正在运行SQL Server 2008 R2。服务器B是订户,正在运行SQL 2008 R2 Express。由于服务器位于没有信任关系的单独域上,因此我使用传递身份验证连接到每个服务器。这涉及使用相同的用户名和密码在每台服务器上创建本地Windows帐户,然后使用Windows身份验证连接到远程服务器。使用此方法,我可以在SQL Server Management Studio中将服务器A连接到服务器B,反之亦然。我还能够在服务器A上创建一个事务发布,并在服务器B上创建一个推送订阅。

但是,当我打开查看同步状态窗口时,我收到消息"该进程无法连接到SUbscriber'服务器B'。"打开Replication Monitor会给出以下错误消息:

  

该流程无法连接到订阅服务器'服务器B'。 (来源:MSSQL_REPL,错误号:MSSQL_REPL0)

     

命名管道提供程序:无法打开与SQL Server的连接[53]。 (来源:MSSQLServer,错误号码:53)

     

建立与SQL Server的连接时发生了与网络相关或特定于实例的错误。找不到服务器或无法访问服务器。检查实例名称是否正确以及SQL Server是否配置为允许远程连接。有关详细信息,请参阅SQL Server联机丛书。 (来源:MSSQLServer,错误号码:53)

     

登录超时已过期(来源:MSSQLServer,错误号:HYT00)

我读到的有关此错误的所有其他内容都表明它是权限问题,但我不认为是这种情况。为了确保没有任何权限问题,我创建了用于每个服务器上的传递身份验证本地管理员,发布者和订阅者数据库上的db_owners以及每个实例上的sysadmins的Windows帐户SQL Server。

是否有人知道权限以外的其他内容是否可能导致此错误?令我困惑的是,服务器显然能够使用传递身份验证相互连接,但连接仍然在分发代理处失败。

2 个答案:

答案 0 :(得分:0)

这可能是几件事,首先可能是防火墙问题,或者您的分销代理无法找到分销商。确保浏览器服务正在运行,如果分发服务器是实例,这一点尤为重要。 然后打开端口1433和1434,以便在防火墙上进行入站通信。

答案 1 :(得分:0)

我有同样的问题,我通过在32位配置中完成别名来解决它。希望它有所帮助!