如何缩小SQL SERVER日志文件

原创 2004年07月07日 14:03:00

把代码COPY到查询分析器里,然后修改其中的3个参数(数据库名,日志文件名,和目标日志文件的大小),运行即可。

-----
SET NOCOUNT ON
DECLARE @LogicalFileName sysname,
@MaxMinutes INT,
@NewSize INT


USE Marias -- 要操作的数据库名
SELECT @LogicalFileName = 'Marias_log', -- 日志文件名
@MaxMinutes = 10, -- Limit on time allowed to wrap log.
@NewSize = 100 -- 你想设定的日志文件的大小(M)

-- Setup / initialize
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

sqlserver日志文件缩小

最近装了个500g的固态硬盘,导入我原来的数据库后发现有60多个G的内存不见了, 最后发现我的某个数据库有60多个G的日志文件(.ldf文件)文件,现在来教大家如何把60多个G变成1M。     ...
  • sleepsmile
  • sleepsmile
  • 2016-03-21 17:08:02
  • 244

SqlServer2008T-Sql收缩数据库日志文件

一、 在SQL2008中清除日志就必须在简单模式下进行,等清除动作完毕再调回到完全模式。 实例代码: ---------------------------------数据库日志文件收缩------...
  • u011127019
  • u011127019
  • 2016-12-14 14:47:29
  • 1621

如何缩小SQL SERVER日志文件

  前几天也碰到日志文件过大的问题,数据库实际大小为600M, 日志文件实际大小为33M, 但日志文件占用空间为2.8G!!! 试了多种方式,SHIRNK DATABASE, TRUNCATE LOG...
  • zhangting1987
  • zhangting1987
  • 2008-01-30 17:40:00
  • 312

SQL2008R2数据库日志太大收缩方法

  • 2014年08月22日 10:24
  • 263KB
  • 下载

MSSQL 2005,2008,2012收缩清空删除大日志文件

由于SQL2008,2012对文件和日志管理进行了优化,所以以下语句在SQL2005中可以运行但在SQL2008中已经被取消: SQL2005清空删除日志: -- 这里的DNName是要收缩的数据...
  • mooncarp
  • mooncarp
  • 2016-06-15 19:22:00
  • 833

缩小SQL SERVER日志文件

SQL server 2000 会有日志文件由于时间的积累越来越大的问题:数据库实际大小为15M, 日志文件实际大小为625KB(导出的日志文件), 但日志文件实际占用空间为200MB(默认设置是文件...
  • hejishan
  • hejishan
  • 2007-12-18 03:54:00
  • 174

SQL Server中收缩、清空和删除数据库文件及日志文件

一、简单方法 –SQL Server收缩方法 1、右键数据库→属性→选项→故障还原模型→设为简单→确定; 2、右键数据库→所有任务→收缩数据库→确定; 3、右键数据库→属性→选项→故障还...
  • wlming6
  • wlming6
  • 2015-06-15 11:29:29
  • 10018

SQL Server 2008 压缩日志文件

1.     收缩数据库方法 1) 在查询分析器中执行如下代码来查看日志信息: DBCC loginfo('MyDatabase') 可以看到status=0的日志,代表已经备份到磁盘的...
  • bittanxiaochen
  • bittanxiaochen
  • 2015-10-28 13:39:43
  • 1419

SQL Server 2000日志压缩工具

  • 2009年10月12日 10:03
  • 252KB
  • 下载
收藏助手
不良信息举报
您举报文章:如何缩小SQL SERVER日志文件
举报原因:
原因补充:

(最多只允许输入30个字)