空的 SQL Server 2000 LDF 文件

rhu*_*hes 1 sql-server sql-server-2000

我有一个 1 GB.LDF的测试数据库,我想将其缩小。如果需要,我很乐意删除其内容。

如何为 SQL Server 2000 执行此操作?

我尝试了以下方法但无济于事:

BACKUP LOG Database_TEST with truncate_only
DBCC SHRINKFILE (Database_TEST_Log, 1000)
Run Code Online (Sandbox Code Playgroud)

Aar*_*and 5

第二个参数DBCC SHRINKFILE是目标大小,以 MEGABYTES 为单位。因此,要将您的代码解释为英语,您是在说:

“SQL Server,请把这个 1 GB 的文件缩小到 1000

MB。PS 1000 MB = 1 GB。所以,不要做任何事情。”

您应该尝试较小的目标尺寸,例如:

DBCC SHRINKFILE (Database_TEST_Log, 1);
Run Code Online (Sandbox Code Playgroud)

如果文件似乎没有缩小,请再次运行命令(或发出 aCHECKPOINT并再次运行收缩命令,如果恢复模式是SIMPLE)。

如果文件似乎仍然没有缩小,可能是因为存在长时间运行的事务。您可以针对此数据库使用以下命令找出这是什么:

DBCC OPENTRAN;
Run Code Online (Sandbox Code Playgroud)

当然,当你做类似BACKUP WITH TRUNCATE_ONLY我希望你不关心这个数据库的事情或者希望能够恢复到这个操作之前的某个时间点时,或者至少一旦你缩小这个日志文件你将恢复正确的日志管理和备份程序。此外,如果您将文件缩小到最小大小,下次用户生成日志时,他们将不得不等待文件增长。对于日志文件尤其如此,它不能像数据文件那样从即时文件初始化中受益,并且当自动增长大小不合适和/或日志不在快速磁盘(如 SSD)上时可能会特别烦人。

请仔细阅读这个问题及其答案:

为什么事务日志不断增长或空间不足?