在Microsoft SQL Server 2016(SP2-CU2)(KB4340355)-13.0.5153.0(X64)实例之一上,我们遇到数据库问题,在出现以下一组错误消息后,该数据库不可用:
Error: 5901, Severity: 16, State: 1.
One or more recovery units belonging to database 'DatabaseName' failed to generate a checkpoint. This is typically caused by lack of system resources such as disk or memory, or in some cases due to database corruption. Examine previous entries in the error log for more detailed information on this failure.
Error: 9002, Severity: 17, State: 4.
The transaction log for database 'DatabaseName' is full due to 'ACTIVE_TRANSACTION'.
Error: 3314, Severity: 21, State: 3.
During undoing of a logged operation in database 'DatabaseName', an error occurred at log record ID (817263:574330:72). Typically, the specific failure is logged previously as an error in the Windows Event Log service. Restore the database or file from a backup, or repair the database.
Database DatabaseName was shutdown due to error 3314 in routine 'XdesRMReadWrite::RollbackToLsn'. Restart for non-snapshot databases will be attempted after all connections to the database are aborted.
Error during rollback. shutting down database (location: 1).
Error: 9001, Severity: 21, State: 5.
The log for database 'DatabaseName' is not available. Check the event log for related error messages. Resolve any errors and restart the database.
Error: 3314, Severity: 21, State: 3.
During undoing of a logged operation in database 'DatabaseName', an error occurred at log record ID (817275:1961734:243). Typically, the specific failure is logged previously as an error in the Windows Event Log service. Restore the database or file from a backup, or repair the database.
两个数据库(提到的数据库和tempdb)都将自动增长设置为启用,并且驱动器上有可用空间来存放数据文件和事务日志。 DBCC CHECKDB没有显示任何错误,没有SQL Server内存转储
我发现存在类似的问题,但是对于早期版本的SQL Server(2012-2014):https://www.sqlskills.com/blogs/paul/20122014-bug-that-can-cause-database-or-server-to-go-offline/
从操作系统角度看,情况看起来不错(事件发生时,事件日志中没有错误)。
有人提示如何解决此问题吗?