我最近搬到了一家新公司,他们在一个 20-25 GB 的 SQL 服务器中有 2 个数据库。我无法缩小数据库的日志文件。
数据库的事务日志备份设置为从早上 6 点到晚上 7 点每 30 分钟运行一次。
它们的大小分别为 10 和 2 Gb。
昨晚我试图在晚上 8-9 点左右缩小它,但我无法做到。
log_reuse_wait 列表示它正在等待 log_backup。
我尝试进行几次日志备份,但没有帮助。
我运行了 DBCC OPENTRAN 但没有打开的事务。
此外,今天早上即使在 Tlog 备份从早上 6:00 开始到现在(10:30)它仍然在 log_reuse_wait 列中显示 LOG_BACKUP。
也没有 OPEN TRAN。
当我对此进行研究时,我发现了 Paul Randal 的这篇文章:http : //www.sqlskills.com/blogs/paul/why-is-log_reuse_wait_desc-saying-log_backup-after-doing-a-log-backup/
它指出,如果数据库很小并且 tlog 文件的所有内容都在同一个 VLF 中,则无法截断。
我在数据库中有大约 300-400 个 VLF。
所以这在这里也没有意义。
我注意到一件事,每天早上 6 点,tlog 比其他的要大一点。
因此,我正在考虑与首席 DBA 核实以全天候运行 tlog。
除此之外,我想看看为什么会发生这种情况,我是否遗漏了什么。
我尝试使用以下命令缩小:
Use DB1
go
DBCC SHRINKFILE(2,10)
GO
Run Code Online (Sandbox Code Playgroud)
注意:它是运行 0n 2012 兼容性的 SQL …
我想了解增加是否work_mem
有助于提高命令的速度COPY
。
是否COPY
使用work_mem
或maint_work_mem
广泛使用?