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

合集下载

清理SQL Server数据库日志的两种方法

清理SQL Server数据库日志的两种方法

清理SQL Server数据库日志的两种方法sql server数据库使用时间长了,日志文件会很大,占用过多系统资源,数据库可能会报 log full 的错误,甚至磁盘空间占满让数据库处于不可用状态,这个时候我们需要清理数据库,以前有人开发了数据库日志清理工具,好像还要收费,其实很简单就可以完成这个操作,请跟我来:清理sql server数据库日志可用两种方法:方法一:清空日志。

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

方法二:有一定的风险性,因为SQL SERVER的日志文件不是即时写入数据库主文件的,如处理不当,会造成数据的损失。

1、删除LOG分离数据库企业管理器->服务器->数据库->右键->分离数据库2、删除LOG文件附加数据库企业管理器->服务器->数据库->右键->附加数据库此法生成新的LOG,大小只有500多K。

注意:建议使用第一种方法。

如果以后,不想要它变大。

SQL2000下使用:在数据库上点右键->属性->选项->故障恢复-模型-选择-简单模型。

或用SQL语句:alter database 数据库名 set recovery simple另外,数据库属性有两个选项,与事务日志的增长有关:Truncate log on checkpoint(此选项用于SQL7.0,SQL 2000中即故障恢复模型选择为简单模型)当执行CHECKPOINT 命令时如果事务日志文件超过其大小的70% 则将其内容清除在开发数据库时时常将此选项设置为True定期对数据库进行检查当数据库文件或日志文件的未用空间超过其大小的25%时,系统将会自动缩减文件使其未用空间等于25% 当文件大小没有超过其建立时的初始大小时不会缩减文件缩减后的文件也必须大于或等于其初始大小对事务日志文件的缩减只有在对其作备份时或将 Truncate log on checkpoint 选项设为True 时才能进行。

清除sql日志

清除sql日志
3.收缩数据库文件(如果不压缩,数据库的文件不会减小
企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件
--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
a.分离数据库:
企业管理器--服务器--数据库--右键--分离数据库
b.在我的电脑中删除LOG文件
c.附加数据库:
企业管理器--服务器--数据库--右键--附加数据库
此法将生成新的LOG,大小只有500多K
或用代码:
下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。
日志文件满而造成SQL数据库无法写入文件时,可用两种方法:
一种方法:清空日志。
1.打开查询分析器,输入命令
DUMP TRANSACTION 数据库名 WITH NO_LOG
2.再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。
或不能备份日志(truncate log on checkpoint选项为1),那么就无法进行数据的恢复了,或者
只能恢复到最近一次的备份的数据了。
以下简单说明恢复数据方法:
1,如果误操作之前存在一个全库备份(或已有多个差异备份或增量备份),首先要做的事就是进进行一次日志备份(如果为了不让日志文件变大而置trunc. log on chkpt.选项为1那你就死翘了)

SQL SERVER清除日志的四种方法

SQL SERVER清除日志的四种方法
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'
AND @OriginalSize = (SELECT size FROM sysfiles WHERE name = @LogicalFileName)
AND (@OriginalSize * 8 /1024) > @NewSize
BEGIN -- Outer loop.
SELECT @Counter = 0
SET NOCOUNT ON
DECLARE @LogicalFileName sysname,
@MaxMinutes INT,
@NewSize INT
USE tablename -- 要操作的数据库名
SELECT @LogicalFileName = 'tablename_log', -- 日志文件名
DBCC SHRINKFILE (@LogicalFileName, @NewSize)
EXEC (@TruncLog)
-- Wrap the log if necessary.
WHILE @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE()) -- time has not expired

SQLSERVER清除日志的四种方法

SQLSERVER清除日志的四种方法

SQLSERVER清除日志的四种方法SQL Server 是一款功能强大的数据库管理系统,但由于其日志文件的持续增长,可能会占用大量的磁盘空间。

为了解决这个问题,SQL Server 提供了多种方法来清除日志。

本文将介绍 SQL Server 清除日志的四种常见方法。

方法一:备份日志备份日志是最常用的清除 SQL Server 日志的方法之一、备份日志将日志文件中已经提交的事务从日志文件中删除,并将未提交的事务保存在日志中。

这样可以大大减小日志文件的大小,释放磁盘空间。

备份日志的具体步骤如下:1. 在 SQL Server Management Studio 中选择要备份日志的数据库。

