数据库事务日志清除操作指南
- 格式:doc
- 大小:828.00 KB
- 文档页数:9
内部技术资料如何清理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 数据库清除日志的方法方法一: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方法四:删除日志文件。
MS-SQL每天自动备份数据库每天自动清除log1、每日自动备份打开企业管理器,进入“管理”-“数据库维护计划”,在右侧窗口点击右键,选择“新建维护计划”,启动“数据库维护计划向导”;点击“下一步”选择需要维护的数据库,维护特性数据库时,选择最后一个单选框并勾选需要维护的数据库名称;“下一步”选择更新数据优化信息、“下一步”检查数据库完整性、“下一步”指定数据库备份计划、“下一步”指定备份存放位置、“下一步”指定事务日志备份计划、“下一步”指定报表,“下一步”指定历史纪录维护,最后设定维护作业名称;通常来说,如果只需要备份数据库文件,则只需要指定备份计划以及存放位置即可,其他项目不做改动。
在指定备份计划时候,由于需要每日备份,因此要更改调度。
点击“更改”编辑调度。
发生频率选择每天;每日频率选择作业开始时间,最好选择数据库访问量小时进行,多为半夜时间,可根据流量图确定具体时间;持续时间通常不用做改动,开始日期为编辑日期,无结束日期。
编辑好上述维护计划后,还要注意下 sql server代理服务是否启动了,因为每日调度维护计划是要启动这个服务才能执行的。
如果该服务没有启动,需要手动启动一下,这是可以在其子项“作业”中看到刚刚添加过的数据库维护计划。
2、定期自动清理数据库日志文件数据库日志文件是随着时间增长而增长的,如果长时间不清理,文件会变得特别大,因此需要定期清空,但是日至文件是恢复数据库的重要依据,不用日志文件也是不明智的。
手工清除单个数据库的还好说,但数据库多了,或者临时没有来得及清理,可能硬盘空间就会占满了,影响访问。
因此设置自动清理数据库日志文件还是比较实用的。
手动清理方法:右键单击需要清理的数据库,选择“属性”,在“选项”卡上,把故障还原模型设定为简单,确定后关闭;再右键单击该数据库,“所有任务”-“收缩数据库”,确认后即可清除日志文件,最后记得重新选择“属性”,将故障还原模型设置为完全。
今天把服务器上的论坛数据库附加到本地,附加过程中就觉得不对劲,速度奇慢,附加完一看,日志文件整整占了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 中的一个文件附加到当前服务器。
清理 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 中选择要截断的数据库,右键点击“任务”->“收缩”->“文件”,选择要收缩的文件类型为“日志”,即可完成事务日志的截断。
数据库日志清除办法:
1.打开数据,在数据库erp_30上单击右键,点击“任务”里的“分离”,勾选图上所示的
两个勾选框后,点击确定
2.成功后,到f盘下的data文件夹,删除图中选中的文件(特别大的那个文件一般超过
200g)
3.打开数据库,此时erp_30已经没有了,点击“数据库”如下图所示,单击右键,选择
“附加”,添加f盘下data文件夹中的刚才没删除的文件,此时下面的框数据库详细信息会显示两个文件,删除后面显示未找到的文件,点击确定。
4.附加完成之后下面应出现dotnet_erp30这个数据库
5.返回135服务器,点击开始---所有程序—明源软件—数据库配置工具,录入正确的数据
库配置信息即可。
1、lo ad 方法装入数据:exp ort t o tem pfile of d el se lect* fro m tab lenam e whe re no t 清理条件;l oad f rom t empfi le of delmodif ied b y del prior itych ar re place into tabl enamenonr ecove rable;说明:在不相关的数据表exp ort数据时,可以采取并发的形式,以提高效率;table name指待清理ta ble的名称;m odifi ed by delp riori tycha r防止数据库记录中存在换行符,导致数据无法装入的情况; r eplac e int o对现数据库中的内容进行替换,即将现行的数据记录清理,替换为数据文件内容;n onrec overa ble无日志方式装入;2、查找当前的应用:db2 lis t app licat ion g rep b tpdbs;3、删除当前正在使用的a pplic ation:db2 "fo rce a pplic ation (id1,id2,id3)"id1,id2,id3 是list显示的应用号;4、查看当前应用号的执行状态:db2 g et sn apsho t for appl icati on ag entid 299greprow5、查看数据库参数:db2 getdb cf g for //当前数据库可以省略6、修改数据库的log数据:db2 u pdate db c fg us ing <参数名><参数值>7、d b2sto p for ce的用法:在进行bind的时候出现如下错误:sql0082c an er ror h as oc curre d whi ch ha s ter minat ed pr ocess ing.sql0092nn o pac kagewas c reate d bec auseof pr eviou s err ors.sql0091nb indin g was ende d wit h "3" erro rs an d "0" warn ings.主要是表文件被加锁,不能继续使用;在进行s top的时候报错:d b2sto p8/03/2005 21:46:530 0sql1025nth e dat abase mana ger w as no t sto ppedbecau se da tabas es ar e sti ll ac tive.sql1025n the d ataba se ma nager wasnot s toppe d bec ausedatab asesare s tillactiv e.需要使用如下命令可以解决这个问题: db2stopforce08/03/2005 21:47:49 0 0 sql1064nd b2sto p pro cessi ng wa s suc cessf ul.sql1064ndb2stop proc essin g was succ essfu l.然后启动数据库db2s tart,连接数据库db2s后,重新进行bind即可。
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)。
数据库2008清理日志数据库2008是一款广泛应用于企业和个人的数据库管理系统。
作为一种重要的数据存储和管理工具,数据库2008的日志清理是一项至关重要的任务。
本文将介绍数据库2008清理日志的目的、步骤和注意事项,帮助读者更好地理解和操作数据库2008。
在开始讲解数据库2008清理日志之前,我们先来了解一下日志的概念。
数据库2008中的日志是用来记录数据库操作的详细信息的。
在数据库2008中,每当发生一次数据库操作,比如插入、更新或删除数据,都会在日志中记录下来。
这些日志对于数据库的恢复和故障排除非常重要。
然而,随着时间的推移,日志文件会越来越大,占用大量磁盘空间。
因此,定期清理日志是必要的。
清理日志的目的是释放磁盘空间,提高数据库的性能。
当磁盘空间不足时,数据库的读写速度会受到影响,导致系统响应变慢。
另外,日志文件过大也会增加数据库备份和恢复的时间和成本。
因此,定期清理日志是数据库管理的重要环节。
下面是清理日志的步骤:1. 首先,确定清理日志的频率。
一般来说,每天清理一次日志是比较合适的。
但是,根据数据库的实际情况,也可以选择每周或每月清理一次。
2. 在清理日志之前,需要先备份数据库。
这是非常重要的,因为清理日志可能会导致数据丢失或数据库不可用。
通过备份数据库,可以在清理日志后恢复数据。
3. 打开数据库2008的管理工具,并选择要清理的数据库。
在数据库属性中,找到“日志”选项。
4. 在“日志”选项中,可以看到当前日志的大小和使用情况。
根据实际情况,确定清理的策略。
可以选择手动清理日志,也可以设置自动清理。
5. 如果选择手动清理日志,可以点击“清理日志”按钮。
系统会自动清理不再需要的日志,并释放磁盘空间。
如果选择自动清理,可以设置清理的频率和条件。
在进行数据库2008清理日志时,还需要注意以下几点:1. 清理日志之前,确保数据库没有正在进行的重要操作。
如果在清理过程中发生故障,可能会导致数据丢失或数据库不可用。
统计并轨二期部署完成后,数据下行数据量较大,数据库日志增长较快,因此近期需要经常对数据库做日志归档操作,以省局数据库为例步骤如下:1. 以root用户登录数据库服务器(DB2Server)2. 日志归档操作,此操作只能在备份数据库成功之后执行。
如备份不成功,则此部分不能执行。
stma数据库su – db2admindb2 connect to stma user db2admin using db2admindb2 get db cfg | grep -E 'First active log file'记录下首活动日志名S00*****.LOG,之后db2 prune logfile prior to S00*****.LOGdb2 connect resetrone数据库db2 connect to rone user db2admin using db2admindb2 get db cfg | grep -E 'First active log file'记录下首活动日志名S00*****.LOG,之后db2 prune logfile prior to S00*****.LOGdb2 connect resetroeee数据库db2 connect to roeee user db2admin using db2admindb2 get db cfg | grep -E 'First active log file'记录下首活动日志名S00*****.LOG,之后db2 prune logfile prior to S00*****.LOGdb2 connect resetdatacdb数据库db2 connect to datacdb user db2admin using db2admindb2 get db cfg | grep -E 'First active log file'记录下首活动日志名S00*****.LOG,之后db2 prune logfile prior to S00*****.LOGdb2 connect resetstmadc数据库db2 connect to stmadc user db2admin using db2admin db2 get db cfg | grep -E 'First active log file'记录下首活动日志名S00*****.LOG,之后db2 prune logfile prior to S00*****.LOGdb2 connect resetdceii数据库db2 connect to dceii user db2admin using db2admindb2 get db cfg | grep -E 'First active log file'记录下首活动日志名S00*****.LOG,之后db2 prune logfile prior to S00*****.LOGdb2 connect resetdatactr数据库db2 connect to datactr user db2admin using db2admin db2 get db cfg | grep -E 'First active log file'记录下首活动日志名S00*****.LOG,之后db2 prune logfile prior to S00*****.LOGdb2 connect resetdataprov数据库db2 connect to dataprov user db2admin using db2admin db2 get db cfg | grep -E 'First active log file'记录下首活动日志名S00*****.LOG,之后db2 prune logfile prior to S00*****.LOGdb2 connect resetsccmprov数据库(地市为sccmcity)db2 connect to sccmprov user scuser using scuserdb2 get db cfg | grep -E 'First active log file'记录下首活动日志名S00*****.LOG,之后db2 prune logfile prior to S00*****.LOGdb2 connect reset。
MYSQL⽇志的正确删除⽅法详解本⽂详细讲述了MYSQL⽇志的正确删除⽅法。
分享给⼤家供⼤家参考,具体如下:1.查找:MySQL> show binary logs;+—————-+———–+| Log_name | File_size |+—————-+———–+| mysql-bin.000001 | 150462942 || mysql-bin.000002 | 125 || mysql-bin.000003 | 106 |+—————-+———–+2.删除bin-log(删除mysql-bin.000003之前的⽽没有包含mysql-bin.000003)mysql> purge binary logs to 'mysql-bin.000003';Query OK, 0 rows affected (0.16 sec)3. 查询结果(现在只有⼀条记录了.)mysql> show binlog events/G*************************** 1. row ***************************Log_name: mysql-bin.000003Pos: 4Event_type: Format_descServer_id: 1End_log_pos: 106Info: Server ver: 5.1.26-rc-log, Binlog ver: 41 row in set (0.01 sec)(mysql-bin.000001和mysql-bin.000002已被删除)mysql> show binary logs;+—————-+———–+| Log_name | File_size |+—————-+———–+| mysql-bin.000003 | 106 |+—————-+———–+1 row in set (0.00 sec)(删除的其它格式运⽤!)PURGE {MASTER | BINARY} LOGS TO 'log_name'PURGE {MASTER | BINARY} LOGS BEFORE 'date'⽤于删除列于在指定的⽇志或⽇期之前的⽇志索引中的所有⼆进制⽇志。
代码:ALTER proc[dbo].[DeletedGroup]@GroupID intASBEGINDECLARE@TranStarted intSET@TranStarted= 0IF(@@TRANCOUNT= 0)BEGINBEGIN TRANSACTIONSET@TranStarted= 1ENDELSESET@TranStarted= 0DECLARE@ErrorCode intSET@ErrorCode= 0IF EXISTS(SELECT*FROM PrizeGroup WHERE PrizeGroupID=@GroupID AND IsApproved= 1 )BEGINRAISERROR('评审小组已批复通过,不可删除!',16,1)SET@ErrorCode=-3GOTO CleanupENDIF EXISTS(SELECT*FROM PrizeGroupExpert WHERE PrizeGroupID=@GroupID)BEGINDELETE PrizeGroupExpertWHERE PrizeGroupID=@GroupIDENDIF EXISTS(SELECT*FROM Achievement WHERE PrizeGroupID=@GroupID) BEGINUPDATE AchievementSET PrizeGroupID=NULLWHERE PrizeGroupID=@GroupIDdelete from PrizeGroupAchievementwhere PrizeGroupID=@GroupIDENDIF EXISTS(SELECT*FROM PrizeGroup WHERE PrizeGroupID=@GroupID AND IsHistory= 0)BEGINDELETEFROM PrizeGroupWHERE PrizeGroupID=@GroupIDENDIF(@@Error<>0)BEGINSET@ErrorCode=-1GOTO Cleanup--这个东西就要写在操作之后,提交之前(个人理解,日后再确定一下)ENDIF(@TranStarted= 1)BEGINSET@TranStarted= 0COMMIT TRANSACTIONENDRETURN 0Cleanup: --自定义的函数需要返回(日后再看) IF(@TranStarted= 1)BEGINSET@TranStarted= 0ROLLBACK TRANSACTIONENDRETURN@ErrorCodeEND心得:1:@@TRANCOUNT的用法在处理事务的时候,一般都用RollBack Transaction来回滚,但是如果在嵌套事务中这样使用的话,就会出现错误。
门禁系统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数据库由一个.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
点自动备份
数据”发生频
设置完毕,直
接点击“确
定”按钮。