大多数时候,用户会点击数据库来阅读新闻。在事务下执行的查询数量很少。95% 的数据库命中将用于只读目的。
我的数据库日志文件大小每天增长 1 GB。即使我缩小数据库,日志文件的大小也不会减少。越来越多的日志文件大小可能是什么原因?我该如何控制这个?根据我的知识,当我们从表中读取数据时,日志文件不会增加。
关于如何处理日志文件增长的任何建议?如何将其保持在可管理或合理的大小?这会以任何方式影响性能吗?
大多数时候,用户会点击数据库来阅读新闻。在事务下执行的查询数量很少。95% 的数据库命中将用于只读目的。
我的数据库日志文件大小每天增长 1 GB。即使我缩小数据库,日志文件的大小也不会减少。越来越多的日志文件大小可能是什么原因?我该如何控制这个?根据我的知识,当我们从表中读取数据时,日志文件不会增加。
关于如何处理日志文件增长的任何建议?如何将其保持在可管理或合理的大小?这会以任何方式影响性能吗?
有几件事需要考虑。您执行什么类型的备份,以及您需要什么类型的备份。如果您有这个问题的答案,您可以将恢复模式切换为简单模式或将其完全保留,但是您需要每天进行增量备份(或者任何让您对日志大小感到满意的方式)。
将您的数据库日志记录设置为简单(但前提是您对数据库进行完整备份!)。
如果您的备份计划是每天完全备份,这将起作用并且是最好的。因为在这种情况下,您的日志不会被修剪,并且会飙升(就像您的情况一样)。
如果您将使用 Grandfather&Father&Son 备份技术,即每月完整备份、每周完整备份,然后每天进行增量备份。然后为此您需要完全恢复模式。如果每天 1GB 的日志仍然太多,您可以启用每小时或每 15 分钟的增量备份。这应该可以解决日志越来越多的问题。
如果您每天都运行完整备份,则可以将其切换到简单恢复模式,并且您应该没问题而不会给您的数据带来风险(如果您离开时可能会丢失 1 天的数据)。如果您打算使用增量,则将其保留为Recovery Mode Full。
完全备份将无济于事,您必须定期备份事务日志(以及常规数据库完全备份和差异备份)才能清空它。如果您没有备份日志并且您不是处于简单恢复模式,那么您的事务日志中包含自数据库设置以来的所有事务。如果您有足够的操作以使您每天增长一个演出,那么您可能还会有大量导入或更新同时影响许多记录。您可能需要处于不单独记录事务的简单恢复模式。但是,如果您有来自导入和用户的混合数据,请不要这样做。在这种情况下,您需要经常备份事务日志,以便能够将大小保持在可管理的时间点上。我们每 15 分钟备份一次事务日志。
阅读 BOL 中的事务日志备份,了解如何解决您现在遇到的问题。然后让您的备份设置并正常运行。在尝试修复之前,您需要彻底阅读并理解这些内容。现在,如果您的服务器出现故障并且您必须恢复数据库,您可能会受到伤害。事务日志备份对于能够从故障中正确恢复至关重要。
日志文件大的主要原因是数据库中的批量事务。要减小日志文件大小,最好的选择是在一定时间间隔后进行事务日志备份。
您是否经常备份数据库?您需要执行完整和/或事务日志备份,以便 SQL Server 考虑缩小您的日志文件。