首页 > 代码库 > 查看MS SQL SERVER 错误日志
查看MS SQL SERVER 错误日志
查看目的:
错误日志的查看是确保过程已成功完成(例如,备份和恢复操作,批处理命令,或其他脚本和过程)。这可以帮助检测任何当前或潜在的问题,包括自动恢复信息(尤其是如果SQL Server实例已停止并重新启动),内核信息,或其他服务器级别的错误消息。
存放位置:
默认情况下, sql error log的位置(SQL SERVER 2005)在:
%PROGRAMFILES%\Microsoft SQL Server\MSSQL.n\MSSQL\LOG\ERRORLOG and ERRORLOG.N(其中的N表示数字)
补充(转自潇湘隐者,文章链接见文末):
版本 | 路径 |
SQL SERVER 2005 | Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\LOG |
SQL SERVER 2008 | Program Files\Microsoft SQL Server\MSSQL10.实例名\MSSQL\LOG |
SQL SERVER 2008 R2 | Program Files\Microsoft SQL Server\MSSQL10_50.实例名\MSSQL\LOG |
SQL SERVER 2005,默认情况下,错误日志位于 Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\LOG\ERRORLOG 和 ERRORLOG.n 文件中。其中MSSQL.n的区分为:
MSSQL.1:SQLSERVER
MSSQL.2:SSAS
MSSQL.3:SQLExpress
MSSQL.4:SSRS
所以,一般情况下,你只需要关注MSSSQL.1目录下的日志文件
打开这个文件夹我们会看到7个ERRORLOG文件,其中有六个分别以1,2,……,6作为后缀,没有后缀的那个表示当前的错误日志。
每当数据库实例重启时,便会创建一个新的ERRORLOG,SQL Server会保留之前的六个日志, 并且给予最近的备份日志以后缀名.1, 第二个最近的给予后缀名.2, 以此类推。
若想手工进行错误日志的切换可使用:sp_cycle_errorlog命令,它可以关闭当前的错误日志,并进行顺序切换,1变2,2变3,删除最后一个,
这个命令可以代替通过重启来切换错误日志,
也可以使用DBCC ERRORLOG来实现同样的功能。在实际操作中,也可以通过建立一个Job定时去执行该存储过程,这样将日志文件大小控制在合理的范围之内。
查看方式:
可通过SQL Server Management Studio或者任何的文本编辑器来查看SQL Error Log
同时,如果只想查看最近的一个SQL Error Log, 并且还不清楚路径的情况下, 可以使用下面的存储过程.
sp_readerrorlog
xp_readerrorlog
这两个Stored Procedure会带四个参数:
- Value of error log file you want to read: 0 = current, 1 = Archive #1, 2 = Archive #2, etc...
- Log file type: 1 or NULL = error log, 2 = SQL Agent log
- Search string 1: String one you want to search for
- Search string 2: String two you want to search for to further refine the results
例如:
返回第六个archive了的error log的所有行.
EXEC sp_readerrorlog 6
返回第六个Error log中的所有带有2005和exec的所有行.
EXEC sp_readerrorlog 6, 1, ‘2005‘, ‘exec‘
由于 默认Management studio显示结果的长度为256个字符,可能不能查看所有信息,可通过选项进行修改 :
Tools->Options->Query Results->SQL Server->Results to Text-> Maximum nunber of characters displayed in each column
写完这篇博客又发现有位大师写的(很全)
http://www.cnblogs.com/kerrycode/archive/2013/05/28/3104214.html
查看MS SQL SERVER 错误日志