天天看点

SQL SERVER数据库删除LOG文件和清空日志的方案

数据库在使用过程中会使日志文件不断增加,使得数据库的性能下降,并且占用大量的磁盘空间。SQL Server数据库都有log文件,log文件记录用户对数据库修改的操作。可以通过直接删除log文件和清空日志在清除数据库日志。

一、删除LOG

1、分离数据库。分离数据库之前一定要做好数据库的全备份,选择数据库——右键——任务——分离。

SQL SERVER数据库删除LOG文件和清空日志的方案

勾选删除连接

SQL SERVER数据库删除LOG文件和清空日志的方案

分离后在数据库列表将看不到已分离的数据库。

2、删除LOG文件

3、附加数据库,附加的时候会提醒找不到log文件。

SQL SERVER数据库删除LOG文件和清空日志的方案
SQL SERVER数据库删除LOG文件和清空日志的方案

删除数据库信息信息的ldf文件:

SQL SERVER数据库删除LOG文件和清空日志的方案

附加数据库之后将生成新的日志文件log,新的日志文件的大小事504K。

也可以通过命令才完成以上的操作:

二、清空日志

该命令在SQL Server 2005和2000支持,SQL Server 2008不支持该命令。

三、收缩数据库文件

四、截断事务日志

该命令在SQL Server 2008也是不支持,在SQL Server 2005和2000可以使用。

SQL Server 数据库使用时间一长就会导致Log文件逐渐变的庞大, 想备份一下数据库, 想发给谁都很困难

运行下面的语句就可以 清到Log文件只剩下1M左右的空间.

DUMP TRANSACTION 数据库名 WITH NO_LOG

DBCC SHRINKDATABASE('数据库名',TRUNCATEONLY)

SQLServer的系统日志过大,就会引起SQLServer服务器无法启动等一系列问题。今天我遇到了这个问题,在网上搜索了一下,解决方法是删除就 可以了,可是当前的ErrorLog正在被SQL使用无法删除啊,要删除只能停止SQL服务器,难道就没有别得办法了吗?

   回答是肯定的:使用以下存储过程:EXEC   sp_cycle_errorlog

注释  

  每次启动 SQL Server时,当前错误日志重新命名为   errorlog.1;errorlog.1   成为  errorlog.2,errorlog.2   成为   errorlog.3,依次类推。sp_cycle_errorlog   使您得以循环错误日志文件,而不必停止而后再启动服务器。