清除SQL SERVER错误日志出现操作系统错误

   之前在UAT环境搭建的SQL SERVER 2008 R2数据库一直用得比较正常,但最近发现在Sharepoint中不能进行任何操作了,开始以为是什么配置出了问题(因为一直在研究一些新的应用和集成,需要不断地测试),但后来发现是数据库硬盘没用一点空间了,那么自然是不能存任何数据了,所以最先开始清理一些无用的数据库日志,磁盘空间多了几个G的容量,但是等到第二天情况依然如此,数据库硬盘还是满了,问题依旧存在,后台仔细检查了一下所有数据库的容量(因为最初以为是数据库空间每天增长太快了把硬盘占满了),发现才十几个G的,而硬盘总空间有126G,因此进一步检查了这个磁盘空间,发现才三十多个G,一开始感觉很纳闷,为什么会缺少将近90G呢?后来发现是原来windows账号的关系,之前用的登录账号权限有限,无法获取磁盘的所有空间容量,因此换了管理员的账号登录后,发现原来是SQL SERVER有一个错误日志的容量将近90G,总算找到磁盘满的原因了,下一步就是如何去解决它。

  一开始听了同事的建议,直接通过文件剪贴的方式把这个SQL SERVER 错误日志文件直接移动到另外一个硬盘上,折腾了好几个小时最终以失败告终,说明错误日志被系统进程占用着,并不能通过这个暴力方式进行,因此走回正轨,通过SQL SERVER维护命令进行操作,最终成功清除了90G的错误日志文件,具体过程如下:

  由于默认情况下,SQL Server 保存 7 个 ErrorLog 文件,名为:

  ErrorLog

  ErrorLog.1

  ErrorLog.2

  ErrorLog.3

  ErrorLog.4

  ErrorLog.5

  ErrorLog.6

  --清除 SQL Server 错误日志文件 存档

  EXEC sp_cycle_errorlog

  GO

  执行一次EXEC sp_cycle_errorlog就会产生一个新的errorlog,然后把errorlog.6给删掉。就是先进先出(队列类似的情况)这样循环6次就可以把errorlog都刷新一遍。

  当查询窗口中,出现以下错误信息时:

  消息 17049,级别 16,状态 1,过程 sp_cycle_errorlog,第 9 行

  由于出现操作系统错误 '5(拒绝访问。)',无法将错误日志文件从 'C:Program FilesMicrosoft SQL ServerMSSQL10_50.MSSQLSERVERMSSQLLogERRORLOG.5' 循环到 'C:Program FilesMicrosoft SQL ServerMSSQL10_50.MSSQLSERVERMSSQLLogERRORLOG.6'。SQL Server 外部的进程可能会阻止 SQL Server 读取这些文件。因此,错误日志条目可能已丢失,并且或许不可能查看某些 SQL Server 错误日志。请确保任何其他进程都未将该文件锁定为只写访问。"

  DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

  手工删除那个90G的错误日志文件即可。

  通过本次的经历,适当掌握一些SQL SERVER维护命令在实际工作上也非常有必要的,而且相对于ORACEL数据库,SQL SERVER的维护要相对简单一些。

时间: 2024-12-23 17:50:54

清除SQL SERVER错误日志出现操作系统错误的相关文章

清除SQL SERVER错误日志出现操作系统错误的解决方案

之前在UAT环境搭建的SQL SERVER 2008 R2数据库一直用得比较正常,但最近发现在Sharepoint中不能进行任何操作了,开始以为是什么配置出了问题(因为一直在研究一些新的应用和集成,需要不断地测试),但后来发现是数据库硬盘没用一点空间了,那么自然是不能存任何数据了,所以最先开始清理一些无用的数据库日志,磁盘空间多了几个G的容量,但是等到第二天情况依然如此,数据库硬盘还是满了,问题依旧存在,后台仔细检查了一下所有数据库的容量(因为最初以为是数据库空间每天增长太快了把硬盘占满了),发

清除SQL SERVER错误日志出现操作系统错误的解决方法_MsSql

