SQL Server错误日志被占用无法轮转案例
2026-07-13 08:52 潇湘隐者 阅读(5) 评论(0) 收藏 举报遇到一台SQL Server错误日志无法轮转的案例, 如下所示,作业/SQL窗口执行下面脚本:
USE msdb;
GO
EXEC sp_cycle_errorlog;
就会遇到下面错误
Msg 17049, Level 16, State 1, Procedure sp_cycle_errorlog, Line 11
Unable to cycle error log file from 'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Log\ERRORLOG' to 'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Log\ERRORLOG.1' due to OS error '32(The process cannot access the file because it is being used by another process.)'. A process outside of SQL Server may be preventing SQL Server from reading the files. As a result, errorlog entries may be lost and it may not be possible to view some SQL Server errorlogs. Make sure no other processes have locked the file with write-only access."
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
从错误提示可以看出, 这个错误日志被占用, 只需找到是哪一个进程占用文件即可. 如下所示:
G:\tmp\Handle>handle.exe C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Log\ERRORLOG
Nthandle v5.0 - Handle viewer
Copyright (C) 1997-2022 Mark Russinovich
Sysinternals - www.sysinternals.com
sqlservr.exe pid: 4332 type: File 1678: C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Log\ERRORLOG
opcle.exe pid: 7228 type: File 90: C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Log\ERRORLOG
G:\tmp\Handle>
进程opcle.exe是一个监控日志的软件, 后面跟系统组同事沟通发现,是因为忘记勾选"读取后关闭日志文件"这个选项,导致这个进程一直占用SQL Server错误日志文件导致.勾选这个选项后,问题解决.
扫描上面二维码关注我
如果你真心觉得文章写得不错,而且对你有所帮助,那就不妨帮忙“推荐"一下,您的“推荐”和”打赏“将是我最大的写作动力!
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接.
浙公网安备 33010602011771号