配置Log Shipping时辅助服务器报Error 5、Error 3201如何解决
Log Shipping配置还原阶段报Error 5、Error 3201排查方案
Error 5对应Windows层面访问拒绝,Error 3201对应SQL Server无法打开备份设备,即使你初步核对过权限,也按以下步骤逐一排查:
- 优先核对SQL服务启动账号权限,而非当前登录账号权限
Log Shipping的备份、复制、还原操作都运行在SQL Server、SQL Server代理服务的启动账号上下文下,和你当前登录SSMS、登录服务器的账号无关:- 主库的SQL Server服务启动账号,必须对备份共享文件夹同时配置共享权限和NTFS安全权限的读、写、修改权限
- 辅助库的SQL Server服务启动账号、SQL Server代理服务启动账号,必须对备份共享文件夹有读权限,对辅助库本地存放备份、数据库文件的目录有完全控制权限
- 如果服务用的是
NT SERVICE\MSSQLSERVER、Local System这类本地内置账号,这类账号跨服务器访问共享时不会被识别,要么更换为域账号运行服务,要么在共享文件夹的权限列表中添加辅助服务器、主服务器的计算机账号(格式为域名\机器名$)并分配对应权限,这是该场景最高发的漏配项 - 权限核对时不要用当前登录账号测试访问,要切换到对应服务启动账号登录服务器,访问配置的UNC共享路径,验证能否正常打开、复制、删除文件
- 检查路径配置错误
- 所有备份路径必须使用
\\服务器名\共享名\格式的UNC路径,禁止在配置中填写本地盘符路径、网络映射盘路径——映射盘仅对当前登录用户生效,SQL服务启动时不会加载用户的映射盘配置,访问时会直接报拒绝访问 - 辅助库配置中指定的数据库mdf、ldf存放路径,不要选择
C:\Users\某用户目录这类用户私有文件夹,这类目录默认仅对对应用户开放权限,SQL服务账号无访问权限
- 所有备份路径必须使用
- 排除文件占用、拦截问题
- 检查共享文件夹内已生成的备份文件,确认文件没有被杀毒软件、第三方备份工具、其他进程加锁,文件被占用时SQL无法读取也会抛出3201错误
- 临时关闭两台服务器的文件防护、杀毒软件后重试配置,排除安全软件拦截SQL进程读写文件的情况
- 如果之前有配置失败的残留,先删除辅助库数据目录下残留的半还原状态mdf、ldf文件,避免无权限覆盖已有文件触发报错
- 手动执行还原命令定位精准错误
在辅助库的SSMS中执行以下还原命令,替换为你的实际路径参数,通过命令返回的详细报错定位具体问题:
RESTORE DATABASE [你的辅助数据库名] FROM DISK = N'\\备份共享UNC路径\主库全备文件名.bak' WITH NORECOVERY, REPLACE, MOVE N'主库数据文件逻辑名' TO N'辅助库本地数据存放路径\辅助数据库名.mdf', MOVE N'主库日志文件逻辑名' TO N'辅助库本地日志存放路径\辅助数据库名.ldf'
如果手动执行还原成功,说明问题出在Log Shipping作业的运行代理账号配置上,检查对应作业的代理账号是否有足够权限即可。
内容的提问来源于stack exchange,提问作者Gabriela.
相关产品推荐
相关产品推荐

