【问题标题】:Where to see SQL Server start/stop logs?在哪里查看 SQL Server 启动/停止日志?
【发布时间】:2009-09-23 03:25:05
【问题描述】:

我想知道在哪里可以查看每个实例的 SQL Server 启动/停止日志和 SQL Server 代理/作业启动/停止日志?我正在开发一些工具来监视 SQL Server 状态。我正在使用 SQL Server 2008 Enterprise。

提前致谢, 乔治

【问题讨论】:

  • 你问过@serverfault.com 吗?

标签: sql sql-server sql-server-2008 events


【解决方案1】:

默认情况下,SQL Server 错误日志存储在 Program Files\Microsoft SQL Server\MSSQL\Log 目录中。最新的错误日志文件称为 ERRORLOG。如果您停止并重新启动 SQL Server,旧日志将被归档并创建一个新日志。此外,您可以通过执行 DBCC ERRORLOG 命令或 sp_cycle_errorlog 系统过程来重新循环错误日志。

http://sqlserverpedia.com/wiki/SQL_Server_Error_Logs

【讨论】:

【解决方案2】:

有一些未记录但众所周知的系统过程可以从 SQL 本身读取错误日志:

  • exec xp_enumerrorlogs 1 将列出 SQL 引擎错误日志文件编号
  • exec xp_readerrorlog <errorlognumber>, 1 将返回请求的引擎错误日志文件的内容。
  • exec xp_enumerrorlogs 2 将列出代理错误日志文件编号
  • exec xp_readerrorlog <errorlognumber>, 2 将返回请求的代理错误日志文件的内容。

这些是 Management Studio 调用以显示引擎和代理日志的过程。

【讨论】:

  • 结果是一个普通的结果集,每行一个文本行。您可以根据自己的意愿对其进行操作,包括将其导出。
【解决方案3】:

如果您使用的是 .NET,您还可以使用 Microsoft.SqlServer 命名空间以编程方式获取大部分数据。例如,我使用 Microsoft.SqlServer.Rmo 来获取合并复制发布的订阅者的状态。根据您使用它的目的,您可能能够避免直接访问(并且可能是解析?)日志。

查看Microsoft.SqlServer.Management.Smo.Agent 命名空间以获取特定于 SQL 代理的数据。

通过使用 Microsoft.SqlServer.Management.Smo.Agent 命名空间,您可以执行以下操作

  • 查看和修改 SQL Server 代理设置。
  • 设置和管理操作员。
  • 根据系统消息或性能设置和管理警报 条件。
  • 设置和管理具有多个步骤和计划的作业。
  • 管理运行作业的子系统的代理帐户。
  • 管理在多台服务器上运行的作业。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-21
    • 1970-01-01
    • 1970-01-01
    • 2014-10-06
    • 2022-08-17
    • 1970-01-01
    相关资源
    最近更新 更多