zoukankan      html  css  js  c++  java
  • xp_delete_files不起作用解决方法

      xp_delete_file用来删除数据库的备份文件和维护计划文本报告。示例:

    EXECUTE master.dbo.xp_delete_file 0,N'D:BackupDiff',N'bak',N'2019-05-29T10:03:41'

    第一个参数表示文件类型,0表示备份文件,1表示文本报告

    第二个参数表示要删除的文件存放路径

    第三个参数表示要删除的文件后缀,不能带点号。比如写成bak,不能写成.bak

    第四个参数是一个日期,文件修改日期(不是创建日期)比这个参数旧的,就删除。(日期相等不删除)

    第五个参数为010表示不查找子目录的文件,1表示在当前路径和下一层路径中查找要删除的文件(最多只遍历一层)。默认值是0,可以省略。

    xp_delete_files会校验备份文件和报告文本文件的头,只有合法的备份文件和报告文本才会被删除,其他文件改个后缀,是不会被删除的。

      今天碰到的现象是执行这个脚本后,旧备份文件并没有被删除。最后,在https://stackoverflow.com/questions/212603/sql-server-xp-delete-file-not-deleting-files/35384431#35384431找到原因,数据库需要有登录名NT SERVICEMSSQLSERVER

     

    并且需要sysadmin角色。

    另外,添加完这个用户还顺便解决了SQL SERVER日志打不开的情况。

    之前打开SQL SERVER日志,弹出如下报错:

    事件查看器有如下两条相关报错日志:

    用户 'TICPDservername$' 登录失败。 原因: 找不到与提供的名称匹配的登录名。 [客户端: <local machine>]
    严重性: 16 错误: 18456,操作系统: 18456 [Microsoft][SQL Server Native Client 11.0][SQL Server]用户 'TICPDservername$' 登录失败。
    
    消息资源存在,但在字符串/消息表中找不到该消息
    

    执行exec master.dbo.sp_enumerrorlogs报错:

    消息 22004,级别 16,状态 1,第 105 行
    无法打开环回连接。有关详细信息,请参阅事件日志。
    消息 22004,级别 16,状态 1,第 105 行
    找不到错误日志位置。
    

    添加完NT SERVICEMSSQLSERVER登录名,上面报错也都解决了。

  • 相关阅读:
    转载:使用单独的log4net类
    反射方法
    log4net 的配置问题和使用扩展的TGLOG.DLL
    office2010 x64 Retrieving the COM class factory for component with CLSID {000209FF00000000C000000000000046} failed due to the following error: 800
    sharepoint2013 错误2
    sp2013版本区别
    sps2013安装错误
    发光动画
    关于html5缓存部分比较详细的说明
    httpmodule sharepoint
  • 原文地址:https://www.cnblogs.com/wangguanguo/p/10973371.html
Copyright © 2011-2022 走看看