正在读取 SQL 服务器日志文件

Reading SQL SERVER Log file

我的 SQL Server 2008 R2 生产服务器发生中断并完全停机。我们必须重新启动 VM 才能使其恢复运行。该服务器上有多个作业 运行,我怀疑是由于并发问题导致服务器宕机。但是,为了了解根本原因,我在我的服务器上使用了以下函数:

         select [Current LSN],
         [Operation],
         [Transaction Name],
         [Transaction ID],
         [Transaction SID],
         [SPID],
         [Begin Time]
         FROM   ::fn_dblog(null,null)

但是,它显示的是重启后发生的交易。你们能建议任何方法来了解根本原因吗?提前致谢。

您可能想查看 ERRORLOG,而不是日志。

日志放错地方有很多原因:

  • 每个数据库一个日志。所以你不能查看 the 日志,而是查看一个日志。
  • 日志不适合人类阅读
  • 日志没有抓取错误信息

另一方面,出于以下几个原因,ERRORLOG 是正确的位置:

  • 整个服务器只有一个ERRORLOG
  • ERRORLOG 是供人类阅读的文本
  • 错误和异常可能在 ERRORLOG
  • 中被追踪

有关于Viewing the SQL Server Error Log的文章,但我的建议是简单地在记事本中打开错误日志并阅读。请记住,错误日志是 循环 因此在上次服务器重新启动时,旧错误日志被重命名为 ERRORLOG.1 并打开了一个新的 ERRORLOG。如果发生多次重启,则相关的错误日志可能更早,如 ERRORLOG.2、ERRORLOG.3 等。您需要根据时间确定正确的错误日志。错误日志中的每个条目都带有时间戳。查找接近事件发生时间的条目。

很可能崩溃的原因记录在 ERORRLOG.1 的末尾