`
sibyl_pisces
  • 浏览: 145916 次
  • 性别: Icon_minigender_2
  • 来自: 青岛
社区版块
存档分类
最新评论

诊断SQLSERVER问题常用的日志

 
阅读更多

http://www.cnblogs.com/lyhabc/archive/2013/02/12/2910623.html

 

这里主要有两个:

(1)Windows事件日志

(2)SQLSERVER ErrorLog

1、Windows事件日志 Event Log

作为一个Windows开启和管理的服务程序,Windows会在自己的系统日志system log里记录

SQLSERVER这个服务的启动、正常关闭、异常关闭等信息。

SQLSERVER也会把自己的一些概要信息同时记录在Windows的应用程序日志里Application Log

而Windows日志本身又能够反映操作系统的健康情况,是否有任何软件或硬件的异常。

如果Windows本身不能正常工作,SQLSERVER的运行一定会受到影响。

当遇到一些问题需要微软的售后工程师解决的时候,Windows事件日志是一个很好的界定问题性质的工具。

在Windows里,点击“开始”-》运行  -》输入:eventvwr  点确定 就可以打开事件查看器Event Viewer

在Windows7、Windows2008和Windows2008R2里面,界面会有所不同,但是主要内容还是类似的

 

Windows主要有三种日志:应用程序,安全,系统 (我的系统是Windows7)

对于SQLSERVER会主要关心应用程序日志和系统日志。当处理一些连接认证问题时,可能会偶尔用上安全日志。

日志里的每一条记录,都属于信息警告错误中的一类。

每条记录都会标明日期、时间、来源、事件ID。

如果在应用日志里,从SQLSERVER产生的记录其来源名称都会是MSSQLSERVER

双击某一条记录,Windows会弹出一个对话框,显示记录的具体内容

 

在这里说一下我遇到的机器内存不足,导致SQLSERVER需要把内存换出去硬盘的情况,导致经常SQLSERVER反应缓慢

事件查看器显示的信息就是上面那个截图,一句话概括就是:系统内存不足

我的机器情况:

 

8GB内存没有用尽,因为32位操作系统的关系,迟一点打算更换为64位Windows7

 

所以平时多看一下事件查看器或者遇到问题的时候就先看事件查看器,一定能找到一些问题的蛛丝马迹

另外一个,在事件查看器里,还能把日志另存为*.evt文件或*.txt文件,以供DBA带到其他机器上打开分析。

打开一个*.evt文件的方法是:是右键点击“事件查看器(本地)”树型结构---》打开保存的日志

用这种方法,DBA就能像看本机上的日志记录一样,分析从其他机器保存下来的日志文件了

保存的时候可以保存单个事件或者整个类别的事件

最后,用事件日志查看器打开的日志,其时间会和时区有关系的,

不同时区设置的机器打开一个*.evt文件,其显示的时间会不一样。

例如,如果某个错误信息发生在美国的白天,那么用在中国的机器打开,其时间会显示在晚上

如果你按美国时间找,就会找不到了。但是保存成 *.txt格式 文本文件格式就不会有这种问题

 


2、SQLSERVER ErrorLog文件

检查完Windows的基本状况后,就可以开始检查SQLSERVER的健康状况。

不管你是遇到什么问题,建议第一个要检查的是SQLSERVER的ErrorLog文件

当SQLSERVER启动的时候,会在某个固定的路径下生成一个“errorlog”的文件

SQLSERVER默认会保留7份errorlog文件,按照时间顺序,依次用文件扩名.1,.2,.3,...,.6表示。

每重启一次服务,文件扩展名都会加一,最早的那份会被删除。

 

日志文件的默认路径是安装路径下的C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG\LOG子目录。

C:\Program Files是我的机器的安装路径,这个路径是你安装SQLSERVER的时候选择的

当然DBA也能够修改其设置(在配置管理器里,双击sql服务-》高级-》转储目录)

发觉Windows对错误日志或者目录都叫转储的,像某些软件,例如QQ,有道词典好像也是用dmp格式的转储文件

 

说回正题o(∩_∩)o 

如果你要分析的是一台陌生的服务器,可以用很多种方法找到errorlog路径。

一种比较简单的方法是在SQLSERVER 配置管理器里选择SQL服务,在其属性-》高级里找到一个“启动参数”的高级属性

在属性字符串里,会有一个“-e”的参数。他的后面就是跟errorlog文件的位置

 

或者干脆在上面说的转储目录就可以看到了

errorlog文件以文本方式记录,用任何文件编辑器,包括记事本,SSMS都能打开

一般来讲,errorlog文件的大小不会很大。用这些工具完全能够满足需求

但是,errorlog本身非常重要,他记录了SQL的整个开启、运行、终止过程。

如果SQLSERVER遇到了比较严重的问题,在errorlog里都会有所显示

ErrorLog显示包括以下内容:

(1)SQL的版本,以及Windows和Processor基本信息

(2)SQL的启动参数,以及认证模式,内存分配模式

(3)每个数据库是否能够被正常打开。如果不能,原因是什么

(4)数据库损坏相关的错误

(5)数据库备份与恢复动作记录

(6)DBCC CHECKDB记录

(7)内存相关的错误和警告

(8)SQL调度出现异常时的警告。一般SERVER HANG 服务器死机会伴随着有这些警告

(9)SQL I/O操作遇到长时间延迟的警告

(10)SQL在运行过程中遇到的其他级别比较高的错误

(11)SQL内部的访问越界错误(Access Violation)

(12)SQL服务关闭时间

在检查SQLSERVER相关问题的时候,总是从errorlog着手,先确认errorlog里是干净的。

如果errorlog里有一些错误或警告,就要确认这些错误和警告发生的时间,是不是前端感觉到问题的时间。

如果时间能对得上,那就要着重分析一下

如果开启一些设置,在errorlog里还能看到的有用信息有:

(1)所有用户成功或失败的登入

(2)死锁以及其参与者的信息:需要打开跟踪标志1222 或1204

1 DBCC TRACEON(1222)
2 
3 DBCC TRACEON(1204)

 有时候errorlog也不是万能的哦?他不能反映的问题有:

(1)阻塞问题。只要阻塞还没有严重影响SQLSERVER的线程调度,errorlog里是不会有体现

(2)普通性能问题,超时问题。如果性能问题不是由于内存使用异常、线程调度异常,或者是I/O子系统反应非常缓慢,

而是由于表格或语句设计导致,errorlog里也不会有所反映

(3)Windows层面异常。如果Windows层面出现工作不正常,或者服务器不响应,SQLSERVER很难自我判断的

上面这三个问题,errorlog里一般不会有所体现。这也是我们为什麽要第一步就要检查Event Log的原因

分享到:
评论

相关推荐

    sqlserver日志查看工具

    SQL Server日志查看工具是数据库管理员和开发人员的重要辅助工具,它可以帮助我们深入了解数据库的运行状态,诊断问题,以及进行故障排除。Log Explorer 4.2 是一款专门针对Microsoft SQL Server的日志分析软件,...

    SQLSERVER日志分析工具

    SQLSERVER日志分析工具是一种专门针对Microsoft SQL Server数据库系统设计的实用软件,旨在帮助数据库管理员和开发者有效地管理和解析SQL Server的日志数据。日志分析在数据库管理中扮演着至关重要的角色,因为它能...

    诊断SQLSERVER问题常用的日志概述及使用

    诊断SQLSERVER问题常用的日志 这里主要有两个: (1)Windows事件日志 (2)SQLSERVER ErrorLog 1、Windows事件日志 Event Log 作为一个Windows开启和管理的服务程序,Windows会在自己的系统日志system log里记录SQL...

    SQL Server数据库状态监控 – 错误日志

    SQL Server和SQL Server Agent服务在Windows事件日志中分别以"MSSQLSERVER"和"SQLSERVERAGENT"作为来源,提供了一定程度的错误和信息记录。 - **SQL Server错误日志**:SQL Server的错误日志与Windows事件日志类似...

    SQL SERVER 2008安装日志

    在SQL Server 2008的安装过程中,可能会遇到各种问题,导致安装失败或出现异常。当遇到困难时,安装日志是排查问题的关键资源。它记录了安装过程中的每一步骤,包括成功操作和错误信息,对于诊断安装失败的原因至关...

    Log Explorer sql server 2005 数据库日志查看器

    Log Explorer是一款专为SQL Server 2005设计的日志查看和分析工具,它提供了对数据库事务日志的深入访问,使得数据库管理员可以方便地查看、分析和管理SQL Server数据库的日志信息。这款软件在数据库维护和问题排查...

    Sql Server 日志清理工具

    Sql Server日志清理工具是一款专为数据库管理员设计的实用软件,用于有效管理和优化Sql Server数据库的日志文件。在Sql Server的运行过程中,日志文件(如事务日志和错误日志)会不断增长,如果不进行适当的维护,...

    Sql Server 日志清理工具 v2.0

    Sql Server日志清理工具v2.0是一款专为数据库管理员设计的应用程序,旨在有效地管理和优化Sql Server数据库的日志文件。日志文件在Sql Server中扮演着至关重要的角色,它们记录了所有的事务操作,确保数据的一致性和...

    SQL SERVER的日志查看工具

    总的来说,Log Explorer是一个强大的SQL Server日志管理工具,尤其对于需要深入分析和挖掘事务日志的DBA来说,它是不可或缺的辅助工具。通过熟练掌握并运用这个工具,可以提升数据库管理的效率和安全性。

    SQLServer Log数据库查看器

    了解并熟练掌握查看SQL Server日志数据库的方法,不仅可以提高故障排查的效率,还能帮助优化数据库性能,保证系统的稳定运行。同时,通过定期分析日志,可以提前发现潜在的问题,防止故障发生,从而提升整体的数据库...

    le_420_sqlserver sql 2005 Log

    标题 "le_420_sqlserver sql 2005 Log" 暗示了我们主要探讨的是关于SQL Server 2005的日志管理,特别是针对64位操作系统的日志查看。在SQL Server中,日志是数据库运行的重要组成部分,它记录了所有事务的更改,对于...

    SQL Server Native Client 10.0

    SQL Server Native Client 10.0 是微软推出的一款用于访问SQL Server数据库的客户端库,它在SQL Server 2005版本中首次引入,并在后续的SQL Server 2008中得到进一步增强。这个库提供了OLE DB供应商和ODBC驱动程序,...

    SQL server Native Client 10.0

    对于开发人员,SQL Server Native Client 10.0提供了丰富的错误处理和诊断工具,包括跟踪和日志记录功能,帮助调试和优化应用程序的数据库访问性能。 总结来说,SQL Server Native Client 10.0是64位环境下的重要...

    sql server 数据库巡检

    包括检查数据库的磁盘空间使用信息、日志文件大小及使用情况、表的磁盘空间使用信息、磁盘读写情况、I/O 工作情况、锁与等待、死锁、用户和进程信息、活动用户和进程的信息、SQL Server 的实际内存占用、所有数据库...

    SQLServer进程阻塞的检查和解决办法

    Stored Procedure sp_Kill_lockProcess 是一个用于解决 SQL Server 进程阻塞问题的存储过程。该存储过程可以杀死阻塞的进程,从而释放系统资源和提高系统性能。 在 sp_Kill_lockProcess 存储过程中,我们首先创建...

    SQL Server 性能监视与优化.pdf

    1. **SQL跟踪简介**:SQL跟踪是一种记录SQL Server活动的方法,可以帮助诊断问题。包括但不限于: - **SQL跟踪结构**:定义跟踪文件、事件过滤器等。 - **使用SQL跟踪**:启动、停止跟踪,以及查看跟踪结果。 2. *...

    sqlserver问题解决方案

    - **日志查看**:查看SQL Server的错误日志,获取更详细的错误信息,以便定位问题。 总之,解决SQL Server连接失败的问题需要综合考虑服务器、客户端和网络环境的多个方面。通过逐步排查,通常可以找到问题的根源...

    sql server健康检查脚本

    SQL Server健康检查脚本通常包含一系列查询,这些查询旨在收集关于服务器状态的关键信息,包括但不限于CPU使用率、内存使用情况、磁盘I/O性能、数据库事务日志的增长、备份状况、索引碎片、锁和阻塞等。通过执行这些...

    sql server 2000 jdbc 驱动

    在处理错误时,仔细检查日志信息,这将帮助诊断和解决问题。 总之,使用SQL Server 2000 JDBC驱动连接数据库是一个涉及下载驱动、配置项目、编写连接代码和执行SQL操作的过程。理解这些步骤和原理对于Java开发者来...

Global site tag (gtag.js) - Google Analytics