我有一些非常大的 ldf 文件:45 GB。而 mdf 数据文件只有 1 GB。我的问题是:
对于日志文件(ldf)使用 DBCC ShrinkFile 是否安全?
如何以编程方式限制 ldf 文件大小?
谢谢
答案1
简短的回答是“不,不建议缩小日志文件”
解决方案是运行数据库的完整备份,然后分离数据库,将日志文件重命名为 database.ldf.old 之类的名称,然后重新连接数据库,而无需指定日志文件的新位置。这将创建一个新的空日志文件。
确保日志文件不会过度增长的正确方法是定期备份事务日志。这是对定期完整备份的补充。但是,这仅适用于数据库使用完整恢复模式的情况。您可以通过右键单击 Management Studio 中的数据库,然后单击属性来查看它使用的模型。导航到选项页面,在该屏幕上,您将看到排序规则类型、恢复模型和兼容级别。
除非您需要通过将事务日志重播到特定事务来恢复到任何时间点,否则使用简单恢复模式并确保定期进行完整备份来备份数据库将防止日志文件过度增长。还建议您将日志文件放在单独的卷上(至少),以防止日志文件可能阻止登录到您的服务器(即如果它位于您的启动分区上,并完全填满磁盘)
答案2
这取决于你的 SQL 数据库有多重要,在我们的例子中,我们只进行数据库备份,然后定期收缩日志文件,请记住,如果数据库本身没有备份,日志文件将不会收缩,
因此,首先备份数据库,然后缩小数据库