【问题标题】:Is it possible to clear the aspstate log in mssql是否可以清除mssql中的aspstate日志
【发布时间】:2014-08-06 18:10:39
【问题描述】:

我的 ASPState.LDF 文件现在超过 17GB,其中一些数据已经很旧了。有没有办法删除所有旧数据?

仍在学习 SQL 数据库管理,而且我是使用 ASPState 的新手。

【问题讨论】:

  • 有正确的方法和非常错误的方法。这远远超出了论坛帖子所能回答的范围。研究如何正确管理日志文件。
  • @SeanLange 的优秀分数。关于这个主题有整本书。也许这可以让你开始:Managing Transaction Logs

标签: sql-server logging aspstate


【解决方案1】:

考虑将ASPState 数据库恢复模型更改为SIMPLEASPState 仅用于临时的 ASP.NET 会话对象,这些对象仅在 Web 会话的生命周期内有效。对这个特殊用途的数据库使用FULL 恢复模型没有任何价值。

在 SIMPLE 恢复模型中,已提交的事务会自动从日志中删除。之后您可以使用DBCC SHRINKFILE 减少物理日志文件。

【讨论】:

    【解决方案2】:

    LDF 文件是数据库的日志文件。如果您的数据库处于完全恢复模式,则除非备份日志,否则日志不会自行覆盖。因此,如果您需要完全恢复,这将允许您恢复到数据库中的某个时间点,那么您应该设置一个维护作业以每 15 分钟左右备份一次日志文件。

    这将停止日志增长,一旦完成,您可以在日志上运行收缩文件以减小到正常大小并允许它增长到正常大小。您不想一直缩小它,因为自动增长的成本很高,但一次性事件很好。

    如果您不需要时间点恢复,请将数据库恢复模式更改为简单。

    如果这些都不适用于您的情况,请开始查看您的代码。您可能有非常大的事务导致日志文件过大。但是,如果这是用于 Web 应用程序的数据库,则前者可能适用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-07
      • 2021-10-09
      • 1970-01-01
      • 1970-01-01
      • 2012-08-12
      相关资源
      最近更新 更多