none
mssql 2008,2012如何让日志循环增长? RRS feed

  • 问题

  • 如题,

    1、或者有办法自动收缩日志?设置日志文件大小不会起到循环的效果

    2、如果收缩日志,清理的是最老旧的日志?如一段1月1日-2月1日的日志,收缩后会将1.1-1.20的清理,保留1.20以后的?


    2020年3月9日 1:25

答案

全部回复

  • 你好

    1、或者有办法自动收缩日志?设置日志文件大小不会起到循环的效果

    >>你可以通过添加”维护计划“来设置收缩日志,如下图:

    具体的设置步骤,你可以参考这篇文章: SQL SERVER 2008R2如何建立自动收缩维护计划

    不过我们的建议是最好不要设置自动收缩,自动收缩会导致很多的索引碎片,也会占用大量资源等,你最好是定期备份来释放日志空间

    2、如果收缩日志,清理的是最老旧的日志?如一段1月1日-2月1日的日志,收缩后会将1.1-1.20的清理,保留1.20以后的?

    >>收缩日志不是清理日志,也不是安装时间顺序的,只是通过将数据页从文件末尾移动到更靠近文件开头的未占用的空间来恢复空间,你可以阅读这篇文章:收缩文件

    其实收缩日志并不会释放日志大小,如果想要释放日志空间,你需要对日子进行定期的备份,你也可以参考这篇文章:解决事务日志已满的问题(SQL Server 错误 9002)

    希望这些对你有所帮助,还有任何问题,请随时告知,谢谢



    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.





    2020年3月9日 2:58
  • 十分感谢您的耐心回答

    我现在的场景是数据库mdf文件只有2g,数据库ldf文件有90g,我手动将日志文件从90g收缩到50M,

    1、我这样的收缩是否就是删除日志文件?

    2、我这样操作的危害性是日志文件丢失无法回滚恢复?

    3、数据库ldf文件巨大的原因是数据库有时间时序较长的大型任务?

    4、使用备份可以截断日志,我这样只是把90g容量转移到备份文件中?

    2020年3月9日 6:21
  • 你好,

    1、我这样的收缩是否就是删除日志文件?

    >>收缩不会删除日志文件,只是将未使用的空间使用上

    2、我这样操作的危害性是日志文件丢失无法回滚恢复?

    >>理论上日志文件不会丢失,只是会产生很多碎片,对系统运行影响较大

    3、数据库ldf文件巨大的原因是数据库有时间时序较长的大型任务?

    >>Ldf文件巨大的原因是日志长时间未被截断,除了有长时间未提交的事务外,还有可能是完整恢复模式下,为进行日志备份,数据库正在运作较大的事务,数据库复制或镜像出现异常等

    4、使用备份可以截断日志,我这样只是把90g容量转移到备份文件中?

    >>是的,日志备份后,90g的日志记录被转移到备份文件中,日志截断后当前的LDF的空间就被释放了,就可以循环写入了。

    你可以参考这篇文章:管理事务日志文件的大小

    此外,我觉得这些博文可以帮你理解事务日志的物理逻辑和架构:

    浅谈SQL Server中的事务日志(一)----事务日志的物理和逻辑构架

    浅谈SQL Server中的事务日志(二)----事务日志在修改数据时的角色

    浅谈SQL Server中的事务日志(三)----在简单恢复模式下日志的角色

    浅谈SQL Server中的事务日志(四)----在完整恢复模式下日志的角色

    希望这些对你有用。

    如果您觉得我们的回复解决了该问题,请帮忙‘标记为答案'以帮助其他社区成员迅速找到有用的答复。
    如果没有,请回复并告诉我们当前情况,以便提供进一步的帮助。谢谢


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.



    2020年3月9日 8:36
  • 你好,

    请问您的问题解决了吗?
    如果您觉得我们的回复解决了该问题,请帮忙‘Mark as Answer'以帮助其他社区成员迅速找到有用的答复。
    如果没有,请回复并告诉我们当前情况,以便提供进一步的帮助。


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2020年3月10日 1:07