【发布时间】:2017-09-15 19:20:17
【问题描述】:
我对 SQL Server t-Log 文件大小增长(.ldf 文件)感到困惑。我通过 DBA 的一些推荐的 Log file Shrink 分析了各种博客/主题,而有些则建议不要这样做。这是我以前遵循的:
如果数据库中还没有数据库,则将其置于完整模式。
收缩日志 如果没有足够的内存释放文件,则转到下一步。
- 解除附加数据库。 (有时它会进入单一模式,无论如何 我杀死的死锁进程,它永远不会进入多用户模式 再次。大问题!!! )
- 将 .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 脚本在无法承受停机时间的生产环境中尝试。请告知我应该如何前进。
【问题讨论】:
-
你认为日志文件为什么需要收缩?这是一次性的事情还是您必须定期做的事情?
-
实际上,我在各种 SQL Server 上都遇到过这种情况,其中 LOG 文件大小增加过多,磁盘空间几乎消耗了 99%,这导致数据库服务器出现故障/阻塞。
-
首先要做的是弄清楚为什么日志会变得如此之大。也许备份没有发生,也许他们只是看到太多的事务,他们实际上需要更大并且需要增加磁盘空间。有许多事情需要考虑,例如增长日志文件所需的资源。在此处阅读评分最高的答案dba.stackexchange.com/questions/53857/…
-
好的,我会浏览您分享的链接并回复。谢谢
-
“这不是推荐的技术” 谁说的?为什么?
标签: sql-server sql-server-2008 tsql database-administration ldf