数据库事务日志清除操作指南

合集下载

如何清理SQL Server中的事务日志

如何清理SQL Server中的事务日志

内部技术资料如何清理SQL Server中的事务日志第1页目录第一章如何手动清理数据库的事务日志 (3)1.1 运行SQL Server 2000中的工具“查询分析器” (3)1.2 加载SQL语句 (4)1.3 执行SQL语句 (6)第二章如何自动清理数据库的事务日志 (8)2.1 运行SQL Server 2000 “企业管理器”中的“SQL Server 代理” (8)2.2 新建一个“作业” (9)2.3 设定“作业”的执行内容 (10)2.4 设定“作业”的执行周期 (13)注:⏹SQL Server数据库在使用过程中,日志文件会不断增大,日志文件一旦过大会造成系统性能的明显下降,故,在使用过程中,按照下列方法可以清理日志文件。

⏹本文中的SQL Server数据库以某项目上正在使用的数据库为例。

该数据库进行大量的数据交换,事务日志文件平均每天增加5~10Mb。

⏹本文中所有的操作均在服务器端进行,操作系统为Microsoft Windows 2000Server,SQL Server的版本为Microsoft SQL Server 2000 Enterprise Edition。

数据库有两个,名称为JDDW3800和JDDW3800Para。

⏹本文中针对数据库的清理操作仅针对数据库JDDW3800,而不包括JDDW3800Para。

如果需要清理数据库JDDW3800Para,请仿照本文进行操作。

⏹在本文中,清理数据库JDDW3800的SQL文件名称为“LogShrink_JDDW3800.sql”,清理数据库JDDW3800Para的SQL文件名称为“LogShrink_JDDW3800Para.sql”。

⏹在本文中SQL Server实例的名称为“SPRINY”。

第一章如何手动清理数据库的事务日志手动清理事务日志的总体步骤如下:1)运行SQL Server 2000中的工具“查询分析器”。

SQL Server 数据库清除日志的方法

SQL Server 数据库清除日志的方法

SQL Server 数据库清除日志的方法方法一:1、打开查询分析器,输入命令BACKUP LOG database_name WITH NO_LOG2、再打开企业管理器--右键要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至xxm,这里会给出一个允许收缩到的最小m数,直接输入这个数,确定就可以了。

方法二:设置检查点,自动截断日志一般情况下,SQL数据库的收缩并不能很大程度上减小数据库大小,其主要作用是收缩日志大小,应当定期进行此操作以免数据库日志过大1、设置数据库模式为简单模式:打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server-->SQL Server组-->双击打开你的服务器-->双击打开数据库目录-->选择你的数据库名称(如用户数据库cwbase1)-->然后点击右键选择属性-->选择选项-->在故障还原的模式中选择“简单”,然后按确定保存2、在当前数据库上点右键,看所有任务中的收缩数据库,一般里面的默认设置不用调整,直接点确定3、收缩数据库完成后,建议将您的数据库属性重新设置为标准模式,操作方法同第一点,因为日志在一些异常情况下往往是恢复数据库的重要依据方法三:通过SQL收缩日志把代码复制到查询分析器里,然后修改其中的3个参数(数据库名,日志文件名,和目标日志文件的大小),运行即可SET NOCOUNT ONDECLARE @LogicalFileNamesysname,@MaxMinutes INT,@NewSize INTUSE tablename -- 要操作的数据库名SELECT @LogicalFileName = 'tablename_log', -- 日志文件名@MaxMinutes = 10, -- Limit on time allowed to wrap log.@NewSize = 1 -- 你想设定的日志文件的大小(M)-- Setup / initializeDECLARE @OriginalSizeintSELECT @OriginalSize = sizeFROM sysfilesWHERE name = @LogicalFileNameSELECT 'Original Size of ' + db_name() + ' LOG is ' +CONVERT(VARCHAR(30),@OriginalSize) + ' 8K pages or ' +CONVERT(VARCHAR(30),(@OriginalSize*8/1024)) + 'MB'FROM sysfilesWHERE name = @LogicalFileNameCREATE 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 expiredAND @OriginalSize = (SELECT size FROM sysfiles WHERE name = @LogicalFileName)AND (@OriginalSize * 8 /1024) > @NewSizeBEGIN -- Outer loop.SELECT @Counter = 0WHILE ((@Counter < @OriginalSize / 16) AND (@Counter < 50000))BEGIN -- updateINSERT DummyTrans VALUES ('Fill Log')DELETE DummyTransSELECT @Counter = @Counter + 1ENDEXEC (@TruncLog)ENDSELECT 'Final Size of ' + db_name() + ' LOG is ' +CONVERT(VARCHAR(30),size) + ' 8K pages or ' +CONVERT(VARCHAR(30),(size*8/1024)) + 'MB'FROM sysfilesWHERE name = @LogicalFileNameDROP TABLE DummyTransSET NOCOUNT OFF方法四:删除日志文件。

清除SQLServer数据库日志(SqlServer2005)

清除SQLServer数据库日志(SqlServer2005)

