关闭

在SQL Server 2005中使用xp_ReadErrorLog读取错误日志

1446人阅读 评论(0) 收藏 举报

日常管理SQL SERVER时需要经常查看日志文件,但直接查看SQL SERVER错误日志很慢,也很不方便。借助SQL SERVER提供的xp_ReadErrorLog存储过程,可以很方便的查看错误日志。本文将与大家分享该扩展存储过程的参数特性,并举例说明如何使用该存储过程。

  【IT专家网独家】  日常管理SQL Server时需要经常查看日志文件,但SQL SERVER错误日志变得很大(虽然有不同编号的几个日志文件),在查看时还是显得很慢,查找也不太方便,SQL SERVER提供的一个扩展存储过程:xp_ReadErrorLog,借助这个存储过程,可以很方便的查看错误日志。本文将与大家分享该扩展存储过程的参数特性,并举例说明如何使用该存储过程。

  1、参数特性

  扩展存储过程xp_enumerrorlogs有七个参数,以下一一介绍:

  l 参数1,整数,指定需要读取的日志文件的存档号。默认值为0,表示读取目前的日志。

  可以通过执行扩展存储过程xp_enumerrorlogs得到所有错误日志的列表和它们的最后更改日期。

在SQL Server 2005中使用xp_ReadErrorLog读取错误日志 - chenfang65811395@126 - 发呆虫的博客

   图1 xp_enumerrorlogs执行结果

  需要注意的是,扩展存储过程xp_enumerrorlogs参数(1)的用处等同于xp_ReadErrorLog中的参数2 。值为1表明可用的SQL错误日志,值为2显示代理日志。默认值为1 。

  · 参数2,整数,值为1读取SQL错误日志,值为2读取SQL Server代理的日志,默认值为1。

  · 参数3,变长字符串varchar(255) ,是日志条目的第一个搜索字符串,默认值为空。

  · 参数4,变长字符串varchar(255) ,是日志条目的另一个搜索字符串,默认值为空。

  · 参数5,指定要读取的日志的起始时间

    参数6,指定要读取的日志的结束时间

    参数7,指定查询结果的排列顺序:N'asc' 表示升序,N'desc' 表示倒序

/*

即:

1. 存档编号
2. 日志类型(1为SQL Server日志,2为SQL Agent日志)
3. 查询包含的字符串
4. 查询包含的字符串
5. LogDate开始时间
6. 结果排序,按LogDate排序(可以为降序"Desc" Or 升序"Asc")
7. 结果排序,按LogDate排序(可以为降序"Desc" Or 升序"Asc")

*/

 2、举例说明

  对于扩展存储过程来说,有些隐藏的参数项的定义是类似的,但从SQL Server 2000到SQL Server 2005,其扩展存储过程还是有所变化。以下我们所举的例子,以SQL Server 2005为例,来说明 xp_ReadErrorLog扩展存储过程如何使用。

  以下语句所有参数都不指定,表示读取当前错误日志。

  xp_ReadErrorLog

  执行后,将得到类似以下的界面:

在SQL Server 2005中使用xp_ReadErrorLog读取错误日志 - chenfang65811395@126 - 发呆虫的博客
 

  图2 SQL Server 2005中使用xp_ReadErrorLog读取当前错误日志

  SQL Server 2005下该扩展存储过程与SQL Server 2000是不一样的。如果在SQL Server 2000中执行 xp_ReadErrorLog,得到以下的界面:

在SQL Server 2005中使用xp_ReadErrorLog读取错误日志 - chenfang65811395@126 - 发呆虫的博客 

  图3 SQL Server 2000中使用xp_ReadErrorLog读取当前错误日志

  现在,让我们看看参数 2。以下语句表示读取当前SQL Server代理日志。另外,请注意当使用参数2时,扩展存储过程的输出结果的栏标题也在发生变化。

  xp_ReadErrorLog 0,2

  执行后,将得到类似以下的界面:

在SQL Server 2005中使用xp_ReadErrorLog读取错误日志 - chenfang65811395@126 - 发呆虫的博客 

  图4 SQL Server 2005中使用xp_ReadErrorLog读取SQL 代理的当前日志

  现在我们知道,我们可以看到SQL错误日志和SQL代理日志两种类型的日志,所以现在让我们看看参数3和参数4。这两个参数可以用来从日志文件中根据我们实际需要进行检索。例如, 下面这个语句将读取当前的SQL错误日志中返回行同时包含“Failed”和“login”的数据行。这使得我们的管理员能够很容易从SQL错误日志检索这些用户登录失败的日志条目。命令语句如下:

  xp_ReadErrorLog 0, 1, 'Failed', 'login'

  执行后,将得到类似以下的界面:

在SQL Server 2005中使用xp_ReadErrorLog读取错误日志 - chenfang65811395@126 - 发呆虫的博客

   图5 使用xp_ReadError

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1226392次
    • 积分:11742
    • 等级:
    • 排名:第1280名
    • 原创:42篇
    • 转载:384篇
    • 译文:0篇
    • 评论:75条
    最新评论