原文: 点击打开链接
Sql Server 日志 和 代理错误日一般在实例重启后自动切换,如果实例久未重启,将可能积累太多的日志,不方便查看.
查看错误日志大小:
[sql] view plain copy
- --查看日志大小
- EXEC xp_enumerrorlogs --sqlserver错误日志
- EXEC xp_enumerrorlogs 1 --sqlserver错误日志
- EXEC xp_enumerrorlogs 2 --代理日志
日志切换:(需要权限: sysadmin 固定服务器角色的成员)
[sql] view plain copy
- -- "Sql Server 日志"切换
- exec msdb.dbo.sp_cycle_errorlog
- -- "代理错误日志"切换
- exec msdb.dbo.sp_cycle_agent_errorlog
日志查看:
[sql] view plain copy
- -- 日志查看
- exec xp_readerrorlog @FileNum,@Type,@SearchText1,@SearchText2,@StartTime,@EndTime,@order
- @FileNum : 日志编号
- @Type : 查询类型(1:Sql Server 日志 ; 2:代理错误日志)
- @SearchText1 : 搜索文本
- @SearchText2 : 搜索文本(与 @SearchText1 为"与"关系)
- @StartTime : 日志查询起始时间
- @StartTime : 日志查询结束时间
- @order : 时间排序(ASC 或 DESC)
示例:
[sql] view plain copy
- -- 查看当前"Sql Server 日志"死锁
- exec xp_readerrorlog 0,1,'deadlock victim',NULL,'2015-06-01','2015-06-30','desc'
- -- 查看第二个"Sql Server 日志" 文本中有 "error" 和 "Server" 的行
- exec xp_readerrorlog 1,1,'error','Server','2015-06-01','2015-06-30','asc'
- -- 查看当前"代理错误日志" 文本中有 "错误" 的行
- exec xp_readerrorlog 0,2,'错误',NULL,NULL,NULL,'desc'
查看错误日志的方法:
--如果SQL Server还能正常使用,直接查看一下最近的错误日志
EXEC xp_readerrorlog
--或者先查到路径,再查看文本
--查找错误日志路径
SELECT [path] FROM sys.traces AS t
/*
D:\Program Files\Microsoft SQL Server\MSSQL12.SQLSERVER2014\MSSQL\Log\log_1019.trc
*/
--上面的路径,去掉最后面的文件,进入对应目录, 用 notepad++ 或 记事本 打开 ERRORLOG 文件,查看最近的错误日志
--如果SQL Server不能正常使用,那就进入到服务,右键“属性”,“可执行文件路径”,复制出来,进入相应的Log文件夹
--当然,这个与日志的路径是有区别的,需要参照上面最后一个文件夹改一下
/*
D:\Program Files\Microsoft SQL Server\MSSQL12.SQLSERVER2014\MSSQL\Binn\sqlservr.exe
*/