日志压缩脚本
来源:互联网 发布:caffe 训练自己的数据 编辑:程序博客网 时间:2024/05/17 01:00
/* 本文由微软新闻组摘录下来的。一段非常有用的脚本。
如果碰到日志文件过大的问题,用SHIRNK DATABASE, TRUNCATE LOG FILE不是很有效时,可以考虑试下下面的脚本。把代码COPY到查询分析器里,然后修改其中的3个参数(数据库名,日志文件名,和目标日志文件的大小),运行即可
*/
----------------------------------------------------------------------------------
SET NOCOUNT ON
DECLARE @LogicalFileName sysname, --日志文件名
@MaxMinutes INT, --允许此脚本执行的最长时间
@NewSize INT --目标日志文件的大小
USE CRM -- 要操作的数据库名
SELECT @LogicalFileName = 'CRM_LOG', -- 日志文件名
@MaxMinutes = 10, -- Limit on time allowed to wrap log.
@NewSize = 1 -- 想要收缩到的目标大小(单位M),此处标记收缩到1M
DECLARE @OriginalSize int
SELECT @OriginalSize = size
FROM sysfiles
WHERE name = @LogicalFileName
SELECT 'Original Size of ' + db_name() + ' LOG is ' +
CONVERT(VARCHAR(30),@OriginalSize) + ' 8K pages or ' +
CONVERT(VARCHAR(30),(@OriginalSize*8/1024)) + 'MB'
FROM sysfiles
WHERE name = @LogicalFileName
CREATE TABLE DummyTrans(DummyColumn char (8000) not null)
DECLARE @Counter INT,
@StartTime DATETIME,
@TruncLog VARCHAR(255)
SELECT @StartTime = GETDATE(),
@TruncLog = 'BACKUP LOG ' + db_name() + ' WITH TRUNCATE_ONLY'
DBCC SHRINKFILE (@LogicalFileName, @NewSize)
EXEC (@TruncLog)
-- Wrap the log if necessary.
WHILE @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE()) -- time has not expired
AND @OriginalSize = (SELECT size FROM sysfiles WHERE name =
@LogicalFileName)
AND (@OriginalSize * 8 /1024) > @NewSize
BEGIN -- Outer loop.
SELECT @Counter = 0
WHILE ((@Counter < @OriginalSize / 16) AND (@Counter < 50000))
BEGIN -- update
INSERT DummyTrans VALUES ('Fill Log')
DELETE DummyTrans
SELECT @Counter = @Counter + 1
END
EXEC (@TruncLog)
END
SELECT 'Final Size of ' + db_name() + ' LOG is ' +
CONVERT(VARCHAR(30),size) + ' 8K pages or ' +
CONVERT(VARCHAR(30),(size*8/1024)) + 'MB'
FROM sysfiles
WHERE name = @LogicalFileName
DROP TABLE DummyTrans
SET NOCOUNT OFF
如果碰到日志文件过大的问题,用SHIRNK DATABASE, TRUNCATE LOG FILE不是很有效时,可以考虑试下下面的脚本。把代码COPY到查询分析器里,然后修改其中的3个参数(数据库名,日志文件名,和目标日志文件的大小),运行即可
*/
----------------------------------------------------------------------------------
SET NOCOUNT ON
DECLARE @LogicalFileName sysname, --日志文件名
@MaxMinutes INT, --允许此脚本执行的最长时间
@NewSize INT --目标日志文件的大小
USE CRM -- 要操作的数据库名
SELECT @LogicalFileName = 'CRM_LOG', -- 日志文件名
@MaxMinutes = 10, -- Limit on time allowed to wrap log.
@NewSize = 1 -- 想要收缩到的目标大小(单位M),此处标记收缩到1M
DECLARE @OriginalSize int
SELECT @OriginalSize = size
FROM sysfiles
WHERE name = @LogicalFileName
SELECT 'Original Size of ' + db_name() + ' LOG is ' +
CONVERT(VARCHAR(30),@OriginalSize) + ' 8K pages or ' +
CONVERT(VARCHAR(30),(@OriginalSize*8/1024)) + 'MB'
FROM sysfiles
WHERE name = @LogicalFileName
CREATE TABLE DummyTrans(DummyColumn char (8000) not null)
DECLARE @Counter INT,
@StartTime DATETIME,
@TruncLog VARCHAR(255)
SELECT @StartTime = GETDATE(),
@TruncLog = 'BACKUP LOG ' + db_name() + ' WITH TRUNCATE_ONLY'
DBCC SHRINKFILE (@LogicalFileName, @NewSize)
EXEC (@TruncLog)
-- Wrap the log if necessary.
WHILE @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE()) -- time has not expired
AND @OriginalSize = (SELECT size FROM sysfiles WHERE name =
@LogicalFileName)
AND (@OriginalSize * 8 /1024) > @NewSize
BEGIN -- Outer loop.
SELECT @Counter = 0
WHILE ((@Counter < @OriginalSize / 16) AND (@Counter < 50000))
BEGIN -- update
INSERT DummyTrans VALUES ('Fill Log')
DELETE DummyTrans
SELECT @Counter = @Counter + 1
END
EXEC (@TruncLog)
END
SELECT 'Final Size of ' + db_name() + ' LOG is ' +
CONVERT(VARCHAR(30),size) + ' 8K pages or ' +
CONVERT(VARCHAR(30),(size*8/1024)) + 'MB'
FROM sysfiles
WHERE name = @LogicalFileName
DROP TABLE DummyTrans
SET NOCOUNT OFF
- 日志压缩脚本
- 日志压缩shell脚本
- 压缩日志脚本
- 批量压缩Nginx日志 脚本
- SQL2000 日志清除和数据库压缩脚本
- 压缩SqlServer数据库日志的脚本
- nginx日志切割脚本,自动压缩
- WEB日志每天打包压缩切割删除历史日志脚本
- 转(zjcxc)之SQL脚本--有关压缩数据库日志
- shell脚本定时任务--日志压缩(删除)
- 创建cron定时压缩日志的脚本级find指令
- 使用shell脚本对日志文件进行定时压缩
- 压缩日志
- Linux下定时切割Nginx访问日志并打包压缩的Shell脚本
- Linux下添加shell脚本使得nginx日志每天定时切割压缩
- Linux下添加shell脚本使得nginx日志每天定时切割压缩
- 日志定时压缩清理shell脚本(日志文件后缀格式如xxxxx.log.2017-07-10)
- 压缩数据库日志
- using的几种用法
- C# 控制窗体系统菜单
- js刷新几种类型的父窗体的方法
- 如何使MDI窗体只显示当前点击Form
- 今天很无聊
- 日志压缩脚本
- Tomcat虚拟主机配置
- 双行舌签导航条实现集成搜索
- mysqlcheck:表维护和维修程序
- 生活的悲剧主要不在于人们受多少苦,而在于人们错过了什么!
- 谷歌浏览器源代码优化(二)续
- 简单剖析一下 HttpServer的实现方式
- 创建SQLServer数据库和数据表
- 比我的HKC性价比还高一筹