【问题标题】:SQL replication, merge publication, cannot connect to subscriberSQL 复制、合并发布、无法连接到订阅者
【发布时间】:2014-10-21 06:33:21
【问题描述】:

我在通过 Internet 设置 SQL 复制时遇到了一些困难。 我通过我的防火墙和端口转发到分发服务器使用静态公共 IP。

基本上一切都很好,我能够注册并连接远程数据库。

这些是我执行此操作的步骤:

  1. 在我的防火墙和端口转发 1433 请求中发布了我的公共 IP 到经销商(远程计算机)
  2. 为远程计算机创建别名,别名 = IP;端口=1433; 协议=tcp/ip;服务器=服务器名称
  3. 将 ip 添加到 hosts 文件 (192.168.. servername) 计算机名称 远程服务器 = sql 的服务器名称
  4. 除了 IP 是 公共 IP
  5. 在本地电脑上ping远程的服务器名,结果是 远程 PC 的服务器名称(发布商/分销商) - 好的
  6. 在SQL管理工作室测试成功连接 远程电脑

** 现在配置分发器 **

我为此尝试了 sa 和 windows 帐户

我从这里开始一步一步地操作:http://www.cbizsoft.com/techsupport/ReplicationPage3.htm

我也尝试将它放在快照文件夹中:

//服务器名称/c/ReplData

** 现在创建发布 ** 我跟着这个:http://www.cbizsoft.com/techsupport/ReplicationPage4.htm

我在订阅者类型中选择了 SQL server 2005 和 2008

现在我检查了快照代理,它工作正常([100%] 生成了 1 篇文章的快照。)

现在创建订阅

我为此尝试了推送和拉取订阅 在拉取订阅中,我在本地电脑(订阅者)中创建了订阅 在推送订阅中,我在远程 pc(发布者)中创建了订阅 对于推送订阅,我遵循了这个: http://www.cbizsoft.com/techsupport/ReplicationPage6.htm 一切都很好,没有发生错误 顺便说一句,我将远程电脑上的数据库副本附加到本地电脑上,并在设置时选择了它。

现在我在一切都完成后检查了同步状态,它显示连接到发布者“远程服务器名称”(发布者/分销商的服务器名称)和 连接到订阅者“本地服务器名”(订阅者的服务器名)

当我检查选定的表时,它是空的。没有传输来自远程 PC 的记录。视图同步状态会一直加载,直到超时。

我的假设是,快照代理无法在订阅者和发布者之间进行通信或传递。

我希望有人可以帮助我......我希望这能奏效......我希望我快到了,我只是错过了一些东西......我已经这样做了几个月了。

顺便说一句,我使用的是 sql server 2014。

谢谢你们。

【问题讨论】:

  • 您需要检查复制监视器并深入到订阅,看看是否有任何错误。如果是这样,请将它们发布在这里。如果没有,您可能需要启用详细代理日志记录以获取错误。
  • 您好,错误提示:由于操作系统错误 5,进程无法读取文件 \\hostname\ReplData\...。
  • 操作系统错误 5 是与权限相关的错误,表示访问被拒绝。验证 Merge Agent 进程帐户是否具有 Replication Agent 安全模型 (msdn.microsoft.com/en-us/library/ms151868.aspx) 中所需的权限。
  • 是否有必要为此设置一个类似的 Windows 帐户来设置发布和订阅?在我的第一次试用中,我只将防火墙设置为通过端口 1433 将 SQL 请求转发到充当分销商的本地机器......很快我意识到订阅者可能还需要访问驻留在分销商中的 ReplData,因此将所有内容都更改为 VPN。我通过 VPN 将订阅者添加到域中,并且成功。但是,当我使用用户名:域\用户名来设置发布者时,它会说类似于不是有效的 Windows 帐户
  • 嗨,我能够让它工作,现在我正在努力在我的防火墙中保留哪个端口/协议。基本上我添加了 SQL 服务器端口、LDAP、DNS、DHCP、Net Bios 数据报、Netbios 名称服务、netbios 会话、http、https ...我现在在尝试连接到 Sql 远程服务器时使用 Windows 身份验证遇到问题。不过,使用 SA 帐户很好……也许应该在我的防火墙上为此打开端口……当一切都完成后,我会发布我如何使它工作,以帮助其他试图设置类似东西的人……tnx for帮助过的人

标签: sql-server database-replication merge-replication transactional-replication


【解决方案1】:

您在复制监视器中看到的此订阅的确切状态消息是什么? 您是否也可以在您的订户上运行它并查看表格的日期是否对应于您上次运行分发代理的时间? select name, crdate from sysobjects where type='u' order by crdate desc

【讨论】:

  • 您好,错误提示:由于操作系统错误 5,进程无法读取文件 \\hostname\ReplData\...。顺便说一句,我尝试使用 VPN 以便订阅者可以访问共享文件夹的 ReplData,它是成功的,我能够通过 VPN 在网络外部访问它,我能够在订阅者机器上浏览 ReplData,但错误仍然存​​在
  • 我也试过用windows账号,报错:代理域\用户名不是有效的windows用户。
  • 我也尝试使用域帐户在服务下更改分发机器的 SQL Server 代理的登录帐户,但问题是如何在我的订阅者上做类似的事情,因为它不是成员领域。我试过了,但找不到域。我只能使用本地帐户
猜你喜欢
  • 1970-01-01
  • 2016-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-12
  • 2012-05-03
  • 2011-05-13
  • 1970-01-01
相关资源
最近更新 更多