Sql Server 日志 和 代理錯誤日一般在實例重新啟動后自己主動切換,假設實例久未重新啟動,將可能積累太多的日志,不方便查看.
查看錯誤日志大小:
--查看日志大小 EXEC xp_enumerrorlogs --sqlserver錯誤日志 EXEC xp_enumerrorlogs 1 --sqlserver錯誤日志 EXEC xp_enumerrorlogs 2 --代理日志
日志切換:(須要權限: sysadmin 固定server角色的成員)
-- "Sql Server 日志"切換 exec msdb.dbo.sp_cycle_errorlog -- "代理錯誤日志"切換 exec msdb.dbo.sp_cycle_agent_errorlog
日志查看:
-- 日志查看 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 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'