首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何收缩大LDF

如何收缩大LDF
EN

Database Administration用户
提问于 2020-11-18 13:28:08
回答 4查看 2.3K关注 0票数 0

我有一个具有100 4Gb和4GB LDF的SQL2016 DB的客户端。DB设置为Simple。我不能把LDF缩小到最低限度。如何将LDF缩小到正常水平?

这种设置和文件大小会影响性能吗?

EN

回答 4

Database Administration用户

发布于 2020-11-18 13:47:14

在尝试缩小日志文件之前,您需要了解是否存在问题。很可能不是。

日志的大小最有可能是因为它需要增长到这个大小,这意味着如果你缩小它,它很可能会在将来恢复到那个大小--不管是什么交易导致它增长,它的增长都会暂时减慢。

由于它只有4GB,并且在SIMPLE恢复中,我建议简单地保持日志原样,也许可以将自动增长调整为固定的1GB块。

如果您只需缩小日志,就可以使用DBCC SHRINKFILE使用TRUNCATEONLY选项。示例:

DBCC SHRINKFILE (Database_log_file_name, 1);

这将截断文件直到最后一个打开的事务,如果数据库是空闲的,或者大部分是空闲的,那么整个事务就是全部。但是,首先要确保您已经设置了您的自动增长如上所述,您甚至可能希望调整日志的大小,您认为您需要。

但是再说一遍.100 4GB数据库上的4GB并不是什么大事。我就让它呆在那里。

票数 5
EN

Database Administration用户

发布于 2020-11-22 11:37:02

也许DB本身可以告诉您为什么它没有修剪日志(请参阅可能延迟日志截断的因素)。

票数 1
EN

Database Administration用户

发布于 2020-11-19 21:22:34

这是我在日志文件太大时使用的一段代码:

代码语言:javascript
复制
-- check the size of the files.
SELECT size / 128.0 as sizeMB, name
FROM sys.database_files;
 
GO
-- Truncate the log by changing the database recovery model to SIMPLE.
ALTER DATABASE My_DB_Name SET RECOVERY SIMPLE;
GO
-- Shrink the truncated log file to 1 MB.
DBCC SHRINKFILE (My_DB_Name_log, 1);
GO
-- Reset the database recovery model.
ALTER DATABASE My_DB_Name SET RECOVERY FULL;
GO
-- Be sure to do a full backup, then kick off transaction log backups
 
-- check the size of the files.
SELECT size / 128.0 as sizeMB, name
FROM sys.database_files;

您必须用数据库的名称更改My_DB_Name的名称

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

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

复制
相关文章

相似问题

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