SQL Server ErrorLog

SQL Server 使用ErrorLog记录SQL Server启动和运行过程中的信息,具体信息参考:《SQLSERVER errorlog讲解》。通常来说,ErrorLog是指SQL Server Error Log,其实,SQL Server存在另外一种类型,SQL Server Agent ErrorLog,用于记录Agent的运行信息。

默认情况下,SQL Server 保存 7 个 ErrorLog 文件,分别命名为: ErrorLog,ErrorLog.n(n=1,2,3,4,5,6)。ErrorLog 文件包含的信息最新,ErrorLog.6 文件包含的信息最老。每次重启 SQL Server 时,这些日志文件都做如下循环: 删除 ErrorLog.6 文件,将ErrorLog.5重命名为ErrorLog.6,依次类推,直到将ErrorLog重命名为ErrorLog.1,最后新建一个ErrorLog文件,用于存储SQL Server 运行过程的信息。

SQL Server Agent ErrorLog的文件名是:SQLAgent.n(n=1,2,3,4,5,,,,)。

ErrorLog的存放路径是在:C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Log

1,使用SSMS查看

2,使用TSQL 脚本查看

2.1 查看Errorlog的信息

使用 sys.xp_enumerrorlogs 查看 ErrorLog Files的创建日期和大小,其创建日期就是第一条记录插入的日期。

exec sys.xp_enumerrorlogs

切换ErrorLog,查看ErrorLog Files的信息

dbcc errorlog

2.2,读取ErrorLog的信息

SQL Server提供了存储过程sys.xp_readerrorlog及sys.sp_readerrorlog,用于查看Errorlog记录的错误日志。

sys.xp_readerrorlog 有7个参数

1. 存档编号(0~99),其值是 sys.xp_enumerrorlogs返回的Archive#字段的值, 0 代表的是ErrorLog,1代表的是ErrorLog.1。

2. 日志类型(1为SQL Server日志,2为SQL Server Agent日志)

3. 查询包含的字符串

4. 查询包含的字符串,参数4和参数5的逻辑关系是and(与关系)

5. LogDate开始时间

6. LogDate结束时间

7. 结果排序,按LogDate排序(Desc、Asc)

sys.sp_readerrorlog有四个参数,和sys.xp_readerrorlog的前四个参数相同,sys.sp_readerrorlog内部使用sys.xp_readerrorlog来实现。

查看登陆失败的错误日志,可以看到参数4和参数5是过滤Text字段。

exec sys.sp_readerrorlog 0,1,‘login‘,‘failed‘

3,ErrorLog的Rollover

如果Current ErrorLog 文件很大,那么加载和查看的过程十分缓慢,可以运行 sys.sp_cycle_errorlog 或 DBCC ErrorLog,或exec (‘DBCC ErrorLog‘),手动强制ErrorLog 文件迭代,避免单个ErrorLog File Size过大。每次启动 SQL Server 时,ErrorLog会自动迭代。由于ErrorLog的Rollover会删除时间最老的ErrorLog.6 文件,如果需要保存ErrorLog,在执行 sys.sp_cycle_errorlog 或 DBCC ErrorLog 之前,需要将ErrorLog.6 文件复制到其他存储介质上。

推荐阅读:

SQL Server 错误日志过滤(ERRORLOG)

SQL Server 错误日志收缩(ERRORLOG)

Appendix

Talking about SQL Server and SQL Server agent error logs. Here are few interesting things that we can do from query analyzer in order to read and analyze the SQL Server and agent error logs.

1, sys.XP_READERRORLOG

Syntax: xp_ReadErrorLog a,b,c,d

a -> default is 0. It accepts only integers. 0 mean the current error log, 1 means 1st archive and so on.

b -> default is 1. Accepts value equals 1 for SQL Server error log and 2 for SQL Agent error log.

c -> accepts varchar chanracter upto 255 characters. Default is Null.

d -> accepts varchar chanracter upto 255 characters. Default is Null.

1) To read the current SQL Server error log i.e. ERRORLOG file

xp_readerrorlog
xp_readerrorlog 0
xp_readerrorlog 0,1 

2) TO read SQL Server error log archive 1 i.e. ERRORLOG.1 file

xp_readerrorlog 1
xp_readerrorlog 1,1 

3) To read the current SQL Server Agent error log i.e. SQLAGENT.OUT file

xp_readerrorlog 0,2 

4) To read SQL Server error log archive 1 i.e. SQLAGENT.1 file

xp_readerrorlog 1,2 

5) To search for any specific text in current SQL Server error log

xp_ReadErrorLog 0, 1, ‘Failed‘ 

6) To search for entries in current SQL Server error log which contain both ‘Failed’ and ‘Login’ in a row.

xp_ReadErrorLog 0, 1, ‘Failed‘.‘Login‘

2,sys.XP_ENUMERRORLOGS

Syntax: xp_enumerrorlogs a

a -> default is 1. Accepts value equals 1 for SQL Server error log and 2 for SQL Agent error log.

1) List all the avilable SQL Server error log archives, there last modified date and size.

