2009-09-23 30 views
7

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

由于事先 乔治

+1

你问@ serverfault.com? – ethyreal 2009-09-23 03:46:07

回答

6

默认情况下,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

+0

谢谢!我找到了答案! – George2 2009-09-23 04:14:32

+0

基于此的程序文件\ Microsoft SQL Server \ MSSQL.n \ MSSQL \ LOG \ ERRORLOG和ERRORLOG.n':https://technet.microsoft.com/en-us/library/ms187885(v=sql.105 ).aspx – Tilo 2017-06-15 21:52:15

+0

不幸的是,anwer中的链接被破坏 – AFract 2017-10-31 08:19:38

4

有一些无证,但众所周知的系统程序来读取SQL本身的错误日志:

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

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

+1

我们可以导出那些错误日志吗? – 2009-09-23 04:04:22

+2

结果是一个普通的结果集,每行一个文本行。您可以根据自己的意愿操作它,包括导出它。 – 2009-09-23 04:09:33

4

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

检出特定于SQL代理的数据的Microsoft.SqlServer.Management.Smo.Agent名称空间。

通过使用Microsoft.SqlServer.Management.Smo.Agent命名空间,你可以做以下

  • 查看和修改SQL Server代理设置。
  • 设置和管理操作员。
  • 根据系统消息或性能 条件设置和管理警报。
  • 通过多个步骤和时间表设置和管理作业。
  • 管理运行作业的子系统的代理帐户。
  • 管理在多台服务器上运行的作业。
相关问题