我的编程空间,编程开发者的网络收藏夹
学习永远不晚

数据库日志文件过大清理的方法有哪些

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

数据库日志文件过大清理的方法有哪些

这篇文章主要介绍“数据库日志文件过大清理的方法有哪些”,在日常操作中,相信很多人在数据库日志文件过大清理的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”数据库日志文件过大清理的方法有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

方法一:
Backup Log DBname with no_log 
go
dump transaction DBname with no_log
go
USE DBname
DBCC SHRINKFILE (2)
Go

方法二:
设置检查点,自动截断日志

  一般情况下,SQL数据库的收缩并不能很大程度上减小数据库大小,其主要作用是收缩日志大小,应当定期进行此操作以免数据库日志过大
1、设置数据库模式为简单模式:打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server-->SQL Server组-->双击打开你的服务器-->双击打开数据库目录-->选择你的数据库名称(如用户数据库cwbase1)-->然后点击右键选择属性-->选择选项-->在故障还原的模式中选择“简单”,然后按确定保存
2、在当前数据库上点右键,看所有任务中的收缩数据库,一般里面的默认设置不用调整,直接点确定
3、收缩数据库完成后,建议将您的数据库属性重新设置为标准模式,操作方法同第一点,因为日志在一些异常情况下往往是恢复数据库的重要依据

方法三:通过SQL收缩日志

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

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

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

方法四:删除日志文件。

此方法有一定的风险性,因为sql server的日志文件不是即时写入数据库主文件的,如处理不当,会造成数据的损失。1、操作前请断开所有数据库连接。
2、分离数据库
分离数据库:企业管理器->服务器->数据库->cwbase1->右键->分离数据库
分离后,cwbase1数据库被删除,但保留了数据文件和日志文件
3、删除log物理文件
删除LOG物理文件,然后附加数据库: 企业管理器->服务器->数据库->右键->附加数据库
此法生成新的log,大小只有500多k。

注意:建议使用第一种方法。操作前请确保所有操作员都已经推出系统,断开数据库的连接。

以上操作前,请务必做好数据备份!

1.sql server 2005 清除日志语句

dump transaction 数据库名称 with no_log
backup log 数据库名称 with no_log
dbcc shrinkdatabase(数据库名称)


2.sql server 2008 清除日志语句

sp_dboption 数据库名称, "trunc. log on chkpt.", true
checkpoint
sp_dboption 数据库名称, "autoshrink", true

清除SQLSERVER数据库日志文件的方法:

1、先将这个数据库卸载:
EXEC sp_detach_db 'database_name', 'true'
然后将该数据库所对应的Log文件删掉;
最后,再将这个数据库注册到系统里面:

EXEC sp_attach_db @dbname = N'database_name',
@filename1 = N'e:\mssql7\data\database_name_data.mdf'

2、数据库上点右键-所有任务-收缩数据库-选择收缩文件为LOG 。

3、清除SQLSERVER数据库日志的方法:

*******下面是转发的邮件*****

The shrinking of log files is not immediate in SQL Server 7.0. The
shrinking of log files does not occur until the active portion of the
log moves. As updates are performed on the database, the shrink
operation occurs at checkpoints or transaction log backups. Each log
file is marked with the target_percent for the shrink operation. Each
subsequent log backup or log truncation attempts to shrink the file to
bring its size as close to the target_percent as possible. Because a log
file can be shrunk only to a virtual log file boundary, it may not be
possible to shrink a log file to a size smaller than the size of a
virtual log file even if it is not being used. Please refer to SQL Book
Online for the details.

RESOLUTION

Below script will help to shrink the log file immediately, pls keep it
running for 3~4 minutes and then stop it manually.

\* Run "select fileid, name,filename from ..sysfiles" to get
the fileid which you want to shrink *\

use
go
dbcc shrinkfile(fileid,notruncate)
dbcc shrinkfile(fileid,truncateonly)
create table t1 (char1 char(4000))
go
declare @i int
select @i = 0
while (1 = 1)
begin
while (@i < 100)
begin
insert into t1 values ('a') select @i = @i +1
end
truncate table t1
backup log with truncate_only
end
go

*****转发内容结束*****

SQLServer数据库日志清理 清除sqlserver2005日志

有时候当系统运行时间比较长的时候,我们把备份的数据库还原的时候发现,数据库中数据文件和日志文件变的好大,特别是日志文件。现在给大家介绍如何清理SQLServer数据库日志;有两种方法如下:

方法一:手动清除sqlserver2005日志

