1. 首页>
  2. 技术文章>
  3. SQLServer复制:由于出现操作系统错误 5,进程无法读取文件,拒绝访问

SQLServer复制:由于出现操作系统错误 5,进程无法读取文件,拒绝访问

7/16/19 2:07:15 PM 浏览 2093 评论 0

MSSQL

手做SqlServer2008的订阅发布,起初使用推送订阅很顺利,后来改成请求订阅出现了以下问题,“由于出现操作系统错误 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)服务的登录名(必须确保发布和订阅服务器的账号密码相同)


另一个方法是:请求订阅改成推送订阅(会消耗发布服务器较多性能)

网友讨论