When we attempted to run sp_cycle_errorlog
we get the following:
Msg 17049, Level 16, State 1, Procedure sp_cycle_errorlog, Line 9
Unable to cycle error log file from
'G:\SQL_DATA1\MSSQL10_50.ABC\MSSQL\Log\ERRORLOG.15' to
'G:\SQL_DATA1\MSSQL10_50.ABC\MSSQL\Log\ERRORLOG.16' due to OS error
'1392(failed to retrieve text for this error. Reason: 15105)'. 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.
So far we have tried:
-
Failing over the SQL cluster resource to second node, rebooting server, failing back and rebooting second node
-
Using Process Explorer tool – this identified the only process using the ERRORLOG file to be sqlservr.exe
SQL version details:
Microsoft SQL Server 2008 R2 (SP3) – 10.50.6000.34 (X64) Aug 19 2014
12:21:34 Copyright (c) Microsoft Corporation Enterprise Edition
(64-bit) on Windows NT 6.1 (Build 7601: Service Pack 1)
There are two SQL instances on this two node SQL cluster, on the other instance the log cycles over with no issue.
I have seen a couple of posts on this subject but both appear to have been resolved by killing the non-sqlserver process. I'm presuming that the sqlsrvr.exe process is expected to be locking the file?
Any help appreciated.
Best Answer
From System Error Codes (1300-1699): OS error 1392 indicates file corruption.
So it looks like you have corruption on your G: drive.
I would start with a
chkdsk
of that drive and all other drives.Since corruption usually doesn't fix itself and can have the tendency to worsen, personally I would fail over to the other node ASAP before other files (I don't know what else lives on the drive) corrupt and the situation gets trickier and trickier.