我正在处理其他人的备份维护计划并且日志文件有问题,我有一个位于一个大小为 31 GB 的驱动器上的数据库和一个位于另一台大小为 20 GB 的服务器上的日志文件,数据库处于完全恢复模式。有一个维护计划每天运行一次以进行完整备份,而第二个计划则每 15 分钟备份一次日志文件。我检查了日志文件备份到的驱动器,仍然有足够的空间,但备份后日志文件永远不会变小,维护计划中是否缺少某些内容?
提前致谢
我正在处理其他人的备份维护计划并且日志文件有问题,我有一个位于一个大小为 31 GB 的驱动器上的数据库和一个位于另一台大小为 20 GB 的服务器上的日志文件,数据库处于完全恢复模式。有一个维护计划每天运行一次以进行完整备份,而第二个计划则每 15 分钟备份一次日志文件。我检查了日志文件备份到的驱动器,仍然有足够的空间,但备份后日志文件永远不会变小,维护计划中是否缺少某些内容?
提前致谢
你描述的情况似乎很好。
事务日志备份不会收缩日志文件。但是,它确实会截断日志、文件,这意味着可以重用空间:
来自在线书籍(事务日志截断):
日志截断自动释放逻辑日志中的空间以供事务日志重用。
此外,从管理事务日志:
日志截断,在简单恢复模型下是自动的,对于防止日志被填满是必不可少的。截断过程通过将不包含逻辑日志任何部分的虚拟日志文件标记为非活动来减小逻辑日志文件的大小。
这意味着每次在您的方案中发生事务日志备份时,它都会在文件中创建可供后续事务使用的可用空间。
从这里开始,您是否也应该缩小文件?一般来说,答案是否定的。假设您的数据库没有突然出现大规模的一次性使用高峰,事务日志将增长到可以容纳典型工作负载的大小。
这意味着如果您开始缩小日志,SQL Server 将只需要再次增长它...这是一个资源密集型操作,会影响服务器性能,并且在日志增长时无法完成任何事务。
目前的计划和文件大小对我来说都是合理的。
我不知道这是否适用于您的情况,但早期版本的 SQL Server 2012 有一个错误,当模型设置为简单恢复模型时会出现错误。对于使用模型设置为简单创建的任何数据库,日志文件将继续增长以达到 2,097,152 MB 的限制。如果您之后更改为 Full,这仍然适用。知识库文章2830400指出,更改为 Full,然后更改回 Simple 是一种解决方法——这不是我的经验。为 SP1 运行 CU 7 是唯一对我有用的技巧。
本文提供了解决此错误的第一个更新的链接:“SQL Server 2012 SP1 的累积更新 4”,以及“SQL Server 2012 的累积更新 7”(如果您尚未安装 SP1)。
如果您将恢复更改为完全,然后再恢复为简单,则收缩将成功运行。