之前在UAT环境搭建的SQL SERVER 2008 R2数据库一直用得比较正常,但最近发现在Sharepoint中不能进行任何操作了,开始以为是什么配置出了问题(因为一直在研究一些新的应用和集成,需要不断地测试),但后来发现是数据库硬盘没用一点空间了,那么自然是不能存任何数据了,所以最先开始清理一些无用的数据库日志,磁盘空间多了几个G的容量,但是等到第二天情况依然如此,数据库硬盘还是满了,问题依旧存在,后台仔细检查了一下所有数据库的容量(因为最初以为是数据库空间每天增长太快了把硬盘占满了),发

清除SQL SERVER错误日志出现操作系统错误的解决方法

之前在UAT环境搭建的SQL SERVER 2008 R2数据库一直用得比较正常,但最近发现在Sharepoint中不能进行任何操作了,开始以为是什么配置出了问题(因为一直在研究一些新的应用和集成,需要不断地测试),但后来发现是数据库硬盘没用一点空间了,那么自然是不能存任何数据了,所以最先开始清理一些无用的数据库日志,磁盘空间多了几个G的容量,但是等到第二天情况依然如此,数据库硬盘还是满了,问题依旧存在,后台仔细检查了一下所有数据库的容量(因为最初以为是数据库空间每天增长太快了把硬盘占满了),发

SQL Server自动化运维系列——监控磁盘剩余空间及SQL Server错误日志(Power Shell)

原文:SQL Server自动化运维系列--监控磁盘剩余空间及SQL Server错误日志(Power Shell) 需求描述 在我们的生产环境中,大部分情况下需要有自己的运维体制,包括自己健康状态的检测等.如果发生异常,需要提前预警的,通知形式一般为发邮件告知. 在所有的自检流程中最基础的一个就是磁盘剩余空间检测.作为一个高效的DBA不可能每天都要上生产机上查看磁盘剩余或者直到磁盘无剩余空间报错后才采取扩容措施. 当然,作为微软的服务器有着自己的监控软件:SCCM(System Center

SQL Server错误日志过滤(ERRORLOG)

一.背景 有一天我发现SQL Server服务器的错误日志中包括非常多关于sa用户的登陆错误信息:"Login failed for user 'sa'. 原因: 评估密码时出错.[客户端: XX.XX.XX.XX]".可是我很久之前就已经禁用了sa用户,怎么还会有那么多的sa用户登陆信息呢?我猜想是有人在暴力破解我们数据库的sa用户的密码:关于这种攻击,大家有没好的解决方案呢? 我查找了一些资料,暂时没有找到好的解决方案.我只想到一个暂时缓解压力的办法,那就是从错误信息中统计出登陆s

SQL Server 错误日志收缩(ERRORLOG)

一.基础知识 默认情况下,错误日志位于 : C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG\ERRORLOG 和ERRORLOG.n 文件中.默认保留有7个 SQL Server 错误日志文件,分别是:ErrorLog,Errorlog.1-Errorlog.6 ,当前的错误日志(文件ErrorLog)没有扩展名.每当启动 SQL Server 实例时,将创建新的错误日志ErrorLog,并将之前的ErrorLog更名为ErrorL

如何通过查询分析器清除sql server数据库日志

1.查看数据库或是日志文件大小exec sp_helpfile [数据库] 不加数据库名称 则查询当前数据库大小与数据库日志大小 2.收缩数据库DBCC SHRINKFILE ([数据库],大小)

MS SQL 监控错误日志的告警信息

    SQL Server的错误消息(Error Message)按照消息的严重级别一共划分25个等级,级别越高,表示严重性也越高.但是如果你统计sys.messages,你会发现,实际上只有 16(SQL SERVER 2008/2012)或17个(SQL SERVER 2005)个级别.猜测应该是一些留作扩展用,一些留作用户自定义错误消息的级别.   sys.messages 中有个字段is_event_logged,取值为1时表示出现错误时将消息记入事件日志. 对于 message_id

sql server 错误9003:LSN无效(日志扫描号无效),对数据库的修复

sql server 错误9003:LSN无效(日志扫描号无效) 今天,从朋友那儿接到一个有问题的数据库文件与日志文件,在使用sql2000与sql2005进行数据库附加时, sql server报错,错误信息: "传递给数据库 'POS' 中的日志扫描操作的日志扫描号 (2806:120:1) 无效. 此错误可能指示数据损坏,或者日志文件(.ldf)与数据文件(.mdf)不匹配. 如果此错误是在复制期间出现的,请重新创建发布.否则,如果该问题导致启动期间出错,请从备份还原. 无法打开新数据库