由于出现操作系统错误 3,进程无法读取文件D:\XXXX\X.pre (源: MSSQL_REPL,错误号: MSSQL_REPL20024)

 

最近着手做SqlServer2008的订阅发布,起初使用推送订阅很顺利,后来改成请求订阅出现了以下问题,折腾好长时间终于搞定,留下此文备日后查阅,或供遇相同问题的道友参考:

首先阐述以下问题:

1. 错误消息:

由于出现操作系统错误 3,进程无法读取文件“C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\ReplData\unc\NETNETNET-PC_CLOUDTRADB_SOA_LNGZ_20151130\20151130092501\View_TenderPurchase_45.pre”。 (源: MSSQL_REPL,错误号: MSSQL_REPL20024)
获取帮助: http://help/MSSQL_REPL20024
系统找不到指定的路径。
(源: MSSQL_REPL,错误号: MSSQL_REPL3)
获取帮助: http://help/MSSQL_REPL3

这个问题的主要原因就是订阅服务器访问订阅目录快照"C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\ReplData\unc\NETNETNET-PC_CLOUDTRADB_SOA_LNGZ_20151130\20151130092501\View_TenderPurchase_45.pre"失败造成的。

解决方式:

1.将存放快照的目录设置为共享,并设置读取的权限;

  1)发布服务器设置:
    在发布属性中,点击左侧的快照,在右边页面中的快照文件的位置改为为E:\严\MSSQL\ReplData
    把ReplData文件夹设置为共享,并且在安全项里,设置用户权限

  2)订阅服务器设置:
    然后在订阅服务器中,右击订阅的服务名,选择属性,设置属性参数如下
    a.快照位置修改为备用文件夹
    b.快照文件夹修改为 \\netnetnet-pc\ReplData

  3)在订阅服务器和发布服务器设置相同账号密码的系统登录用户(例如:账号 administrator 密码 zhimakaimen),之后设置两台服务器的SQL Server 代理 (MSSQLSERVER)服务的登录名(必须确保发布和订阅服务器的账号密码相同)如图:

2.请求订阅改成推送订阅(会消耗发布服务器较多性能)

 

posted @ 2015-11-27 17:31  J.Y  阅读(10860)  评论(1编辑  收藏  举报