今天把服务器上的论坛数据库附加到本地,附加过程中就觉得不对劲,速度奇慢,附加完一看,日志文件整整占了23G。

必须清除掉,不然太占空间了。

上网找了个清除日志的方法。

我在清除过程中用了第1,2,3,5步骤,顺利将日志文件BBS_log.ldf从23G变为了1M。

我执行如下:1.清空日志DUMP TRANSACTION 库名 WITH NO_LOG2.截断事务日志:BACKUP LOG 数据库名 WITH NO_LOG3.收缩数据库文件(如果不压缩,数据库的文件不会减小)右键数据库->任务->收缩->数据库->确定4.将数据库设为自动收缩右键数据库->属性->选项->自动->自动收缩设为True原文如下:--压缩日志及数据库文件大小1.清空日志DUMP TRANSACTION 库名 WITH NO_LOG2.截断事务日志:BACKUP LOG 数据库名 WITH NO_LOG3.收缩数据库文件(如果不压缩,数据库的文件不会减小企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件 --选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了也可以用SQL语句来完成--收缩数据库DBCC SHRINKDATABASE(客户资料)--收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfilesDBCC SHRINKFILE(1)4.为了最大化的缩小日志文件(如果是sql 7.0,这步只能在查询分析器中进行)a.分离数据库:企业管理器--服务器--数据库--右键--分离数据库b.在我的电脑中删除LOG文件c.附加数据库:企业管理器--服务器--数据库--右键--附加数据库此法将生成新的LOG,大小只有500多K或用代码:下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。

门禁系统ProWatch软件数据库日志清理方法

门禁系统ProWatch软件数据库日志清理方法

门禁系统ProWatch软件数据库日志清理方法
方法一:(简单方法,只需要在MSSQL的企业管理器操作,不需要执行SQL命令)1、右键数据库→属性→选项→故障还原模型→设为简单→确定;
2、右键数据库→所有任务→收缩数据库→确定;
3、右键数据库→属性→选项→故障还原模型→设为大容量日志记录→确定。

方法二:(需要SQL的企业管理器及查询分析器)
1、清空日志:(在查询分析器内执行)
DUMP TRANSACTION PWNT WITH NO_LOG
2、截断事务日志:(在查询分析器内执行)
BACKUP LOG PWNT WITH NO_LOG
3、收缩数据库文件(如果不压缩,数据库的文件不会减小)
->企业管理器→右键你要压缩的数据库→所有任务→收缩数据库
→收缩文件→选择日志文件→在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,点确定就可以了。

→收缩文件→选择数据文件→在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,点确定就可以了。

(也可以用SQL语句在查询分析器执行来完成)
--收缩数据库:
DBCC SHRINKDATABASE(PWNT,10)
5、为了以后能自动收缩,做如下设置:
企业管理器→服务器→右键数据库→属性→选项→选择"自动收缩"
(也可以用SQL语句在查询分析器执行来设置)
--设置数据库自动收缩:
EXEC sp_dboption 'PWNT', 'autoshrink', 'TRUE'。

清理 sql server 数据库日志的几种方法

清理 sql server 数据库日志的几种方法

清理 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 中选择要截断的数据库,右键点击“任务”->“收缩”->“文件”,选择要收缩的文件类型为“日志”,即可完成事务日志的截断。

数据库日志清除

数据库日志清除
--收缩数据库
DBCC SHRINKDATABASE(shopdata)
--设置自动收缩
EXEC SP_DBOPTION shopdata,AUTOSHRINK,TRUE
DBCC SHRINKFILE(1)
4.为了最大化的缩小日志文件(如果是sql 7.0,这步只能在查询分析器中进行)
a.分离数据库:
企业管理器--服务器--数据库--右键--分离数据库
b.在我的电脑中删除LOG文件
c.附加数据库:
企业管理器--服务器--数据库--右键--附加数据库
6.如果想以后不让它日志增长得太大
企业管理器--服务器--右键数据库--属性--事务日志
--将文件增长限制为xM(x是你允许的最大数据文件大小)
--SQL语句的设置方式:
alter database 库名 modify file(name=逻辑文件名,maxsize=20)
--备份数据库
--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
也可以用SQL语句来完成
--收缩数据库
DBCC SHRINKDATABASE(库名)
--收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfiles
@physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\库名.mdf'
5.为了以后能自动收缩,做如下设置:
企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩"
--SQL语句设置方式:

数据库事务日志清除操作指南

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点自动备份数据”发生频设置完毕,直接点击“确定”按钮。

数据库日志清除办法

数据库日志清除办法:
1.打开数据,在数据库erp_30上单击右键,点击“任务”里的“分离”,勾选图上所示的
两个勾选框后,点击确定
2.成功后,到f盘下的data文件夹,删除图中选中的文件(特别大的那个文件一般超过
200g)
3.打开数据库,此时erp_30已经没有了,点击“数据库”如下图所示,单击右键,选择
“附加”,添加f盘下data文件夹中的刚才没删除的文件,此时下面的框数据库详细信息会显示两个文件,删除后面显示未找到的文件,点击确定。

4.附加完成之后下面应出现dotnet_erp30这个数据库
5.返回135服务器,点击开始---所有程序—明源软件—数据库配置工具,录入正确的数据
库配置信息即可。

db2数据库日志清理

1、l‎o ad 方‎法装入数据‎:ex‎p ort ‎t o te‎m pfil‎e of ‎d el s‎e lect‎* fr‎o m ta‎b lena‎m e wh‎e re n‎o t 清理‎条件;‎l oad ‎f rom ‎t empf‎i le o‎f del‎modi‎f ied ‎b y de‎l prio‎r ityc‎h ar r‎e plac‎e int‎o tab‎l enam‎enon‎r ecov‎e rabl‎e;说‎明:‎在不相关的‎数据表ex‎p ort数‎据时,可以‎采取并发的‎形式,以提‎高效率;‎tabl‎e name‎指待清理t‎a ble的‎名称;‎m odif‎i ed b‎y del‎p rior‎i tych‎a r防止数‎据库记录中‎存在换行符‎,导致数据‎无法装入的‎情况; ‎r epla‎c e in‎t o对现数‎据库中的内‎容进行替换‎,即将现行‎的数据记录‎清理,替换‎为数据文件‎内容;‎n onre‎c over‎a ble无‎日志方式装‎入;2‎、查找当前‎的应用:d‎b2 li‎s t ap‎p lica‎t ion ‎g rep ‎b tpdb‎s;3‎、删除当前‎正在使用的‎a ppli‎c atio‎n:d‎b2 "f‎o rce ‎a ppli‎c atio‎n (id‎1,id2‎,id3)‎"id‎1,id2‎,id3 ‎是list‎显示的应用‎号;4‎、查看当前‎应用号的执‎行状态:‎db2 ‎g et s‎n apsh‎o t fo‎r app‎l icat‎i on a‎g enti‎d 299‎grep‎row‎5、查看‎数据库参数‎:db‎2 get‎db c‎f g fo‎r //当‎前数据库可‎以省略‎6、修改数‎据库的lo‎g数据:‎db2 ‎u pdat‎e db ‎c fg u‎s ing ‎<参数名>‎<参数值‎>7、‎d b2st‎o p fo‎r ce的用‎法:在‎进行bin‎d的时候出‎现如下错误‎:sq‎l0082‎c an e‎r ror ‎h as o‎c curr‎e d wh‎i ch h‎a s te‎r mina‎t ed p‎r oces‎s ing.‎sql‎0092n‎n o pa‎c kage‎was ‎c reat‎e d be‎c ause‎of p‎r evio‎u s er‎r ors.‎sql‎0091n‎b indi‎n g wa‎s end‎e d wi‎t h "3‎" err‎o rs a‎n d "0‎" war‎n ings‎.主要‎是表文件被‎加锁,不能‎继续使用;‎在进行‎s top的‎时候报错:‎d b2st‎o p8‎/03/2‎005 2‎1:46:‎530 0‎sql1‎025nt‎h e da‎t abas‎e man‎a ger ‎w as n‎o t st‎o pped‎beca‎u se d‎a taba‎s es a‎r e st‎i ll a‎c tive‎.sq‎l1025‎n the ‎d atab‎a se m‎a nage‎r was‎not ‎s topp‎e d be‎c ause‎data‎b ases‎are ‎s till‎acti‎v e.‎需要使用如‎下命令可以‎解决这个问‎题: db‎2stop‎forc‎e08‎/03/2‎005 2‎1:47:‎49 0 ‎0 sql‎1064n‎d b2st‎o p pr‎o cess‎i ng w‎a s su‎c cess‎f ul.‎sql1‎064nd‎b2sto‎p pro‎c essi‎n g wa‎s suc‎c essf‎u l.‎然后启动数‎据库db2‎s tart‎,连接数据‎库db2s‎后,重新进‎行bind‎即可。

SQLserver2008删除数据库日志

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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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
点击鼠标右键先选
择”所有任务”项目,然
后选择”备份数据库”
第二步:在备份四个选项中,请选择“事务日志”项目
在备份四个选项
中,选择”事务日志”第三步:选择好“事务日志”之后,点击“添加”按钮
第四步: 设置文件名以及选择文件名的存储路径
第五步: 设置好文件的存储路径和名称后,点击“确定”
点击“”按钮,
第六步: 选择“重写”中的“重写现有媒体”选项
第七步: 选择“调度”对日志备份进行时间调度设置
设置好文件的存储路径和名称之后,点击“确定”按钮
第八步: 对“调度”时间进行详细设置
第九步: 对“发生频率”,“每日频率”以及“持续时间”设置
,然后点击按钮
第十步:设置完毕,直接点击“确定”按钮
设置完毕,直
接点击“确
定”按钮
第十一步:最后确定保存所进行的调度设置
第十二步:选择“选项”页签
回到主备份窗口,
选择”选项”页签
第十三步:点击“确定”按钮,就完成事务日志的清除。

相关文档
最新文档