SqlServer代理执行[分发清除: distribution] 无法删除快照文件

每天偶尔检查数据库作业是否失败,发现有错误

 

[sql] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. select top 10 job_id,run_date,run_time,run_duration,step_name,message  
  2. from  msdb..sysjobhistory where run_status = 0   
  3. order by run_date desc,run_time desc  



 

 

该作业失败。 计划 12(复制代理计划。)调用了该作业。最后运行的是步骤 1(运行代理。)。.

 

已以用户 NTAUTHORITY\NETWORKSERVICE的身份执行。

无法删除目录 'D:\DataBase\ReplData\unc\*****************************\20150206021846\'。

请查看 xp_cmdshell的安全上下文,并关闭其他可能正在访问该目录的进程。

 [SQLSTATE 42000](错误 20015). 该步骤失败。

 

 

错误日志消息:

Replication-@rowcount_only 参数值必须是 0、1 或 2。0=7.0 兼容的校验和。1=只检查行计数。2=版本 8.0 中引入的新校验和功能。: agent distribution@rowcount_only 参数值必须是 0、1 或 2。0=7.0 兼容的校验和。1=只检查行计数。2=版本 8.0 中引入的新校验和功能。 scheduled for retry. 无法清除分发事务表。

 

 

 

[sql] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. --查看执行的作业  
  2. select * from msdb.dbo.sysjobs where job_id = 'DC0DF572-9339-46ED-84E7-2C1ED622C067'  

 


查看SqlServer代理账户, NT AUTHORITY\NETWORK SERVICE

 

 

找到该目录,是快照目录,很久没使用过了。几天前有初始化用过,今天快照到期了,分发清除运行删除。

而代理账户NT AUTHORITY\NETWORK SERVICE 没有操作文件夹的权限

 

 

添加用户对象NT AUTHORITY\NETWORK SERVICE 

 

 

授予所有权限

 

 

 

好了,现在执行[分发清除: distribution]作业,成功!

 

posted @ 2015-10-30 18:31  无处安放的青春  阅读(2303)  评论(0编辑  收藏  举报