首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >收缩日志文件

收缩日志文件
EN

Database Administration用户
提问于 2012-01-25 15:35:33
回答 2查看 681关注 0票数 3

我的SQL Server的一些日志文件(ldf)很大,比如5GB。我发现了一个关于收缩的文章,但不知道为什么作者重复了DBCCSHRINKFILE 6次。

有人能确认并建议一个干净的脚本来做这件事吗?

代码语言:javascript
复制
USE DatabaseName 
GO
ALTER DATABASE DatabaseName SET RECOVERY SIMPLE
GO
ALTER DATABASE DatabaseName SET RECOVERY FULL
GO
DBCC SHRINKFILE ('LogFileName', 1)
GO
DBCC SHRINKFILE ('LogFileName', 1)
GO
DBCC SHRINKFILE ('LogFileName', 1)
GO
DBCC SHRINKFILE ('LogFileName', 1)
GO
DBCC SHRINKFILE ('LogFileName', 1)
GO
DBCC SHRINKFILE ('LogFileName', 1)
GO
EN

回答 2

Database Administration用户

回答已采纳

发布于 2012-01-25 16:05:05

我看不出有什么理由像你说的那样重复命令6次。命令中的1是目标大小。DBCC ShrinkFile允许在创建文件时指定一个<原始大小的值。不过,请注意行:简单,您必须首先备份数据库,就像使用另一个恢复模型( full或bulk_logged)一样,日志链将被破坏。

  1. 备份数据库
  2. 用恢复模型进行简单。
  3. 运行DBCC ShrinkFile命令(我在这里推荐一个合理的大小,如果您有一个5Gb的日志文件,您可能需要一个更大的原始大小,或者更大的MB增量来实现它的增长。
  4. 切换回原来的恢复模式。
票数 3
EN

Database Administration用户

发布于 2018-11-08 16:49:47

这个答案假设您的数据库处于完全恢复状态,如果使用简单的恢复,则有不同的注意事项。

首先,了解数据库使用完全恢复的业务原因。相关的帖子在服务器中从完全恢复改为简单恢复可以吗?有一些考虑。

接下来,了解在实例上进行t-log (.ndf)备份的频率以及备份的位置(进行备份并将备份留在服务器上几乎没有什么价值)。

在尝试收缩t日志(.ndf)之前,需要运行t日志备份。然后运行收缩一次,然后如果它没有像您想要的那样收缩,那么运行另一个t日志备份,然后再次尝试收缩相关

对于Virtula日志文件(VLF)也有一些考虑,但这是另一天的教训。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/11565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档