我的SQL Server的一些日志文件(ldf)很大,比如5GB。我发现了一个关于收缩的文章,但不知道为什么作者重复了DBCCSHRINKFILE 6次。
有人能确认并建议一个干净的脚本来做这件事吗?
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发布于 2012-01-25 16:05:05
我看不出有什么理由像你说的那样重复命令6次。命令中的1是目标大小。DBCC ShrinkFile允许在创建文件时指定一个<原始大小的值。不过,请注意行:简单,您必须首先备份数据库,就像使用另一个恢复模型( full或bulk_logged)一样,日志链将被破坏。
发布于 2018-11-08 16:49:47
这个答案假设您的数据库处于完全恢复状态,如果使用简单的恢复,则有不同的注意事项。
首先,了解数据库使用完全恢复的业务原因。相关的帖子在服务器中从完全恢复改为简单恢复可以吗?有一些考虑。
接下来,了解在实例上进行t-log (.ndf)备份的频率以及备份的位置(进行备份并将备份留在服务器上几乎没有什么价值)。
在尝试收缩t日志(.ndf)之前,需要运行t日志备份。然后运行收缩一次,然后如果它没有像您想要的那样收缩,那么运行另一个t日志备份,然后再次尝试收缩相关。
对于Virtula日志文件(VLF)也有一些考虑,但这是另一天的教训。
https://dba.stackexchange.com/questions/11565
复制相似问题