SQLServer Log文件删除及清空日志文件的具体步骤

2012-8-28 15:36:35 来源:本站原创,请勿转载 浏览:3824
SQLServer大家都知道当用户对它进行一项操作之后,日志文件就会详细的记录下来,这样做确实可以方便用户对数据库进行查看及出现错误时迅速找出错误原因,不过长此以往的话,sqlserver的Log文件会变得非常庞大,不仅占用磁盘空间而且还影响sqlserver性能,所以我们可以采用定期清理Log文件的方式来提高sqlserver的使用性能。具体操作步骤请看下文:“SQLServer Log文件删除及清空日志文件的具体步骤”。

  大家都知道通过查看日志既可以很方便的查看用户对数据库进行了哪些操作及当前数据库出现错误的原因,但是它的缺点也是很显著的,随着sqlserver使用时限的增加,日志文件的大小也不断的增大,不仅占用了大量的磁盘空间,而且还会使数据库的性能下降,所以我们可以定期清理下log文件及日志文件提高sqlserver性能。

一、删除sqlserver中的Log文件:

1、分离数据库:右键选择某个数据库-【任务】-【分离】即可然后在新窗口中勾选【删除连接】(注:最好先备份好数据库,分离后在数据库列表中将看不到已分离的数据库)。

sqlserver日志Log文件删除操作

                                                     图一:分离数据库

sqlserver日志Log文件删除操作

                                                        图二:删除连接

2、删除Log文件

3、附加数据库,右键点击数据库选择【附加】操作,再删除数据库信息的mdf文件,附加的时候将会提示找不到数据库的Log文件,附加完成之后将会生成新的Log文件。

sqlserver日志Log文件删除操作

                                                              图三:附加数据库

sqlserver日志Log文件删除操作

                                                  图四:附加数据库窗口图

sqlserver日志Log文件删除操作

                                                     图五:删除.mdf文件

4、如果使用命令的话,操作如下:(TestDB为数据库名)

   1)use master;

     exec sp_detach_db @dbname='TestDB';

     exec sp_attach_single_file_db

     @dbname='TestDB',@physname='D:\Program

     Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\DATA\TestDB.mdf'

   2)清空日志:(注:sqlserver2008不支持该命令)

       DUMP TRANSACTION TestDB WITH NO_LOG

   3)收缩数据库文件:

       DBCC SHRINKFILE ('TestDB_log',1)

   4)截断事务日志:(注:sqlserver2008不支持该命令)

       BACKUP LOG TestDB WITH NO_LOG

二、清空日志文件具体步骤:

1、清空日志文件:

DUMP TRANSACTION 库名 WITH NO_LOG

2、截断事物操作:

BACKUP LOG 库名 WITH NO_LOG

3、收缩数据库文件:

依次点击你要压缩的数据库-【所有任务】-【收缩数据库】-【收缩文件】-【选择日志文件】-然后在收缩方式选项中选择【压缩至XXM】,选择最小的M数,确定就OK了。

如果采用命令的方式的话,如下:

DBCC SHRINKFILE ('库名_log',1)

其中1代表文件号,可以采用select * from sysfiles查询到文件号。

4、最大化的缩小日志文件:

1)分离数据库:请参照第一点中的第1小点。

2)在我的电脑中找到Log文件的删除。

3)附加数据库:请参照第一点中的第3小点。

或者使用如下命令:

1)分离:EXEC sp_detach_db @dbname = '库名'
2)删除日志文件
3)再附加
EXEC sp_attach_single_file_db @dbname = '库名',
@physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\库名.mdf'

5、我们可以将数据库设置为自动收缩就可以省去手动收缩的麻烦了:

右键数据库-【属性】-【选项】-【自动收缩】,或者使用如下的命令:

EXEC sp_dboption '库名', 'autoshrink', 'TRUE'

6、可以限制日志文件的大小:

右键数据库-【属性】-【事务日志】-【自己设置文件的增长限制】,使用命令如下:

alter database 库名 modify file(name=逻辑文件名,maxsize=20)

  以上操作确实可以达到清除sqlserver日志文件的目的,如非必要建议不要使用上面的第4、6点,因为第4步不安全,有可能损坏数据库或丢失数据,第6步如果日志达到上限,则以后的数据库处理会失败,在清理日志后才能恢复。

系列SQLServer软件下载请访问护卫神下载频道:获取下载链接请点击“护卫神”。

(0)
(0)