【发布时间】:2014-10-21 06:33:21
【问题描述】:
我在通过 Internet 设置 SQL 复制时遇到了一些困难。 我通过我的防火墙和端口转发到分发服务器使用静态公共 IP。
基本上一切都很好,我能够注册并连接远程数据库。
这些是我执行此操作的步骤:
- 在我的防火墙和端口转发 1433 请求中发布了我的公共 IP 到经销商(远程计算机)
- 为远程计算机创建别名,别名 = IP;端口=1433; 协议=tcp/ip;服务器=服务器名称
- 将 ip 添加到 hosts 文件 (192.168.. servername) 计算机名称 远程服务器 = sql 的服务器名称
- 除了 IP 是 公共 IP
- 在本地电脑上ping远程的服务器名,结果是 远程 PC 的服务器名称(发布商/分销商) - 好的
- 在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