linux下的mysql数据库大小写问题
2011-04-21 16:03
302 查看
SQL2005 1个多G的日志,有时候清不掉。所以找了这段代码。
有时候清理日志未清理成1M 请多执行几遍。一般清况下执行一次就可以的。
我碰到过要执行两遍的。
1SELECT@LogicalFileName='Test_log',
Test_log 为日志逻辑名称。
<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />-->
--=============================================
--Author:fighter
--Createdate: 2009-3-15
--Description: clearsqllog
--=============================================
CREATEPROCEDURE[dbo].[tools_ClearSqlLog]
AS
BEGIN
SETNOCOUNTON
DECLARE@LogicalFileNamesysname,
@MaxMinutesINT,
@NewSizeINT
SELECT@LogicalFileName='Test_log',
@MaxMinutes=1,
@NewSize=1
--Setup/initialize
DECLARE@OriginalSizeint
SELECT@OriginalSize=sizeFROMsysfilesWHEREname=@LogicalFileName
SELECT'OriginalSizeof'+db_name()+'LOGis'+
CONVERT(VARCHAR(30),@OriginalSize)+'8Kpagesor'+
CONVERT(VARCHAR(30),(@OriginalSize*8/1024))+'MB'
FROMsysfiles
WHEREname=@LogicalFileName
CREATETABLEDummyTrans
(DummyColumnchar(8000)notnull)
DECLARE@CounterINT,
@StartTimeDATETIME,
@TruncLogVARCHAR(255)
SELECT@StartTime=GETDATE(),
@TruncLog='BACKUPLOG'+db_name()+'WITHTRUNCATE_ONLY'
DBCCSHRINKFILE(@LogicalFileName,@NewSize)
EXEC(@TruncLog)
--Wrapthelogifnecessary.
WHILE@MaxMinutes>DATEDIFF(mi,@StartTime,GETDATE())--timehasnotexpired
AND@OriginalSize=(SELECTsizeFROMsysfilesWHEREname=@LogicalFileName)
AND(@OriginalSize*8/1024)>@NewSize
BEGIN--Outerloop.
SELECT@Counter=0
WHILE((@Counter<@OriginalSize/16)AND(@Counter<50000))
BEGIN--update
INSERTDummyTransVALUES('FillLog')
DELETEDummyTrans
SELECT@Counter=@Counter+1
END
EXEC(@TruncLog)
END
SELECT'FinalSizeof'+db_name()+'LOGis'+
CONVERT(VARCHAR(30),size)+'8Kpagesor'+
CONVERT(VARCHAR(30),(size*8/1024))+'MB'
FROMsysfiles
WHEREname=@LogicalFileName
DROPTABLEDummyTrans
SETNOCOUNTOFF
END
有时候清理日志未清理成1M 请多执行几遍。一般清况下执行一次就可以的。
我碰到过要执行两遍的。
1SELECT@LogicalFileName='Test_log',
Test_log 为日志逻辑名称。
<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />-->
--=============================================
--Author:fighter
--Createdate: 2009-3-15
--Description: clearsqllog
--=============================================
CREATEPROCEDURE[dbo].[tools_ClearSqlLog]
AS
BEGIN
SETNOCOUNTON
DECLARE@LogicalFileNamesysname,
@MaxMinutesINT,
@NewSizeINT
SELECT@LogicalFileName='Test_log',
@MaxMinutes=1,
@NewSize=1
--Setup/initialize
DECLARE@OriginalSizeint
SELECT@OriginalSize=sizeFROMsysfilesWHEREname=@LogicalFileName
SELECT'OriginalSizeof'+db_name()+'LOGis'+
CONVERT(VARCHAR(30),@OriginalSize)+'8Kpagesor'+
CONVERT(VARCHAR(30),(@OriginalSize*8/1024))+'MB'
FROMsysfiles
WHEREname=@LogicalFileName
CREATETABLEDummyTrans
(DummyColumnchar(8000)notnull)
DECLARE@CounterINT,
@StartTimeDATETIME,
@TruncLogVARCHAR(255)
SELECT@StartTime=GETDATE(),
@TruncLog='BACKUPLOG'+db_name()+'WITHTRUNCATE_ONLY'
DBCCSHRINKFILE(@LogicalFileName,@NewSize)
EXEC(@TruncLog)
--Wrapthelogifnecessary.
WHILE@MaxMinutes>DATEDIFF(mi,@StartTime,GETDATE())--timehasnotexpired
AND@OriginalSize=(SELECTsizeFROMsysfilesWHEREname=@LogicalFileName)
AND(@OriginalSize*8/1024)>@NewSize
BEGIN--Outerloop.
SELECT@Counter=0
WHILE((@Counter<@OriginalSize/16)AND(@Counter<50000))
BEGIN--update
INSERTDummyTransVALUES('FillLog')
DELETEDummyTrans
SELECT@Counter=@Counter+1
END
EXEC(@TruncLog)
END
SELECT'FinalSizeof'+db_name()+'LOGis'+
CONVERT(VARCHAR(30),size)+'8Kpagesor'+
CONVERT(VARCHAR(30),(size*8/1024))+'MB'
FROMsysfiles
WHEREname=@LogicalFileName
DROPTABLEDummyTrans
SETNOCOUNTOFF
END
相关文章推荐
- Linux环境下MySQL数据库大小写区分问题
- Linux环境下MySQL数据库大小写区分问题
- Linux环境下MySQL数据库大小写区分问题
- Linux环境下MySQL数据库大小写区分问题
- 解决mysql数据库在linux上表名大小写问题
- Linux环境下MySQL数据库大小写区分问题
- MySQL数据库乱码-Linux下乱码问题
- linux mysql表格大小写的问题
- 日常问题(四)——Linux系统下MariaDB如何区分大小写
- MySQL数据库名、表名、列名、别名区分大小写的问题
- linux定时备份mysql数据库,及解决crontab执行时生成数据库文件为空的问题
- linux mysql 大小写问题
- 解决Linux下mysql区分表名大小写的问题
- Javaweb开发中,mysql数据库字段默认不区分大小写问题
- 关于不能远程连接Linux中Mysql数据库的问题
- Windows/Linux下MySql 不区分大小写设置问题
- MySQL数据库表名、列名、别名区分大小写的问题及解决
- CI在linux系统下的大小写问题
- linux下python3连接mysql数据库问题
- Linux MySQL大小写敏感问题与 docker cp 命令