sql点滴39—解决数据库日志文件过大的问题

时间:2024-09-27 23:07:20

随着数据库使用时间增长,日志文件也在不停的增大,这里介绍几种方法减小这个文件的方法。

1.直接删除log文件(一般不建议)

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

sql点滴39—解决数据库日志文件过大的问题

将日志文件和数据文件复制粘贴到另外一个文件夹中以防万一。删除链接,如下图

sql点滴39—解决数据库日志文件过大的问题

直接删除日志文件,然后再附加数据库,如下图

sql点滴39—解决数据库日志文件过大的问题

附加的时候会自动将ldf文件和mdf文件都附加上,但是会提示找不到ldf文件,没关系,选中ldf文件这一行,点击下面的删除按钮,点击确定就可以了。如下图

sql点滴39—解决数据库日志文件过大的问题

sql点滴39—解决数据库日志文件过大的问题

如家成功之后生成的新的ldf文件只有504K。

2.收缩日志文件

2.1.清空日志
DUMP TRANSACTION 库名 WITH NO_LOG

2.2.截断事务日志:
BACKUP LOG 库名 WITH NO_LOG

2.3也可以采用收缩日志文件的方式来减小这个日志文件大小。右击数据库-任务-收缩-文件,选择日志文件,如下图
sql点滴39—解决数据库日志文件过大的问题

在收缩操作这个选项中可以选中第二项,“在释放未使用的空间钱重新组织页”,然后指定一个大小,点击确定就可以了。

也可以用SQL语句来完成   
--收缩数据库   
DBCC   SHRINKDATABASE(库名)

3.使用故障恢复模型为简单模型

为防止日志文件以后增大,也可使用故障恢复模型为简单模型。右击数据库-属性-选项-恢复模式,选择简单。如下图

sql点滴39—解决数据库日志文件过大的问题

也可使用语句实现这一功能。

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

注意:一般立成建立的数据库默认属性已设好,但碰到意外情况使数据库属性被更改,请用户清空日志后,检查数据库的以上属性,以防事务日志再次充满。