跨公网配置SQL Server合并复制遇阻,疑订阅端连默认端口求助
解决方案
1. 修正复制代理的连接字符串
- 打开发布端SSMS,展开复制→本地发布,右键目标发布选属性,切换到代理安全性标签页。
- 找到快照代理、合并代理的发布服务器连接设置,把连接地址改成
发布端IP,15333(比如10.0.0.5,15333),不能只填IP或主机名。 - 再去订阅端SSMS,展开复制→本地订阅,右键目标订阅选属性,同样确认连接发布服务器的字符串带端口号。
2. 直接更新复制系统表(操作前必备份数据库)
如果图形界面改完没用,直接改distribution数据库的系统表:
- 在发布端执行查询定位目标条目:
SELECT * FROM MSdistribution_agents WHERE publisher = '原发布服务器名' - 更新发布地址字段:
UPDATE MSdistribution_agents SET publisher_address = '你的发布端IP,15333' WHERE publisher = '原发布服务器名' - 订阅端也进对应订阅数据库,用类似语句更新订阅相关的服务器地址,确保端口被正确写入。
3. 调整复制代理服务的启动参数
- 打开Windows服务管理器,找到对应的SQL Server合并代理服务(名称一般带Merge Agent或属于SQLSERVERAGENT)。
- 右键选属性,在启动参数里确认连接字符串带
,15333,没有的话补上;部分代理服务的启动参数直接包含服务器地址,修改后保存。 - 重启该复制代理服务,让配置生效。
4. 验证网络与防火墙
- 确认Google云防火墙开了15333端口的入站规则,允许员工笔记本的IP访问(动态IP的话,可放宽到员工所在网段或用VPN固定IP)。
- 在订阅端用PowerShell跑
Test-NetConnection 发布端IP -Port 15333,或者用telnet 发布端IP 15333,验证端口能通,排除网络层面的问题。
5. 确认发布端SQL Server的端口配置
- 打开发布端SQL Server配置管理器,展开SQL Server网络配置→对应实例的协议,确保TCP/IP已启用。
- 双击TCP/IP,切到IP地址标签页,找到公网IP对应的条目,设置TCP端口为
15333,清空TCP动态端口。 - 重启SQL Server服务,让端口配置生效。
内容的提问来源于stack exchange,提问作者Sergey Alikin
相关产品推荐
相关产品推荐

