如何缩小 40GB 的日志文件

如何缩小 40GB 的日志文件

我有一个问题,我的 SQL Server 2008 中的日志文件已增长到 40Gb,我想缩小它。我使用的查询是

    ALTER DATABASE DatabaseName SET RECOVERY SIMPLE
use DatabaseName
GO
CHECKPOINT
GO
DBCC SHRINKFILE(transactionloglogicalfilename,TRUNCATEONLY)
GO
ALTER DATABASE DatabaseName SET RECOVERY FULL

不会在更多级别上缩小日志文件,而且缩小的日志文件只会在短时间内立即扩大。

那么问题出在哪里?

我想将日志文件缩小到 1GB,我的数据库大小是 16GB

我有 SQL Server 2008 R2

请有人帮帮我

答案1

进入管理工作室,右键单击数据库,任务>收缩>文件。

在文件类型下,选择日志文件。确保选择释放未使用的空间作为收缩操作,然后单击确定。

至于缩小的日志文件再次快速增长,可能是因为您设置为完整恢复模式。将其设置为简单将立即提交更改,而不会将其保存在日志中。简单只有在您定期执行完整备份时才有用。

答案2

如果您想防止进一步增长,您需要将数据库日志设置为简单(但前提是您对数据库进行了完整备份!)。

  1. 右键点击在你的数据库上
  2. 选择特性
  3. 选择选项
  4. 将恢复模式设置为简单的

这会很有效,并且最好是您的备份计划是完整备份每天。因为在这种情况下,您的日志不会被修剪,而且会飙升。

如果您使用祖父和父亲和儿子备份技术。这意味着每月完整备份每周完整备份,然后每个日增量备份. 那么你需要完全恢复模式。因此,考虑到您将数据库设置为完全备份,您需要停止这样做并将备份切换到简单恢复模式,或者开始正确执行备份,并且您的日志将被备份修剪。

如果您将其切换为简单然后切换为完整,则您的日志将再次增长。

结合 DanBig 的建议,按照以下步骤缩小数据库:

  1. 打开 Sql Management Studio
  2. 右键单击数据库,任务 > 收缩 > 文件。
  3. 在文件类型下,选择日志文件。确保将选项标记Release unused space为收缩操作,然后单击确定。

相关内容