如果 SQL Server 实例无法写入任何 Windows 事件日志,它是否会脱机?
在Windows系统事件日志中发现这两个错误:
The system failed to flush data to the transaction log. Corruption may occur.
initerrlog: Could not open error log file 'E:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Log\ERRORLOG'. Operating system error = 5#Access is denied.#.
据我所知,这些问题与我们的 SQL Server 实例完全离线有关。
我已经验证了 SQL Server 代理和数据库引擎服务帐户的安全性,它们具有上述日志路径所需的访问权限。SQL Server 错误日志或 Windows 日志中没有任何内容表明有人更改了内容,或者他们不知何故自动失去了访问权限。
如果您需要更多信息,请告诉我,我提前感谢您提供的任何指点。
答案1
我无法完全回答您的问题,但希望我能让您更接近您需要的道路。我很确定那些不是 Windows 事件日志,而是 MSSQL 本身内的事件日志。听起来您的数据库处于完全恢复模式,并且根据您发布的错误,很可能您已经用完了空间或事务日志文件上的权限已损坏。如果空间不足,您将不得不切换到简单备份模式并进行备份,以便可以刷新事务日志文件并恢复空间。如果您碰巧能够神奇地扩展驱动器上的空间,那也很好。一旦解决了这个紧迫的问题,您仍然需要进行维护任务来备份您的数据库,以便可以清除日志。