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