我有一个具有100 4Gb和4GB LDF的SQL2016 DB的客户端。DB设置为Simple。我不能把LDF缩小到最低限度。如何将LDF缩小到正常水平?
这种设置和文件大小会影响性能吗?
发布于 2020-11-18 13:47:14
在尝试缩小日志文件之前,您需要了解是否存在问题。很可能不是。
日志的大小最有可能是因为它需要增长到这个大小,这意味着如果你缩小它,它很可能会在将来恢复到那个大小--不管是什么交易导致它增长,它的增长都会暂时减慢。
由于它只有4GB,并且在SIMPLE恢复中,我建议简单地保持日志原样,也许可以将自动增长调整为固定的1GB块。
如果您只需缩小日志,就可以使用DBCC SHRINKFILE使用TRUNCATEONLY选项。示例:
DBCC SHRINKFILE (Database_log_file_name, 1);
这将截断文件直到最后一个打开的事务,如果数据库是空闲的,或者大部分是空闲的,那么整个事务就是全部。但是,首先要确保您已经设置了您的自动增长如上所述,您甚至可能希望调整日志的大小,您认为您需要。
但是再说一遍.100 4GB数据库上的4GB并不是什么大事。我就让它呆在那里。
发布于 2020-11-22 11:37:02
也许DB本身可以告诉您为什么它没有修剪日志(请参阅可能延迟日志截断的因素)。
发布于 2020-11-19 21:22:34
这是我在日志文件太大时使用的一段代码:
-- 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的名称
https://dba.stackexchange.com/questions/279889
复制相似问题