在UAT环境下搭建的SQL SERVER 2008 R2数据库一直正常使用,但是最近发现在Sharepoint里什么都做不了,开始觉得配置有问题(因为一直在研究一些新的应用和集成
需要不断测试),但是后来发现数据库硬盘没用了,自然就不能存储任何数据了,于是一开始就开始清理一些没用的数据库日志,磁盘空间多了几个g,但是第二天情况还是一样,数据库硬盘还是满的。
问题依然存在。我在后台仔细检查了所有数据库的容量(因为一开始我以为数据库空间每天增长太快,硬盘都满了),发现只有十几个G,而硬盘总空间是126G,于是我进一步检查这个磁盘空间,发现只有30 G多。
一开始,我觉得很疑惑。为什么我缺了近90G?后来发现是原来的windows账号。以前的登录帐户权限有限,无法获得磁盘的所有空间容量。因此,在使用管理员帐户登录后,
原来SQL SERVER有一个容量接近90G的错误日志。终于找到了磁盘满的原因,接下来就是如何解决了。
一开始我听了同事的建议,通过文件剪切粘贴的方式,直接把这个SQL SERVER错误日志文件移到了另一个硬盘上。折腾了几个小时,以失败告终,说明错误日志被系统进程占用,无法通过这种暴力的方式进行。
于是回到正轨,通过SQL SERVER维护命令操作,最终成功清除90G错误日志文件。具体流程如下:
因为默认情况下,SQL Server保存七个名为:
ErrorLog
ErrorLog.1
ErrorLog.2
ErrorLog.3
ErrorLog.4
ErrorLog.5
ErrorLog.6
-清除SQL Server错误日志文件存档
EXEC sp_cycle_errorlogGO
执行一次EXEC sp_cycle_errorlog会生成一个新的errorlog,然后删除errorlog.6也就是先进先出(queue也类似),这样六个周期后就可以刷新所有的errorlog了。
当查询窗口中出现以下错误消息时:
无法将错误日志文件从c:\ Program Files \ Microsoft SQL Server \ MSSQL 10 _ 50 .MSSQL server \ MSSQL \ Log \错误日志。5 '循环到c:\ Program Files \ Microsoft SQL Server \ MSSQL 10 _ 50 .MSSQL server \ MSSQL \ Log \错误日志。6 .
手动删除90G错误日志文件。
通过这样的经历,在实际工作中适当掌握一些SQL SERVER维护命令也是非常必要的,SQL SERVER的维护相对于ORACEL数据库来说也是比较简单的。