2.右键单击数据库,选择“任务”>“备份”。

3.在“备份数据库”对话框中,选择“事务日志”。

4.在“备份到”下拉列表中选择备份文件的位置和名称。

5.单击“确定”开始备份日志。

备份日志的频率取决于数据库的需求,可以每天备份一次,也可以根据业务需求更频繁地备份。

方法二:备份并截断日志备份并截断日志是另一种清除 SQL Server 日志的常见方法。

该方法包括备份日志和截断日志两个步骤。

备份日志的作用是和方法一相同,截断日志的作用是删除已经备份的日志,释放磁盘空间。

备份并截断日志的具体步骤如下:1. 在 SQL Server Management Studio 中选择要备份和截断日志的数据库。

2.右键单击数据库,选择“任务”>“备份”。

3.在“备份数据库”对话框中,选择“事务日志”。

4.在“备份到”下拉列表中选择备份文件的位置和名称。

5.单击“确定”开始备份日志。

6. 在 SQL Server Management Studio 中选择要截断日志的数据库。

7.右键单击数据库,选择“任务”>“收缩”>“数据库文件”。

8.选择“日志文件”,设置“收缩动作”为“释放未使用的空间”,并选择“重新组织文件以使空间最优化”,然后单击“确定”开始截断日志。

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

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

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

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

SQL Server 2008 R2 分离数据库删除日志文件的方法

SQL Server 2008 R2 分离数据库删除日志文件的方法

SQL Server 2008 R2分离数据库删除日志文件方法1. 找到待清理数据库的实体文件,在硬盘中的路径,例如:C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\,其中dayang.mdf为数据文件,dayang_log.ldf为日志文件。

最终目标是:清除LDF文件释放硬盘空间2. 在企业管理器中右键点击该数据库→任务→分离。

提示:分离数据库有风险,一定要在分离前进行数据库备份!!!3. 确保没有用户对该数据库进行操作,如果有人使用,点击清除,之后确定。

分离数据库完成。

(注意:在执行分离数据库之前,建议拔掉SQL SERVER数据库服务器的网线,以保障后续过程不会有其它进程操作数据库。

否则,一旦在下述配置过程中,有进程访问数据库,将造成数据库崩溃,请特别注意)4. 查看数据库实体文件,可以看到dayang.mdf,dayang_log.ldf的修改时间为当前时间。

5. 将dayang_log.ldf文件重命名。

这里将其扩展名后面输入数字123。

6. 在企业管理器中,右键点击数据库→附加。

7.点击添加按钮,选中刚才分离出来的dayang.mdf文件,如下图所示。

日志文件状态消息提示找不到。

删除日志所在行,点击确定。

附加数据库完成。

7. 查看数据库实体所在的文件夹,系统会自动生成新的日志文件dayang_log.LDF,但大小却比之前的LDF要小很多。

之前分离出来的日志文件可以将其删除。

如不能正常使用,需要重新分离,再执行上述步骤。

永和九年,岁在癸丑,暮春之初,会于会稽山阴之兰亭,修禊事也。

群贤毕至,少长咸集。

此地有崇山峻岭,茂林修竹;又有清流激湍,映带左右,引以为流觞曲水,列坐其次。

虽无丝竹管弦之盛,一觞一咏,亦足以畅叙幽情。

是日也,天朗气清,惠风和畅,仰观宇宙之大,俯察品类之盛,所以游目骋怀,足以极视听之娱,信可乐也。

多方法清理SQL server日志

多方法清理SQL server日志

多方法清理SQL Server日志1.手动清理1. 将恢复模式改成“简单”右键要清理的数据库名-属性,切换到选项,将恢复模式修改为简单,如下图1,然后点确定。

