我对 SQL Server t-Log 文件大小增长(.ldf 文件)感到困惑。我通过 DBA 的一些推荐的日志文件收缩分析了各种博客/主题,而有些则建议不要这样做。这是我以前遵循的:
如果数据库尚未在其中,则将其置于完整模式。
如果没有释放足够的内存,则收缩日志文件,然后转到下一步。
- 解除附加数据库。(有时它进入单模式,无论我杀死什么死锁进程,它都不会再进入多用户模式。大问题!!!)
- 将 .ldf 文件移动到其他位置并仅恢复 mdf 文件。
这不是推荐的技术,所以我浏览了以下脚本,即减少虚拟日志文件 (VLF) 以释放未使用的空间:
USE dbname
BACKUP LOG dbname TO DISK = 'C:\x\dbname.trn'
--First param below is fileno for log file, often 2. Check with sys.database_files
--Second is desired size, in MB.
DBCC SHRINKFILE(2, 500)
DBCC SQLPERF(LOGSPACE) --Optional
DBCC LOGINFO --Optional
Now repeate above commands as many times as needed!
我不确定是否专业推荐 VLF 脚本在无法承受停机时间的生产环境中尝试。请告知我应该如何前进。