清除数据库日志
- 格式:doc
- 大小:972.00 KB
- 文档页数:7
SQL日志文件太大清理方法当SQL日志文件太大时,清理方法包括:备份、压缩、归档和删除等步骤。
下面是一些具体的方法和步骤:1.备份日志文件:首先,需要确保已经备份了当前的SQL日志文件。
这是因为,在清理之前,需要先保存原始的日志文件,以防止出现意外情况。
可以使用数据库管理工具或命令行工具进行备份。
2.压缩日志文件:为了减小日志文件的大小,可以使用压缩工具将其进行压缩。
压缩后的日志文件可以占用更少的磁盘空间,同时也更容易存储和传输。
在压缩之前,要确保不再需要对日志进行任何操作,以免丢失任何重要信息。
3.归档日志文件:归档是将日志文件从当前位置移到另一个位置的过程。
通过归档,可以将旧的日志文件移动到一个备份或存档目录中,以便以后查看或还原。
这样,可以释放当前的日志文件空间,并保留原始的日志记录。
具体的归档方法可以根据数据库管理系统和应用程序的要求进行选择。
4.删除日志文件:一旦已经完成了备份、压缩和归档操作,就可以考虑删除较旧的日志文件。
删除日志文件可以释放磁盘空间,提高系统性能,并且可以避免日志文件过大对系统运行造成负面影响。
但是,在删除日志文件之前,要确保已经备份和归档了这些文件,以防止丢失重要的数据。
需要注意的是,清理SQL日志文件需要谨慎操作,以免出现数据丢失或其他不可预料的问题。
因此,在进行清理操作之前,建议先备份和归档日志文件,以便以后查看或还原。
此外,要保持日志文件的合理大小,可以定期进行备份和归档操作,避免日志文件不断增长而导致系统性能下降。
在执行清理操作时,最好在非繁忙的时间段进行,以减少对系统运行的干扰。
数据库日志清除语句当数据库的日志文件太大,磁盘没有空间不能做单据时,我们可以用下面的方法直接清除日志:2008版本以下的数据库执行以下整个语句:--标准use数据库名称gobackup log数据库名称with no_logdbcc shrinkfile(2)--实例use DSCSYSgobackup log DSCSYS with no_logdbcc shrinkfile(2)说明:不论是公司数据库还是公用数据库,只要把数据库名称全部替换了即可。
2008版本以上的数据库执行以下整个语句:--标准USE[master]GOALTER DATABASE DNName SET RECOVERY SIMPLE WITH NO_WAITGOALTER DATABASE DNName SET RECOVERY SIMPLEGOUSE DNNameGODBCC SHRINKFILE(N'FILEName_Log', 11,TRUNCATEONLY)GOUSE[master]GOALTER DATABASE DNName SET RECOVERY FULL WITH NO_WAITGOALTER DATABASE DNName SET RECOVERY FULLGO--实例USE[master]GOALTER DATABASE DEMO90SET RECOVERY SIMPLE WITH NO_WAITGOALTER DATABASE DEMO90SET RECOVERY SIMPLEGOUSE DEMO90GODBCC SHRINKFILE(N'outside_Log', 11,TRUNCATEONLY)GOUSE[master]GOALTER DATABASE DEMO90SET RECOVERY FULL WITH NO_WAITGOALTER DATABASE DEMO90SET RECOVERY FULLGO说明:1.标准示例中的DNName及实例中的DEMO90表示的是数据库名称,就是下图看到的名字2.标准示例中的FILEName_Log及实例中的outside_Log表示的是数据库文件的逻辑名称,可通过下面的方法查到:第一步:选中要清除日志的数据库,右击“属性”第二步:点击“文件”页签查看逻辑名适用对象:cc、客户、代理商。
清理 SQL Server 数据库日志的几种方法随着企业数据量的不断增加,数据库的日志文件也会随之增长。
数据库日志文件的不断增长会消耗大量磁盘空间,甚至会影响数据库的性能。
定期清理数据库日志是数据库管理的一个重要环节。
本文将介绍清理 SQL Server 数据库日志的几种方法,帮助数据库管理员解决数据库日志文件过大的问题。
一、备份事务日志1. 利用 SQL Server Management Studio (SSMS) 进行备份通过使用 SSMS,可以进行数据库事务日志的定期备份。
在 SSMS 中选择要备份的数据库,右键点击“任务”->“备份”,在备份类型中选择“仅事务日志”,即可完成事务日志的备份。
2. 利用 T-SQL 命令进行备份在 SQL Server 中,可以通过使用 T-SQL 命令进行事务日志的备份。
例如:```BACKUP LOG [数据库名] TO DISK = '备份文件路径' WITH NOFORMAT, NOINIT, NAME = '备份名称', SKIP, NOUNLOAD, STATS = 10```通过上述两种备份方式,可以定期备份数据库的事务日志,避免日志文件过大。
二、修改日志文件的增长方式1. 修改日志文件增长的百分比在数据库管理中,可以通过修改数据库的日志文件的增长百分比来控制日志文件的增长。
通过减小增长百分比,可以减缓日志文件的增长速度,从而减少磁盘空间的消耗。
2. 修改日志文件的增长大小除了修改增长百分比外,还可以通过修改日志文件的增长大小来控制日志文件的大小。
将增长大小设置为一个合适的值,可以避免日志文件过大,减少磁盘空间的占用。
三、截断事务日志1. 利用 SQL Server Management Studio (SSMS) 进行截断通过使用 SSMS,可以对数据库的事务日志进行截断。
在 SSMS 中选择要截断的数据库,右键点击“任务”->“收缩”->“文件”,选择要收缩的文件类型为“日志”,即可完成事务日志的截断。
SQL Server事务日志备份的清除操作指南事务日志清除目的:SQL Server数据库由一个.mdf文件与.ldf文件组成,mdf是主数据存储的文件,ldf是数据库日志存储的文件。
对于日志文件,因每次SQL 发生的操作(插入、更新、删除)都会把操作日志记录到日志文件中(以备可通过日志还原),因此日志文件每天都会增长(增长速度会明显比mdf文件快,有时一个月没清除就会达到几个G的大小),因此需要对事务日志中已有的历史不活动的日志做清除,以防止数据库ldf文件的无限彭胀。
(目前还未用过ldf文件来做恢复的,况且用他恢复也不安全,因此ldf文件中数据可以清除).SQL通过对事务日志备份动作来对不活动的日志进行清除截断。
在定义数据库的事务日志清除前,请先确保Sql server服务器端 Sql Server agent服务是否开启,只有服务器端的Sql Server agent服务开启才能进行如下述的服务库端的自动备份。
第一步:找到需设置事务日志备份的数据库:如lm_hr点击鼠标右键先选择”所第二步:在备份四个选项中,请选择“事务日志”项目在备份四个选项中,第三步:选择好“事务日志”之后,点击“添加”按钮选择好“事务日如’备份到’下方已有指定文件的路径,请第四步:设置文件名以及选择文件名的存储路径点击“”按钮,选择注意:存储路径最好不要指向C盘(系统文件盘),防止系统重新安装时,文件被格式化!存放第五步:设置好文件的存储路径和名称后,点击“确定”设置好文件的存储第六步:选择“重写”中的“重写现有媒体”选项选择“重写现有媒体”,这种第七步:选择“调度”对日志备份进行时间调度设置在“调度”前方框里打上‘√’,第八步:对“调度”时间进行详细设置单击点击“更填写调度的名称,以第九步:对“发生频率”,“每日频率”以及“持续时间”设置第十步:设置完毕,直接点击“确定”按钮若用户希望数据库从2006-12-16开始每天夜里1点自动备份数据”发生频设置完毕,直接点击“确定”按钮。
Mysql数据库清理binlog⽇志命令详解概述今天主要分享下mysql数据库应该如何正确的删除binlog⽇志,这⾥要注意不要强制使⽤rm命令进⾏清除。
否则mysq-bin.index错乱,最终导致后期expire-log-days配置项失效。
1、查看binlog⽇志mysql> show binary logs;2、删除某个⽇志⽂件之前的所有⽇志⽂件purge binary logs to 'mysql-bin.000035';3、清理2019-09-09 13:00:00前binlog⽇志PURGE MASTER LOGS BEFORE '2019-09-09 13:00:00';4、清理3天前binlog⽇志PURGE MASTER LOGS BEFORE DATE_SUB(NOW( ), INTERVAL 3 DAY);--BEFORE,变量的date⾃变量可以为'YYYY-MM-DD hh:mm:ss'格式。
这⾥的清理是指从此刻-3243600s前的⽂件,是此⽂件最后更新的时间。
--时间和⽂件名⼀定不可以写错,尤其是时间中的年和⽂件名中的序号,以防不⼩⼼将正在使⽤的binlog删除--切勿删除正在使⽤的binlog5、重置所有的⽇志reset master;6、⼿动切换binlog⽇志flush logs--或者flush binary logs当你某天把所有binlog⽇志全⼲掉,数据库没有产⽣新的⽇志的时候就可以⽤⼿动切换这个⽅式来产⽣了..总结以上就是这篇⽂章的全部内容了,希望本⽂的内容对⼤家的学习或者⼯作具有⼀定的参考学习价值,谢谢⼤家对的⽀持。
数据库清理日志数据库清理日志概述数据库日志是数据库系统中非常重要的组成部分。
它记录了所有对数据库的操作,包括增删改查等,以及相关的事务信息。
这些日志信息可以用于恢复数据、故障排除和性能优化等方面。
但是,随着时间的推移,日志文件会变得越来越大,不仅占用磁盘空间,而且也会影响性能。
因此,定期清理数据库日志是非常必要的。
清理方法1.备份并截断日志备份并截断日志是最基本的清理方法。
它可以将当前的事务信息写入到备份中,并将已经提交的事务从当前日志文件中删除。
这样可以避免过多地占用磁盘空间,并且保留了一定量的历史数据以供后续使用。
2.压缩和归档压缩和归档是另一种有效的清理方法。
它可以将历史数据进行压缩和归档,以节省磁盘空间。
同时也可以将归档文件存储到其他位置或设备上,以保证数据安全性。
3.删除旧数据删除旧数据也是一种有效的清理方法。
它可以将一些过时或无用的数据从数据库中删除,并从日志文件中删除相关的事务信息。
这样可以释放更多的磁盘空间,并且可以提高数据库的查询性能。
清理频率清理频率是根据实际情况而定的。
一般来说,数据库日志清理应该在备份之后进行,以确保数据的安全性。
同时也应该根据数据量、系统负载和硬件条件等因素来确定清理频率。
一般情况下,每周或每月进行一次清理是比较合适的。
注意事项1.备份和归档时要注意数据安全性在备份和归档时,要注意数据安全性。
尤其是在将归档文件存储到其他位置或设备上时,要确保数据不会被篡改或泄露。
2.删除旧数据时要谨慎操作在删除旧数据时,要谨慎操作。
一些重要的历史数据可能会被误删,导致无法恢复或造成损失。
3.避免过度清理过度清理可能会导致无法恢复数据或影响系统性能。
因此,在进行数据库日志清理时,应该谨慎处理,并避免过度清理。
总结数据库日志是数据库系统中非常重要的组成部分。
定期清理数据库日志可以避免占用过多的磁盘空间,并保证系统性能。
备份并截断日志、压缩和归档以及删除旧数据是常用的清理方法。
数据库日志清除办法:
1.打开数据,在数据库erp_30上单击右键,点击“任务”里的“分离”,勾选图上所示的
两个勾选框后,点击确定
2.成功后,到f盘下的data文件夹,删除图中选中的文件(特别大的那个文件一般超过
200g)
3.打开数据库,此时erp_30已经没有了,点击“数据库”如下图所示,单击右键,选择
“附加”,添加f盘下data文件夹中的刚才没删除的文件,此时下面的框数据库详细信息会显示两个文件,删除后面显示未找到的文件,点击确定。
4.附加完成之后下面应出现dotnet_erp30这个数据库
5.返回135服务器,点击开始---所有程序—明源软件—数据库配置工具,录入正确的数据
库配置信息即可。
SQL2000日志清理方法SQL Server 2000是一个非常古老的数据库管理系统,虽然已经过时,但仍然有一些组织使用它。
在SQL Server 2000中,日志文件经常会变得非常大,占用大量磁盘空间。
为了有效管理和清理日志文件,以下是一些可以使用的方法。
1.设计合适的恢复模式SQL Server 2000有三种恢复模式:完全恢复模式、大容量日志恢复模式和简单恢复模式。
对于需要恢复到特定时间点的组织,可以选择完全或大容量日志恢复模式,但需要定期备份日志文件和清理旧的备份。
对于一些不需要恢复到特定时间点的组织,可以选择简单恢复模式,它会自动清除日志文件。
2.定期备份日志文件在完全恢复模式或大容量日志恢复模式下,定期备份日志文件非常重要。
这样可以释放事务日志,使其不再继续增长。
可以使用`BACKUPLOG`命令来备份日志文件,并设置相应的计划任务以确保定期备份。
3.缩减日志文件当执行一次日志备份后,`BACKUPLOG`命令可以触发事务日志的缩减。
可以使用`DBCCSHRINKFILE`命令来缩减日志文件的大小,从而释放磁盘空间。
但需要注意,缩减日志文件可能导致性能下降,因此需要在低峰期执行。
4.数据库挂起和启动将数据库挂起并重新启动可以清除事务日志并释放磁盘空间。
可以使用 `ALTER DATABASE [DatabaseName] SET ONLINE/OFFLINE` 命令来完成这个操作。
挂起数据库会中断对数据库的访问,因此需要在低峰期执行。
5.自动备份和清理使用SQL Server代理任务和T-SQL命令,可以创建计划任务来自动备份和清理日志文件。
可以定期执行 `BACKUP LOG` 和 `DBCC SHRINKFILE` 命令,以确保日志文件的大小保持在合理的范围内。
6.监控日志文件大小和使用率7.定期查询性能和优化定期查询数据库性能和优化可以帮助提高数据库的整体性能,并防止日志文件过大。
SQLserver2008删除数据库⽇志现象:当数据库事务⽇志满了,需要操作删除对应数据库的⽇志处理⽅法:使⽤SQLserver数据库⼯具登录对应的数据库,操作以下语句注意1:mssql4291828_db设置为对应数据库名称USE [mssql4291828_db]GOALTER DATABASE [mssql4291828_db] SET RECOVERY SIMPLE WITH NO_WAITGOALTER DATABASE [mssql4291828_db] SET RECOVERY SIMPLEGOUSE [mssql4291828_db]GO--此处需要注意,并⾮所有数据库的⽇志⽂件名都是“数据库名_log”DBCC SHRINKFILE (N'mssql4291828_db_Log' , 0,TRUNCATEONLY)GOUSE [mssql4291828_db]GOALTER DATABASE [mssql4291828_db] SET RECOVERY FULL WITH NO_WAITGOALTER DATABASE [mssql4291828_db] SET RECOVERY FULLGO注意2:如果不知道数据库⽇志⽂件名,可以执⾏以下语句,查询指定数据库(如:mssql4291828_db)的⽇志⽂件名称USE [mssql4291828_db]GOSELECT name FROM SYS.database_files WHERE type_desc='LOG'处理完成后可以再次检查下⽇志查看数据库⽇志⼤⼩ sqlServer 如何查看数据库⽇志⽂件的⼤⼩ 查询分析器执⾏命令:dbcc sqlperf(logspace)。
清除数据库日志方法
方法一、(注意,此方法必须数据库文件所在的磁盘分区剩余空间足够,不少于1.5G,,如没有达到此项要求,请使用第二种方法)
1.断开后台服务器的网络连接(最好是晚上歇业后)退出系统
2.打开SQL的企业管理器(开始程序Microsoft SQL Server 企业管理器)
3.选中当前所使用的数据库(假设数据库名为kmjxc_pro)右键所有任务,分离数据库,将
数据库分离如下图
步骤一:
步骤二
1.进入SQL数据库安装目录(假设安装在D盘)D:\Program Files\Microsoft SQL Server\MSSQL\Data,找到两个文件kmjxc_pro_Data.MDF和kmjxc_pro_Log.LDF,将kmjxc_pro_Log.LDF改为1kmjxc_pro_Log.LDF,kmjxc_pro_Data.MDF不动
2.附加数据如图示,选中D:\Program Files\Microsoft SQL Server\MSSQL\Data中的kmjxc_pro_Data.MDF
步骤三:
步骤五:
点确定后,系统将提示数据附加成功附加数据成功后,日志文件将被缩减有问题打电话
1. 打开SQL 的查询分析器,选择一个带机器名的服务名
2. 输入安装时的超级管理员密码,点“确定”进入查询分析器主界面
3. 在编辑窗口中输入如下语句 use master
dump tran kmjxc with no_log
DBCC SHRINKDATABASE (kmjxc, 10) go
use kmjxc
dump tran master with no_log go
选择带机器名的服务名
4.点击“执行”按钮,提示完成后关闭查询分析器
5.打开SQL的企业管理器,展开至数据库列表,在需要减小的数据库图标上点右键,在弹
出菜单中选择“所有任务-收缩数据库”(如下图所示);
6.在弹出窗口中直接点确定按钮,系统提示收缩成功(如上图所示)。
以上操作用来清除数据库本身的日志,对使用本软件的操作日志不会有影响,系统每使用一段时间后都可以做一次这样的操作,可以减小数据库所占空间,也可加快其响应速度
点击执行
网上收集的其它方法
SQL SERVER日志清除的两种方法
日期:2004年8月3日作者:动网收集整理人气:1302 今日:1 [大中小]
方法一
一般情况下,SQL数据库的收缩并不能很大程度上减小数据库大小,其主要作用是收缩日志大小,应当定期进行此操作以免数据库日志过大
1、设置数据库模式为简单模式:打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL
Server-->SQL Server组-->双击打开你的服务器-->双击打开数据库目录-->选择你的数据库名称(如论坛数据库Forum)-->然后点击右键选择属性-->选择选项-->在故障还原的模式中选择“简单”,然后按确定保存
2、在当前数据库上点右键,看所有任务中的收缩数据库,一般里面的默认设置不用调整,直接点确定
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。