构建在UAT环境下的sql server 2008 R2数据库一直正常使用,但最近发现无法在Sharepoint中操作。一开始我以为是配置出了问题(因为我一直在研究一些新的应用和集成,需要不断的测试),但是后来我发现数据库的硬盘一点空间都没用,自然就没法存储任何数据了。于是一开始就开始清理一些无用的数据库日志,磁盘空间增加了几个G的容量。但是第二天还是这样的时候,数据库硬盘还是满的,问题还是存在。后台仔细查了一下所有数据库的容量(因为一开始以为是数据库空间每天增长太快,硬盘都满了),发现只有十几个G,而总磁盘空间是126G,于是我进一步查了一下这个磁盘空间,发现只有30 G多,一开始觉得很不错。后来发现是原来的windows账号。之前使用的登录账号权限有限,无法获得磁盘的所有空间容量。所以换了管理员的账号登录后,发现SQL SERVER有一个容量接近90G的错误日志。终于找到了磁盘满的原因,接下来就是如何解决了。
起初,我听了同事的建议,通过剪切粘贴文件的方式,将这个SQL SERVER错误日志文件直接移动到另一个硬盘上。折腾了几个小时,以失败告终,说明错误日志被系统进程占用,无法通过这种暴力的方式进行。于是,我回到正轨,通过SQL SERVER维护命令进行操作。最终成功清除90G错误日志文件。具体流程如下:
因为默认情况下,SQL Server保存七个名为:
错误日志
错误日志. 1
错误日志. 2
错误日志. 3
错误日志. 4
错误日志. 5
错误日志. 6
-清除SQL Server错误日志文件存档
EXEC sp_cycle_errorlog
去
执行一次EXEC sp_cycle_errorlog会生成一个新的errorlog,然后删除errorlog.6先进先出(队列类似)这样6个周期后就可以刷新errorlog了。
当查询窗口中出现以下错误消息时:
消息17049,级别16,状态1,过程sp_cycle_errorlog,第9行
由于操作系统错误“5(访问被拒绝。)”中,错误日志文件无法从“C:\ Program Files \ Microsoft SQL Server \ MSSQL 10 _ 50”中回收。MSSQL Server \ MSSQL \ log \ error log . 5 ' to ' C:\ Program Files \ Microsoft SQL Server \ MSSQL 10 _ 50。MSSQL Server \ MSSQL \ log。SQL Server外部的进程可能会阻止SQL Server读取这些文件。因此,错误日志条目可能已经丢失,并且可能无法查看某些SQL Server错误日志。确保没有其他进程锁定该文件进行只写访问。'
DBCC的死刑执行完毕。如果DBCC输出错误消息,请联系您的系统管理员。
手动删除90G错误日志文件。
通过这种体验,在实际工作中需要适当掌握一些SQL SERVER维护命令,而且相对于ORACEL数据库,SQL SERVER的维护相对简单。