动态IP数据库同步服务,请求订阅失败的问题

zf904 2009-11-24 05:11:04
关于sql server 2005 数据库同步的。

A服务器为静态IP,B服务器为拨号上网的动态IP。从A将数据同步到B,采用事务复制,
当A作为发布服务器采用推式订阅时数据同步没问题,但将B作为订阅服务器时采用拉式订阅失败,通过复制监视器查看到如下错误:

由于出现操作系统错误 53,进程无法读取文件“\\source\MRPTest\unc\SOURCE_SNWERP_MRPDB_TEST\20091124161742\MRP_Requisition_2.pre”。 (源: MSSQL_REPL,错误号: MSSQL_REPL20143)
获取帮助: http://help/MSSQL_REPL20143
找不到网络路径。
(源: MSSQL_REPL,错误号: MSSQL_REPL53)
获取帮助: http://help/MSSQL_REPL53

\\source\MRPTest是我设置的快照文件夹路径,我估计是路径设置的问题,因为source是A的机器名,公网不能直接用机器名访问的。请教各位大大怎么解决?
我在SQL服务里面定义了A服务器的IP地址的别名为source。
搞了我两天了,好烦。望各位高手相助。因为没有积分了,所以给不了分,还望各位原谅。
...全文
217 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
zf904 2009-11-25
  • 打赏
  • 举报
回复
看来只能这样了,谢谢了,兄弟。
lweia 2009-11-25
  • 打赏
  • 举报
回复
我用的都是内网订阅,不涉及到外网,
只是根据你的报错做的判断.
VPN比较简单的实现变内网
zf904 2009-11-25
  • 打赏
  • 举报
回复
刚才改了下A的IP重新测试了下,之前A用的是公网IP,现在改成内网IP:192.168.16.242
B的IP仍然不变是内网IP,两者在同一个局域网,在开始运行里面可以相互访问,推式,拉式订阅测试都没问题。看来问题肯定出在A用公网IP的原因上。也就是说公网和内网不可同步,但是好多人都说可以的,难道是用的花生壳或VPN之类的东西辅助实现的?不知道12楼有没有碰见过这种问题?

zf904 2009-11-25
  • 打赏
  • 举报
回复
错误号码不是53是1231(不能访问网络位置)
具体如下:
错误消息:
由于出现操作系统错误 1231,进程无法读取文件“\\source\MRPTest\unc\SOURCE_SNWERP_MRPDB_TEST\20091124161742\MRP_Requisition_2.pre”。 (源: MSSQL_REPL,错误号: MSSQL_REPL20143)
获取帮助: http://help/MSSQL_REPL20143
不能访问网络位置。有关网络排除故障的信息,请参阅 Windows 帮助。
(源: MSSQL_REPL,错误号: MSSQL_REPL1231)
获取帮助: http://help/MSSQL_REPL1231


我估计还是网络路径问题。
A的网关是192.168.16.1
B的网关是192.168.13.1
网关不一样,然后我在B上注册A服务器的时候,A的IP地址用的是公网地址:219.133.***.**
相当于B内网和A公网相连,但是我在网上搜索了好多帖子,据说在这种请况下sql2005可以用B作订阅服务器,拉式订阅,不需要花生壳之类的东东。
lweia 2009-11-24
  • 打赏
  • 举报
回复
报什么错?
还是那个错?
zf904 2009-11-24
  • 打赏
  • 举报
回复
还是不行,郁闷。
zf904 2009-11-24
  • 打赏
  • 举报
回复
谢谢,我试试.
lweia 2009-11-24
  • 打赏
  • 举报
回复
...那一定会报这个错
在B的HOST里,指定A
接下来还可能错,但报错应该不是这个错...
zf904 2009-11-24
  • 打赏
  • 举报
回复
在B的运行里 \\source\MRPTest\unc 能过去么?

不能,因为source是公网IP的别名,无法在B本地运行。A和B不是同一局域网
lweia 2009-11-24
  • 打赏
  • 举报
回复
报“由于出现操作系统错误 53,进程无法读取文件“\\source\MRPTest\unc\SOURCE_SNWERP_MRPDB_TEST\20091124161742\MRP_Requisition_2.pre”。 (源: MSSQL_REPL,错误号: MSSQL_REPL20143) ”
这个错
在B的运行里 \\source\MRPTest\unc 能过去么?
zf904 2009-11-24
  • 打赏
  • 举报
回复
在B的服务器管理器定义A的别名是不是等于在B的HOST里指定A的IP ??
如果是,我已经指定了。
zf904 2009-11-24
  • 打赏
  • 举报
回复
以上的都试过了。A和B都建立了相同的用户和密码,服务代理也设置为该用户启动,目录权限也设置了该用户的权限,但是还是不行
--小F-- 2009-11-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lweia 的回复:]
还有在B的HOST里指定A的IP
[/Quote]

学习
lweia 2009-11-24
  • 打赏
  • 举报
回复
还有在B的HOST里指定A的IP
lweia 2009-11-24
  • 打赏
  • 举报
回复
把REPDATA共享设置为完全
icelovey 2009-11-24
  • 打赏
  • 举报
回复
友情帮顶~~

22,298

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