2、收缩日志还是右键要清理的数据库名—任务—收缩—文件,按如图2进行设置,设置完后点确定即可3.清理完手动恢复完整模式二、自动清理(使用SQL代理定时执行清理任务)1、新建作业如下图3,我们右键作业—新建作业即可开始新建一个作业了USE [master]GOALTER DATABASE 数据库名称SET RECOVERY SIMPLE WITH NO_WAITGOALTER DATABASE 数据库名称SET RECOVERY SIMPLE --简单模式GOUSE 数据库名称GODBCC SHRINKFILE (N'DEMO_log' , 1, TRUNCATEONLY)--将数据库日志文件收缩到1MGO------DEMO_LOG是日志文件名称,可以新建查询用select * from sys.database_files查看USE [master]GOALTER DATABASE 数据库名称SET RECOVERY FULL WITH NO_WAITGOALTER DATABASE 数据库名称SET RECOVERY FULL --还原为完全模式GO三、新建维护计划定时清理1.维护计划向导2.选择维护任务3.选择需要收缩的数据库之后,下一步至完成4.视图--工具箱--把执行I-SQL语句拉到右窗品--把收缩数据库箭头关联至“执行T-sql语句”5.双击“执行T-SQL语句”任务,打开对话框键入语句5.记得编辑“新建作业计划”。

SQLSERVER清除日志的四种方法

SQLSERVER清除日志的四种方法

SQLSERVER清除日志的四种方法SQL Server是一种关系型数据库管理系统,它将数据存储在表格中,并使用结构化查询语言(SQL)来管理和操作这些数据。

在SQL Server中,日志文件用于记录数据库的各种操作,包括插入、更新和删除数据的操作。

随着时间的推移,日志文件可能会变得庞大,导致数据库性能下降。

为了解决这个问题,SQL Server提供了多种方法来清除日志。

1.使用备份和恢复备份和恢复是清除日志的最常用方法之一、通过定期备份数据库并将日志截断,可以清除日志文件并释放空间。

备份可以选择完整备份、差异备份或增量备份。

完整备份将整个数据库备份到一个文件中,差异备份将备份自上次完整备份以来发生更改的部分,增量备份则只备份自上次备份以来发生更改的部分。

备份完成后,可以通过将数据库设置为简单恢复模式或完全恢复模式来截断日志,以释放日志空间。

2.使用事务日志管理SQL Server提供了事务日志管理功能,可以帮助清除日志。

通过调整事务日志的大小和日志增长的百分比,可以限制日志文件的增长。

可以使用以下命令来管理事务日志大小和增长:- ALTER DATABASE <database_name> SET RECOVERY SIMPLE:将数据库设置为简单恢复模式,该模式只保留最近的日志信息,并定期截断日志。

- ALTER DATABASE <database_name> MODIFY FILE (NAME =<log_file_name>, SIZE = <new_size>):调整日志文件的大小。

- ALTER DATABASE <database_name> MODIFY FILE (NAME =<log_file_name>, FILEGROWTH = <new_growth>):调整日志文件的增长百分比。

3.使用事务日志备份和清除除了备份和恢复,SQL Server还提供了事务日志备份和清除功能。

sqlserver 清理日志语句

sqlserver 清理日志语句

sqlserver 清理日志语句
摘要:
1.引言
2.SQL Server 日志简介
3.清理日志的重要性
4.SQL Server 清理日志的语句
5.总结
正文:
SQL Server 清理日志语句是每个数据库管理员都需要掌握的技能之一。

在SQL Server 中,日志文件是记录数据库操作的重要文件,包括所有对数据库的更改,如数据插入、更新、删除等操作,以及数据库管理员执行的所有SQL 语句。

随着时间的推移,日志文件会变得越来越大,导致数据库性能下降。

因此,定期清理日志文件是维护数据库的必要步骤。

SQL Server 提供了多种清理日志的语句,其中最常用的是`DBCC SQLPERF`和`DBCC LOGINFO`。

`DBCC SQLPERF`用于清理数据库性能计数器,而`DBCC LOGINFO`用于查看日志文件的信息。

使用`DBCC SQLPERF`清理日志文件的语句如下:
```
DBCC SQLPERF("LOGSPACE", "数据库名", NULL, NULL)
```
使用`DBCC LOGINFO`查看日志文件的信息的语句如下:
```
DBCC LOGINFO(数据库名)
```
在执行这些语句之前,需要先备份数据库,以防止清理操作对数据库造成不可逆的损害。

总结起来,SQL Server 清理日志语句是维护数据库的重要步骤。

通过定期清理日志文件,可以提高数据库性能,保证数据库的稳定性和可靠性。

SQL_Server_自动清除日志文件方法

SQL_Server_自动清除日志文件方法