1.右键在清除日志的数据库,如“TestDB”,点击[新建查询(Q)]
2.输入以下SQL语句,其中“TestDB”是数据库名称
DUMP TRANSACTION TestDB WITH NO_LOG
3.执行该SQL,成功后继续以下操作
4.右键该数据库节点,点击[任务(T)] -> [收缩(S)] -> [文件(F)]
5.在弹出的“收缩文件”对话框中,将“文件类型(T)”选为“日志”,将“收缩操作”选中“在释放未使用的空间前重新组织页(O)”
6.在“将文件收缩到(K)”文本框中输入后面提示的最小大小的数值,点击[确定]即可。

方法二:用工具软件SqlServer日志清除专家3.0,可对Sql Server 6.5到Sql Server 2005的各种版本的数据库日志的清除;其使用方法非常简单;SqlServer 日志清除专家绿色版 V3.5下载地址:

下载地址 http://www.jb51.net/softs/21840.html

方法一操作起来相对麻烦一些,可是可以定制日志的大小,清理日志后其相应的数据库数据文件在也会变小,数据也不会丢失;方法二操作比较方便,可以把数据库中的日志文件清理到1M大小;

到此,关于“数据库日志文件过大清理的方法有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

数据库日志文件过大清理的方法有哪些

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

sqlserver日志清理的方法有哪些

SQL Server 日志清理方法可以通过以下几种方式来实现:使用SQL Server Management Studio (SSMS):可以通过SSMS中的任务计划向导,设置定期的日志清理任务来删除过期的日志文件。使用SQL Server
sqlserver日志清理的方法有哪些
2024-04-15

清除SQL Server数据库日志(ldf文件)的方法汇总

随着系统运行时间的推移,数据库日志文件会变得越来越大,这时我们需要对日志文件进行备份或清理,这篇文章主要介绍了清除SQL Server数据库日志(ldf文件)的几种方法,需要的朋友可以参考下
2022-11-13

sqlserver数据库日志清理的方法是什么

SQL Server数据库日志清理的方法包括:使用SQL Server Management Studio (SSMS):可以通过SSMS中的图形用户界面来清理数据库日志。在SSMS中,右键点击数据库,选择任务 -> 截断日志来清理日志。使
sqlserver数据库日志清理的方法是什么
2024-04-09

mysql数据库日志清理的方法是什么

MySQL数据库的日志清理有以下几种方法:通过重启MySQL服务器来清理日志。当MySQL服务器重启时,会自动清理并重新生成日志文件。这种方法比较简单,但需要重启数据库服务,可能会造成数据库服务暂时不可用。使用MySQL的命令行工具或图形界
2023-10-25

mysql清理数据的方法有哪些

清理MySQL数据库数据的方法有以下几种:使用DELETE语句:可以通过执行DELETE语句来删除指定表中的数据。例如:DELETE FROM table_name WHERE condition;使用TRUNCATE TABLE语句:TR
mysql清理数据的方法有哪些
2024-04-09

Sql Server 压缩数据库日志文件的方法

Sql Server 日志 _log.ldf文件太大,数据库文件有500g,日志文件也达到了500编程客栈g,占用磁盘空间过大,且可http://www.cppcns.com能影响程序性能,需要压缩日志文件。压缩日志脚本里要填的名字从要压
2022-11-24

win7临时文件清理的方法有哪些

清理Win7临时文件的方法有以下几种:1. 通过“磁盘清理工具”进行清理:- 首先,打开“计算机”或“我的电脑”,右键点击要清理的硬盘驱动器(一般是C盘),选择“属性”。- 在弹出的对话框中,点击“磁盘清理”。2. 手动清理临时文件夹:-
2023-08-24

mysql查看数据库大小的方法有哪些

使用命令行查看数据库大小:可以通过登录到MySQL数据库服务器的命令行界面,执行以下SQL语句来查看数据库的大小:SELECT table_schema AS "Database", ROUND(SUM(data_length + in
mysql查看数据库大小的方法有哪些
2024-04-09

数据库死锁处理的方法有哪些

以下是一些处理数据库死锁的方法:1. 避免死锁:尽量设计良好的数据库结构,避免出现死锁的情况。可以使用合适的事务隔离级别,以及良好的并发控制策略。2. 死锁检测和回滚:当检测到死锁时,可以使用死锁检测算法来确定死锁的存在,并回滚其中一个或多
2023-09-20

云服务器清理缓存数据的方法有哪些

云服务器清理缓存数据的方法有以下几种:手动清理:在服务器上通过手动清理缓存数据或者自动清理服务器日志文件,进行缓存清理,以及释放服务器资源。可以按照时间轴或者按照文件类型进行清理操作,例如:清理历史记录:将缓存文件或者日志文件的时间轴保存下来,这样可以快速清理缓存数据,减少服务器负载。查看缓存日志:将缓存日志保存下来,可以查看文件是否有过更改,以及是否已清理,以及是否有其他需要注意的地方。使用工具清理缓存:使用...
2023-10-27

编程热搜

目录