xp_enumerrorlogs
xp_enumerrorlogs 1

2) List all the avilable SQL Server Agent error log archives, there last modified date and size.

xp_enumerrorlogs 2

3,recycle errorlog

To Recycle Current SQL Server Error Log

exec sp_cycle_errorlog

To Recycle Current SQL Server Agent Error Log

exec sp_cycle_agent_errorlog

参考doc:

SQL SERVER – Read Error Log Data using sp_readerrorlog – System Stored Procedure

Reading the SQL Server log files using TSQL

Searching through the SQL Server error logs

时间: 2024-10-07 07:00:29

SQL Server ErrorLog的相关文章

Microsoft SQL Server Version List(SQL Server 版本)

原帖地址 What version of SQL Server do I have? This unofficial build chart lists all of the known Service Packs (SP), Cumulative Updates (CU), patches, hotfixes and other builds of MS SQL Server 2014, 2012, 2008 R2, 2008, 2005, 2000, 7.0, 6.5 and 6.0 tha

How can I create a dump of SQL Server?

https://blogs.msdn.microsoft.com/askjay/2009/12/29/basic-debugging-concepts-and-setup/ You can create a memory dump of the SQL Server process space in several ways.  There are many external tools that can help you accomplish this such as userdump.exe

Microsoft SQL Server, Error: 823 一次真实的经历

1,Case Description 有Dev skype 我,说在使用SSMS 打开DB的时候,报错 “The operating system returned error 59(An unexpected network error occurred.) to SQL Server during a read at offset 0x00000000474000 in file '\\Serveryyy\\xxxx.ndf'. Additional messages in the SQL

(转) 从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn)

原文地址: http://www.cnblogs.com/lyhabc/p/4682986.html 这一篇是从0开始搭建SQL Server AlwaysOn 的第三篇,这一篇才真正开始搭建AlwaysOn,前两篇是为搭建AlwaysOn 做准备的 步骤 这一篇依然使用step by step的方式介绍怎麽搭建AlwaysOn 请先使用本地用户Administrator登录这两个集群节点并执行下面的操作,先不要用域用户DCADMIN登录 1.两个集群节点都需先安装.NET Framework

sql server 错误日志errorlog

一 .概述 SQL Server 将某些系统事件和用户定义事件记录到 SQL Server 错误日志和 Microsoft Windows 应用程序日志中. 这两种日志都会自动给所有记录事件加上时间戳. 使用 SQL Server 错误日志中的信息可以解决SQL Server的相关问题. 查看 SQL Server 错误日志可以确保进程(例如,备份和还原操作.批处理命令或其他脚本和进程)成功完成. 此功能可用于帮助检测任何当前或潜在的问题领域,包括自动恢复消息(尤其是在 SQL Server 实

SQL SERVER 作业浅析

作业介绍 SQL SERVER的作业是一系列由SQL SERVER代理按顺序执行的指定操作.作业可以执行一系列活动,包括运行Transact-SQL脚本.命令行应用程序.Microsoft ActiveX脚本.Integration Services 包.Analysis Services 命令和查询或复制任务.作业可以运行重复任务或那些可计划的任务,它们可以通过生成警报来自动通知用户作业状态,从而极大地简化了 SQL Server 管理[参见MSDN]. 创建作业.删除作业.查看作业历史记录.

查看MS SQL SERVER 错误日志

查看目的: 错误日志的查看是确保过程已成功完成(例如,备份和恢复操作,批处理命令,或其他脚本和过程).这可以帮助检测任何当前或潜在的问题,包括自动恢复信息(尤其是如果SQL Server实例已停止并重新启动),内核信息,或其他服务器级别的错误消息. 存放位置: 默认情况下, sql error log的位置(SQL SERVER 2005)在: %PROGRAMFILES%\Microsoft SQL Server\MSSQL.n\MSSQL\LOG\ERRORLOG and ERRORLOG.

5. SQL Server数据库性能监控 - 当前请求

对于在线运行的系统,当前数据库性能监控,通常监视以下几点: (1) 是否有阻塞 (Blocking); (2) 是否有等待 (Waiting),阻塞就是锁 (Lock) 等待; (3) 是否运行时间过长(Long running): (4) 是否有死锁 (Deadlock): sys.dm_exec_query_stats之类,等一些统计性的信息,通常不作为实时告警内容,而是在性能优化时,作为参考. 一. 阻塞/等待/长时间运行 1. SQL Server 2005 及以后版本检查 SELECT

SQL Server错误收集#6

错误#1 22:26 2014-7-30 重置连接数对实例->属性->连接->最大并发连接数不是特别理解,昨天下午心血来潮,把连接数改成1,不断开启新的查询窗口,并没有按预想的出错(当时没有重启数据库服务).今天早上打开电脑,打开对象资源管理器,连接到服务器时报错. 查看ERRORLOG,错误信息很明显,超过最大并发连接数. 2014-07-30 09:35:37.12 登录 错误: 17809,严重性: 20,状态: 3. 2014-07-30 09:35:37.12 登录 Could