数据库清除日志文件(LDF文件过大)

 更新时间:2009年11月09日 17:18:30   作者:  
数据库清除日志文件,(LDF文件过大),一般情况下,有更简单的方法,需要在sqlserver查询执行。
清除日志:
复制代码 代码如下:

DECLARE @LogicalFileName sysname,
@MaxMinutes INT,
@NewSize INT
USE szwzcheck -- 要操作的数据库名
SELECT @LogicalFileName = 'szwzcheck_Log', -- 日志文件名
@MaxMinutes = 10, -- Limit on time allowed to wrap log.
@NewSize = 20 -- 你想设定的日志文件的大小(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
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

把szwzcheck换成你数据库的名字即可,在查询分析器里面运行。
有全角的空格(为了显示好看),你自己把他换一下.

脚本之家编辑注:
一般情况下,用下面的语句更简单
复制代码 代码如下:

DUMP TRANSACTION [jb51] WITH NO_LOG
BACKUP LOG [jb51] WITH NO_LOG
DBCC SHRINKDATABASE([jb51])

其中jb51就是你要处理的数据库名。

相关文章

  • SQL Server数据库如何查看表的数据内容

    SQL Server数据库如何查看表的数据内容

    查询数据在数据库的操作中相当重要的,在项目实训中查询是经常要用到的,所以掌握数据库的查询是基本要求,这篇文章主要给大家介绍了关于SQL Server数据库如何查看表的数据内容的相关资料,需要的朋友可以参考下
    2023-11-11
  • sqlserver 模糊查询常用方法

    sqlserver 模糊查询常用方法

    LIKE 关键字搜索与指定模式匹配的字符串、日期或时间值。LIKE 关键字使用常规表达式包含值所要匹配的模式。模式包含要搜索的字符串,字符串中可包含四种通配符的任意组合。
    2010-09-09
  • sql server数据库中raiserror函数用法的详细介绍

    sql server数据库中raiserror函数用法的详细介绍

    这篇文章主要介绍了sql server数据库中raiserror函数用法的详细介绍,raiserror用于抛出一个异常或错误,让这个错误可以被程序捕捉到。对此感兴趣的可以了解一下
    2020-07-07
  • 总结SQL执行进展优化方法

    总结SQL执行进展优化方法

    谈到优化就必然要涉及索引,就像要讲锁必然要说事务一样,建议读者先了解一下索引。
    2015-08-08
  • SQL server数据库日志文件收缩操作方法

    SQL server数据库日志文件收缩操作方法

    日常使用数据库可能存在日志每天增长10G或以上,太恐怖了!数据量过大导致服务器卡死,内存溢出,执行Sql过慢等问题,这篇文章主要给大家介绍了关于SQL server数据库日志文件收缩操作的相关资料,需要的朋友可以参考下
    2024-02-02
  • 查询SQL Server数据库服务器IP地址的多种有效方法

    查询SQL Server数据库服务器IP地址的多种有效方法

    作为数据库管理员或开发人员,了解如何查询SQL Server数据库服务器的IP地址是一项重要技能,本文将介绍几种简单而有效的方法,帮助你轻松获取这一信息,无论你是新手还是经验丰富的专业人士,这些方法都能为你提供所需的信息,需要的朋友可以参考下
    2025-02-02
  • mssql 两种数据插入方式

    mssql 两种数据插入方式

    下面那种不太常见的插入方法。
    2009-05-05
  • SQLServer设置客户端使用IP地址登录的图文详解

    SQLServer设置客户端使用IP地址登录的图文详解

    这篇文章主要介绍了SQLServer设置客户端使用IP地址登录的图文详解,本文通过图文并茂的形式给大家介绍的非常想详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • SQL中Exists的用法

    SQL中Exists的用法

    这篇文章主要介绍了SQL中Exists的用法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-02-02
  • 数据库表的创建、管理和数据操作(实验一)

    数据库表的创建、管理和数据操作(实验一)

    这篇文章主要介绍了数据库中表的创建、管理和数据操作,感兴趣的小伙伴可以参考一下
    2015-08-08

最新评论