--辅助表:数据库文件信息表
--select * from dbo.sysfiles
--select * from dbo.sysfiles1
use DBname --DataBaseName
declare @SizeLimit int --定义变量:日志文件增长大小限制
declare @SizeCurrent int --定义变量:日志文件当前大小值
--设置日志文件大小限制值为5000MB
set @SizeLimit=5000
--print @SizeLimit
--获取当前日志文件大小信息
--说明:其中字段[size]的值为页数,每页大小为8KB,所以实际大小为[size]*8/1024;
--注意条件where fileid=2以实际情况而定;
select @SizeCurrent=[size]*8/1024 from dbo.sysfiles where fileid=2
--print @SizeCurrent
--如果当前日志实际大小 大于 指定限制值,截断日志
if @SizeCurrent>@SizeLimit
Begin
--print'DoSth.'
backup log DBname with no_log --注意数据库名须与前面一致
dbcc shrinkdatabase(DBname,10) --参数10视实际情况自定
End
--注:有三处DBname需改成实际的库名
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30164674/viewspace-1543879/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/30164674/viewspace-1543879/
本文介绍了一种SQL Server数据库中日志文件大小监控及自动截断的方法。通过定义变量来记录日志文件的增长限制与当前大小,并使用SQL语句查询实际大小。当日志文件超过设定阈值时,采用备份日志并收缩数据库的方式进行处理。
1万+

被折叠的 条评论
为什么被折叠?