SQL Server自动备份清除日志文件一、自动备份数据库日志打开企业管理器,进入“管理”-“数据库维护计划”,在右侧窗口点击右键,选择“新建维护计划”,启动“数据库维护计划向导”;点击“下一步”选择需要维护的数据库,维护特性数据库时,选择最后一个单选框并勾选需要维护的数据库名称;“下一步”选择更新数据优化信息、“下一步”检查数据库完整性、“下一步”指定数据库备份计划、“下一步”指定备份存放位置、“下一步”指定事务日志备份计划、“下一步”指定报表,“下一步”指定历史纪录维护,最后设定维护作业名称;通常来说,如果只需要备份数据库文件,则只需要指定备份计划以及存放位置即可,其他项目不做改动。

在指定备份计划时候,由于需要每日备份,因此要更改调度。

点击“更改”编辑调度。

发生频率选择每天;每日频率选择作业开始时间,最好选择数据库访问量小时进行,多为半夜时间,可根据流量图确定具体时间;持续时间通常不用做改动,开始日期为编辑日期,无结束日期。

编辑好上述维护计划后,还要注意下 sql server代理服务是否启动了,因为每日调度维护计划是要启动这个服务才能执行的。

如果该服务没有启动,需要手动启动一下,这是可以在其子项“作业”中看到刚刚添加过的数据库维护计划。

二、定期自动清理数据库日志文件数据库日志文件是随着时间增长而增长的,如果长时间不清理,文件会变得特别大,因此需要定期清空,但是日至文件是恢复数据库的重要依据,不用日志文件也是不明智的。

手工清除单个数据库的还好说,但数据库多了,或者临时没有来得及清理,可能硬盘空间就会占满了,影响访问。

因此设置自动清理数据库日志文件还是比较实用的。

手动清理方法:右键单击需要清理的数据库,选择“属性”,在“选项”卡上,把故障还原模型设定为简单,确定后关闭;再右键单击该数据库,“所有任务”-“收缩数据库”,确认后即可清除日志文件,最后记得重新选择“属性”,将故障还原模型设置为完全。

SQLServer2000-2005清除日志操作步骤图解

SQLServer2000-2005清除日志操作步骤图解

SQL Server 2000注意:操作前请确保所有操作员都已经退出系统,断开数据库的连接。

以下操作前,请务必做好数据备份!以下图片中的数据库名只用作演示,在KH8000系统中对应的数据库名是KHSCADA。

由于现在实验室没有一套现成的KH8000系统,为了不耽误您的宝贵时间,这里使用的是sqlserver下的数据库northwind来演示,给您造成的不便敬请海涵!(1)确认日志文件的大小。

在清除日志前后,可以看看日志文件的大小,以确定清除日志是否成功。

日志文件在如下路径下。

在KH8000系统中日志文件名字为KHSCADA_Log.LDF。

BACKUP LOG KHSCADA WITH NO_LOG;(Northwind是演示库,KH8000数据库名是KHSCADA)(Northwind是演示库,KH8000数据库名是KHSCADA)(6)在“收缩数据库”对话框中,打开“收缩文件”对话框。

(Northwind是演示库,KH8000数据库名是KHSCADA)(7)在“收缩文件”对话框中打开选择KHSCADA_log。

(Northwind是演示库,KH8000数据库名是KHSCADA)(8)收缩文件志1M。

(Northwind是演示库,KH8000数据库名是KHSCADA)“收缩文件”对话框中,确定之后,可以再看一下日志文件,是否已经缩小。

(Northwind是演示库,KH8000数据库名是KHSCADA)(9)在企业管理器中,打开KHSCADA“属性”对话框。

(Northwind是演示库,KH8000数据库名是KHSCADA)(10)将故障还原模型设置为“简单”。

(Northwind是演示库,KH8000数据库名是KHSCADA)SQL Server 2005注意:操作前请确保所有操作员都已经退出系统,断开数据库的连接。

以下操作前,请务必做好数据备份!以下图片中的数据库名只用作演示,在KH8000系统中对应的数据库名是KHSCADA。

清理SQLSERVER事务日志

