关于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。
搞了我两天了,好烦。望各位高手相助。因为没有积分了,所以给不了分,还望各位原谅。

解决方案 »

  1.   

    在B的服务器管理器定义A的别名是不是等于在B的HOST里指定A的IP ??
    如果是,我已经指定了。
      

  2.   

    报“由于出现操作系统错误 53,进程无法读取文件“\\source\MRPTest\unc\SOURCE_SNWERP_MRPDB_TEST\20091124161742\MRP_Requisition_2.pre”。 (源: MSSQL_REPL,错误号: MSSQL_REPL20143) ”
    这个错
    在B的运行里 \\source\MRPTest\unc 能过去么?
      

  3.   

    在B的运行里 \\source\MRPTest\unc 能过去么?不能,因为source是公网IP的别名,无法在B本地运行。A和B不是同一局域网
      

  4.   

    ...那一定会报这个错
    在B的HOST里,指定A
    接下来还可能错,但报错应该不是这个错...
      

  5.   

    错误号码不是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作订阅服务器,拉式订阅,不需要花生壳之类的东东。
      

  6.   

    刚才改了下A的IP重新测试了下,之前A用的是公网IP,现在改成内网IP:192.168.16.242
    B的IP仍然不变是内网IP,两者在同一个局域网,在开始运行里面可以相互访问,推式,拉式订阅测试都没问题。看来问题肯定出在A用公网IP的原因上。也就是说公网和内网不可同步,但是好多人都说可以的,难道是用的花生壳或VPN之类的东西辅助实现的?不知道12楼有没有碰见过这种问题?
      

  7.   

    我用的都是内网订阅,不涉及到外网,
    只是根据你的报错做的判断.
    VPN比较简单的实现变内网