MSSQL ErrorLog 清理及变更存储位置

过完年头天上班,高高兴兴打开公司网站,很好,一切正常。

上服务器查看已下 IIS,很好,没有错误,随手修改了下部分配置,结果完蛋了,IIS 的配置文件丢失了,仔细一看,好么。。。。数据库的错误日志文件已经将C盘占满了

好不容易从其他地方挤了点空间出来,把 IIS 恢复了,现在,该想办法把 MSSQL ERRORLOG 想办法整理一下了

从网上查了很多资料后,整理方法如下:

1、使用 EXEC sp_cycle_errorlog 指令清除日志记录 转载来源icon-default.png?t=N5K3http://blog.sina.com.cn/s/blog_6fc583e701012quk.html

 

 

2、修改 ERRORLOG 的存放位置 转载来源icon-default.png?t=N5K3http://blog.csdn.net/fengye245/article/details/8790735      打开 Sql Server 配置管理器 --> Sql Server 服务 --> Sql Server (MSSQLSERVER) --> 属性 --> 高级

      修改“转储目录”,将文件夹修改为新的路径

      修改“启动参数”,将-e后的文件夹修改为新的路径

      然后从新启动 Sql Server (MSSQLSERVER) ,再次执行方法一得指令,发现 ERRORLOG 文件就在新的文件夹内产生了

3、清理数据库日志文件

相对来说,数据库文件也需要占用很大的空间,虽然增长没有那么快,但也需要注意。并且,每个数据库自己单独的日志文件,增长并不是很慢,也需要定期清理。

declare @dbs varchar(max),@sql nvarchar(max),@db varchar(max),@log varchar(max)
declare cur cursor local for select '[' + name + ']' from sysdatabases where dbid>4
open cur
fetch next from cur into @db
while @@FETCH_STATUS=0
	begin
		print(@db)
		set @sql = 'select @log = name from ' + @db + '.dbo.sysfiles where groupid=0'
		exec sp_executesql @sql,N'@log varchar(max) output',@log output

		set @sql = 'use master' + char(13) + 'alter database ' + @db + ' set recovery simple with no_wait' + char(13)
		set @sql = @sql + 'alter database ' + @db + ' set recovery simple' + char(13)
		set @sql = @sql + 'use ' + @db + char(13) + 'dbcc shrinkfile (N''' + @log + ''',11,truncateonly)' + char(13)
		set @sql = @sql + 'use master' + char(13) + 'alter database ' + @db + ' set recovery full with no_wait' + char(13)
		set @sql = @sql + 'alter database ' + @db + ' set recovery full'
		exec sp_executesql @sql
		fetch next from cur into @db
	end
close cur
deallocate cur

嗯,因为数据库名称不见得就是数据库文件名,所以,还是要从 sysfiles 里读取文件名更准确一些

在有定时备份机制的情况下,可以将这个清理数据库日志文件的内容,也放到计划任务里,这样就不用再是不是去关注服务器空间是否被预料外的情况占满了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

文盲老顾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值