清理SQLSERVER事务日志
先分离数据库然后删掉日志文件接下来再attach数据库sql会显示日志文件丢失按确定attach的时候会提示你创建新的日志文件只要确定即可完成简单方便
清理 SQLSERVER事务日志
今天发现数据库事务日志竟然达到500多M,这也难怪,修改数据如此频繁 想要清理,发现没有办法,上GOOGLE上一搜,在ZDNET上找到答案也 先分离数据库,然后删掉日志文件,接下来再attach数据库,SQL会显示日志文件丢失,按确定ATTACH的时候,会提示你创建新的日志文件,只要 确定即可完成,简单方便 不过,需要提醒的是,第一,在删除日志前,最好将老的日志文件全都备份一下 第二,如果你的事务日志存放于多个物理文件中,那么,上面的方面就没办法帮你清理喽
不过,下面的方法绝对快 backup log db_name with no_log dbcc shrinkfile (northwind_l

SQL Server自动备份 自动清除日志文件

SQL Server自动备份 自动清除日志文件

在指定备份计划时候,由于需要每日备份,因此要更改调度。点击“更改”编辑调度。发生频率选择每天;每日频率选择作业开始时间,最好选择数据库访问量小时进行,多为半夜时间,可根据流量图确定具体时间;持续时间通常不用做改动,开始日期为编辑日期,无结束日期。
编辑好上述维护计划后,还要注意下 sql server代理服务是否启动了,因为每日调度维护计划是要启动这个服务才能执行的。如果该服务没有启动,需要手动启动一下,这是可以在其子项“作业”中看到刚刚添加过的数据库维护计划。
BACKUP LOG DBName WITH NO_LOG
DBCC SHRINKDATABASE(DBName )
DBCC SHRINKFILE(1)
上边的数据库名称填写需要维护的数据库名称,数据库日志文件名填写其对应的日志文件名,注意,不是资源管理器里看到的带后缀名的那个名字,而是企业管理器里,数据库属性里日志选项卡中日志的名字(通常也只是差一个后缀名……),确定后添加一个作业步骤。 如果需要维护多个数据库,用上述方法重复添加作业步骤,注意每个步骤成功或失败后的动作即可,最后选择一下开始的步骤。
打开企业管理器,进入“管理”-“sql server代理服务”-“作业”,在右侧窗口点击右键,选择“新建作业”。“常规”选项卡中,填写作业名称,具体描述,注意所有者最好还是用sa或者默认的管理帐号。
转到“步骤”选项卡,新建作业步骤,填写步骤名称,类型为脚本,数据库为需要清理日志的数据库,在下边命令中填写以下命令:
1、每日自动备份
打开企业管理器,进入“管理”-“数据库维护计划”,在右侧窗口点击右键,选择“新建维护计划”,启动“数据库维护计划向导”;点击“下一步”选择需要维护的数据库,维护特性数据库时,选择最后一个单选框并勾选需要维护的数据库名称;“下一步”选择更新数据优化信息、“下一步”检查数据库完整性、“下一步”指定数据库备份计划、“下一步”指定备份存放位置、“下一步”指定事务日志备份计划、“下一步”指定报表,“下一步”指定历史纪录维护,最后设定维护作业名称;通常来说,如果只需要备份数据库文件,则只需要指定备份计划以及存放位置即可,其他项目不做改动。

SQLServer2008下日志清理方法(非dump语句)

SQLServer2008下日志清理方法(非dump语句)

SQLServer2008下⽇志清理⽅法(⾮dump语句)每次看到暴涨的数据库⽇志就有些头⼤,于是乱搜⼀通找个办法把⽇志⼲掉,下次⼜头⼤,⼜搜半天,于是还是写篇blog,不⽤乱找了。

1.将数据库设置成简单模式选择要收缩的数据库,点右键属性->选项,选择简单模式2.选择任务->收缩->⽂件3.选择⽇志或者⽤如下语句代码USE [master]GOALTER DATABASE DNName SET RECOVERY SIMPLE WITH NO_WAITGOALTER DATABASE DNName SET RECOVERY SIMPLEGOUSE DNNameGODBCC SHRINKFILE (N'LogFileName' , 0,TRUNCATEONLY)GOUSE [master]GOALTER DATABASE DNName SET RECOVERY FULL WITH NO_WAITGOALTER DATABASE DNName SET RECOVERY FULLGOServer 2000要清理使⽤的是dump语句,但是在SQL ⾥,这个语句不管⽤了,如果⽇志⽂件很⼤,⽐如超过1G,就需要截断⼀下⽇志⽂件以加快sqlserver的运⾏速度,在SQL Server2008⾥,⽅法改为:有数据库 xxdb 在 SQL Server 2008 下,⽇志⽂件已经超过1G。

以往使⽤BACKUP语句-BACKUP LOG xxdb WITH NO_LOG 已经失效,在查阅 MSDN 之后发现 MS 提供的标准截断⽇志语句已经变为了“BACKUP LOG 语句不指定 WITH COPY_ONLY”使⽤语句 BACKUP LOG xxdb to disk='x:\work\1.bak' 将⽇志⽂件备份,并截断⽇志⽂件。

这⾥x:代表你想要备份⽂件的盘符。

然后使⽤ DBCC SHRINKFILE (xxdb_log,10) 收缩⽇志⽂件到 10M总结:完整的收缩⽇志⽂件的 T-SQL 语句:BACKUP LOG xxdb to disk='x:\work\1.bak'DBCC SHRINKFILE (xxdb_log,10)GO--BACKUP LOG <db_name> to disk=<'backupfilename'>DBCC SHRINKFILE (<log_filename>,10)GO⾥⾯的x:\work是随意设置的。

sqlserver 清理日志语句

sqlserver 清理日志语句

sqlserver 清理日志语句摘要:1.引言2.SQL Server 日志概述3.清理日志的必要性4.SQL Server 日志清理策略5.清理日志的SQL 语句6.总结正文:SQL Server 清理日志语句在SQL Server 中,日志文件是非常重要的组成部分,用于记录数据库的操作过程。

然而,随着数据库操作的不断进行,日志文件会不断增长,导致系统性能下降。

因此,定期清理日志文件是维护数据库稳定运行的重要措施之一。

SQL Server 日志概述SQL Server 日志分为两种类型:事务日志和数据日志。

事务日志记录数据库中所有的事务操作,而数据日志记录数据页的变化。

这两种日志共同保证了数据库的完整性和可恢复性。

清理日志的必要性随着日志文件的不断增长,会占用大量的磁盘空间,影响数据库的性能。

此外,过多的日志文件还会导致备份和恢复操作变得复杂和耗时。

因此,定期清理日志文件是十分必要的。

SQL Server 日志清理策略SQL Server 提供了多种日志清理策略,包括:1.自动清理:SQL Server 会自动删除不需要的日志文件。

默认情况下,事务日志文件在事务提交后保留7 天,数据日志文件在数据页发生变化后保留10 分钟。

2.手动清理:管理员可以通过执行SQL 语句手动清理日志文件。

例如,可以使用`BACKUP LOG`语句备份事务日志,然后使用`DROP LOG`语句删除事务日志;使用`DBCC SHRINKFILE`语句收缩数据日志文件。

清理日志的SQL 语句以下是一些常用的清理日志的SQL 语句:1.备份事务日志:```BACKUP LOG database_name```2.删除事务日志:```DROP LOG database_name```3.收缩数据日志文件:```DBCC SHRINKFILE (database_name, log_file_name)```总结SQL Server 日志文件对于数据库的运行至关重要,但过大的日志文件会影响系统性能。

教你如何清除SQL日志

教你如何清除SQL日志

教你如何清除SQL日志在数据库管理系统中,SQL日志(又称事务日志)是记录数据库操作的重要组成部分。

它包含了每个SQL语句的详细信息,包括执行时间、执行结果、错误信息等等。

虽然SQL日志对于数据库运维和故障排查非常有用,但它也会占用大量的存储空间。

当日志文件过大时,不仅会占用磁盘空间,还会影响数据库性能。

1.压缩日志文件压缩日志文件是清除SQL日志的一种简单方法。

在许多数据库管理系统中,可以通过执行特定的备份命令来完成该过程。

备份会将日志文件中的已提交事务信息保存到备份文件中并压缩原始日志文件。

这种方法不会丢失任何已提交的事务数据,并且可以减小日志文件的大小。

但需要注意的是,压缩日志文件的操作可能会导致一些数据库性能下降,因为日志文件被磁盘I/O操作占用。

2.截断日志截断日志是一种将日志文件中已经完成的事务信息删除的方法。

截断日志可以实现通过释放日志文件空间来减小文件大小的目的。

虽然这种方法可以很好地清除日志文件,但需要谨慎处理。

如果在截断操作过程中出现故障或错误,可能会导致未提交的事务数据丢失。

因此,在执行截断日志之前,务必备份数据库以确保数据的安全。

3.调整日志文件大小另一种清除SQL日志的方法是调整日志文件的大小。

在一些数据库管理系统中,可以通过修改配置文件或使用特定的命令来调整日志文件的大小。

通过减小日志文件的大小,可以释放磁盘空间,并且可以同时减少数据库系统需要维护的日志信息量。

4.增加日志文件的自动增长阈值大多数数据库管理系统允许设置日志文件的自动增长阈值。

当日志文件达到预设的阈值时,数据库系统会自动增加文件的大小。

通过增加自动增长阈值,可以在一定程度上减少频繁清除日志文件的操作。

但需要注意的是,如果设置的阈值过大,可能会导致日志文件变得过大,影响数据库性能。

因此,需要根据数据库的负载和磁盘空间等因素进行合理的设置。

总的来说,清除SQL日志是数据库维护的重要任务之一、根据具体的数据库管理系统和运维需求,可以采用不同的方法进行清除。

sql server 清理数据语法

sql server 清理数据语法

sql server 清理数据语法SQL Server 清理数据库数据通常有以下几种方法:1. TRUNCATE TABLE:TRUNCATE TABLE 语句用于清空指定表中的所有数据,但不会记录日志信息并且不支持 WHERE 子句。

TRUNCATE TABLE 语句的执行速度比 DELETE 语句快得多,适合清空整个表数据。

语法格式:TRUNCATE TABLE table_name;2. DELETE:DELETE 语句是用于删除指定表中的数据行,支持 WHERE 子句,可以根据条件来删除指定的数据或者删除整个表中的数据。

DELETE 语句会记录日志信息,因此在删除大量数据时可能会比较慢。

语法格式:DELETE FROM table_name [WHERE condition];3. DBCC commands:DBCC(数据库命令检查)命令提供了多个清理数据库数据的选项。

例如,DBCC SHRINKDATABASE 可以压缩数据库并释放未使用的空间。

另外,DBCC FREESYSTEMCACHE('cache_name') 可以清空指定的系统缓存,而 DBCC FREESESSIONCACHE 可以清空当前会话的缓存。

语法格式:DBCC command;4. DROP TABLE:DROP TABLE 是一种删除整个表的命令,它会永久性地删除该表以及其中的所有数据和对象,无法恢复。

语法格式:DROP TABLE table_name;5. TRUNCATE PARTITION:对于包含分区表的数据库,可以使用 TRUNCATE PARTITION 命令来清空指定分区的数据,而不是清空整个表。

TRUNCATE PARTITION 命令类似于 TRUNCATE TABLE 命令,但它只清除特定的数据分区。

语法格式:TRUNCATE TABLE table_name PARTITION partition_number;需要注意的是,执行删除操作时一定要谨慎,特别是在生产环境中。

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

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方法四:删除日志文件。

此方法有一定的风险性,因为sql server的日志文件不是即时写入数据库主文件的,如处理不当,会造成数据的损失。

1、操作前请断开所有数据库连接。

2、分离数据库分离数据库:企业管理器->服务器->数据库->cwbase1->右键->分离数据库分离后,cwbase1数据库被删除,但保留了数据文件和日志文件3、删除log物理文件删除LOG物理文件,然后附加数据库:企业管理器->服务器->数据库->右键->附加数据库此法生成新的log,大小只有500多k。

注意:建议使用第一种方法。

操作前请确保所有操作员都已经推出系统,断开数据库的连接。

以上操作前,请务必做好数据备份!1.sql server 2005 清除日志语句dump transaction 数据库名称with no_logbackup log 数据库名称with no_logdbccshrinkdatabase(数据库名称)2.sql server 2008 清除日志语句sp_dboption数据库名称, "trunc. log on chkpt.", truecheckpointsp_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 thelog 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 avirtual log file even if it is not being used. Please refer to SQL Book Online for the details.RESOLUTIONBelow 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 getthe fileid which you want to shrink *\usegodbccshrinkfile(fileid,notruncate)dbccshrinkfile(fileid,truncateonly)create table t1 (char1 char(4000))declare @iintselect @i = 0while (1 = 1)beginwhile (@i< 100)begininsert into t1 values ('a') select @i = @i +1endtruncate table t1backup log with truncate_onlyendgo*****转发内容结束*****SQLServer数据库日志清理清除sqlserver2005日志有时候当系统运行时间比较长的时候,我们把备份的数据库还原的时候发现,数据库中数据文件和日志文件变的好大,特别是日志文件。

相关文档
最新文档