SQL Server 事务日志初始数据加载

ElP*_*nte 6 sql-server backup logs

最初使用 5GB+ 填充数据库以避免大型事务日志时的标准流程是什么?根据我的理解,日志文件会在初始加载后跳转到较大的大小,并且从那时起磁盘空间不会减少。定期事务日志备份将释放文件中的空间,但文件仍会很大。

那么是否建议将目标数据库设置为简单备份,加载数据,使用 CHECKPOINT 截断日志,然后将数据库设置为完全备份模式?

此外,我知道可以对日志执行收缩文件操作,但有人说永远不要使用它,其他人似乎建议将其作为解决方案。有什么想法吗?

Edw*_*and 2

您可以在简单模型中初始加载它。(只要加载本身不是一个您希望能够执行时间点恢复的多步骤过程)。

现在,在加载之后,如果您有一个长时间运行的事务,无论是否处于简单模型中,您的日志文件都可能会增长很多。然后您可以缩小日志文件。

然后您需要调整日志文件的大小。一个好的起点是检查您最大的表。如果您采用完全恢复模型,则您至少需要与最大表一样多的事务日志文件空间。因为当您进行常规索引维护并进行重建时,重建生成的事务日志大约与您的表一样多。因此,为最大的桌子调整尺寸是一个好的开始。

但是,随着时间的推移,您将看到事务记录率与日志备份频率相比是否会导致日志文件增长。您可以调整日志文件的大小或日志备份的频率。

预先确定尺寸很重要。让文件自动增长会带来巨大的性能损失,因为日志文件需要进行零初始化。请记住,它总是在您执行事务时自动增长,事务日志写入是同步的,因此等待自动增长完成就是直接等待所有待处理事务。

那么自动增长选项也不利于日志文件的内部布局。看:

http://www.sqlskills.com/BLOGS/KIMBERLY/post/8-Steps-to-better-Transaction-Log-throughput.aspx

和:

http://www.sqlskills.com/BLOGS/KIMBERLY/post/Transaction-Log-VLFs-too-many-or-too-few.aspx

因此,最好预先确定其尺寸。