解决数据库日志文件过大的问题

    作者:课课家教育更新于: 2018-03-16 10:53:23

      在日常操作软件的过程中,由于数据库日志文件太大,我们通常会遇见检索一个品种很慢甚至卡死、在数据库执行语句或备份数据库文件,通常只需要几分钟的时间就可以执行完毕,却在使完洪荒之力都没有结果的情况,这种现象严重影响了数据库备份和数据库还原的时效性,也导致在使用软件一段过程后体验感下降。

      小编前几天发现网站的查询有点不正常,一般来说,会先查询出一级目录的内容,单击一级目录后会查询出二级目录……一直到查询到最下面的文件。可是这几天发现,查询速度很慢,而且,查询出来的也不是一级目录,而是直接显示最下面的文件,显示的数据量也有问题。

      一开始还以为是网站被人黑了,因为网站没有修改过,所以应该不是网站自身的问题。

      在服务器上查了半天,什么也没有查出来。

      后来去看网站程序,看了半天,也没有看出什么问题来。

      再后来去看数据库,看了半天,同样没有看出什么问题来。

      最后无意中看到数据库的日志文件很大,有几个G,心想不会是因为这个的问题吧?

      为SQLServer做了日志备份之后,截断日志,压缩数据库,再访问网站。OK,一切正常了。

      由此可知,SQLServer日志过大也会影响查询结果啊!

      所以基于这个问题,小编为大家带来的是针对这种数据库日志文件过大的处理方案。

      1.直接删除log文件

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

    解决数据库日志文件过大的问题_数据库_SQL Server_开发_课课家教育

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

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

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

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

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

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

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

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

      2.收缩日志文件

      也可以采用收缩日志文件的方式来减小这个日志文件大小。右击数据库-任务-收缩-文件,选择日志文件,如下图

     成功之后生成的新的ldf文件只有504K。   2.收缩日志文件    也可以采用收缩日志文件的方式来减小这个日志文件大小。右击数据库-任务-收缩-文件,选择日志文件,如下图

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

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

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

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

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

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

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

课课家教育

未登录