通过查看SQL error Log, 可以确保操作过程都成功完成(比如说, 备份, 还原操作, 批命令, 或者其他的脚本和过程). 特别是如果一个SQL server实例被停止或重启的时候,查看SQL error log对于检测任何当前的或者潜在的问题领域非常有用, 领域包括自动恢复消息(automatic recovery messages ), 内核消息, 或者其他的服务器等级的错误消息.
可以通过SQL Server Management Studio或者任何的文本编辑器来查看SQL Error Log.
默认情况下, sql error log的位置在:
%PROGRAMFILES%\Microsoft SQL Server\MSSQL.n\MSSQL\LOG\ERRORLOG and ERRORLOG.N
尽管sp_cycle_errorlog这个系统存储过程可以用来指定在不重启SQL Server实例的情况下循环记录日志文件, 每次当一个SQL Server Instance启动的时候, 一个新的error log就会被创建出来. 典型地, SQL Server会保留之前的六个日志, 并且给予最近的备份日志以后缀名.1, 第二个最近的给予后缀名.2, 以此类推.
当前的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
摘自:
Viewing the SQL Server Error Log
http://msdn.microsoft.com/en-us/library/ms187885.aspx
Reading the SQL Server log files using TSQL
http://www.mssqltips.com/sqlservertip/1476/reading-the-sql-server-log-files-using-tsql/