名站网址导航为大家提供关于数据库教程相关的教程网站知识。
自动化收集SQLSERVER诊断信息的相关工具选择及使用介绍
自动化收集SQLSERVER诊断信息,相信很多人都遇到过当SQLSERVER出现问题的时候,而您又解决不了需要DBA或者微软售后支持工程师去帮忙解决问题,那么他们一般需要您收集一些系统信息和SQLSERVER诊断信息。 而收集这些信息又需,咱们要按照步骤一步一步把需要的信息收集全,在收集的过程中,往往折腾几次就头痛了,解决问题的相关工具,这个问题随着一个在SQL2005里的相关工具的出现而得到了解决,这个相关工具可以自动收集很多信息,扩展了原来的应用,增强了其信息收集的能力,这个相关工具就是SQLDIAG.exe SQL代表:SQLSERVER DIAG 代表Diagnostic(诊断),SQLDiag这个相关工具可以收集的信息有:,(1)Windows事件日志,(2)SQLSERVER ErrorLog,以及SQL配置信息,一些重要运行信息,(3)SQL曾经产生的DUMP网站网站文件,(4)站点服务器系统配置信息,(5)同时包含有系统和SQL性能计数器的性能日志,(6)站点服务器端Trace,这个相关工具可以帮助DBA自动打开站点服务器端Trace,比用SQLSERVER Profiler要安全多了,因为SQLSERVER Profiler属于客户端跟踪相关工具,而且需要消耗系统资源跟站点服务器通信需要,进程间通信,而这个相关工具用的是站点服务器端Trace,SQLDiag相关工具默认安装在:C:\Program Files\Microsoft SQL Server\90\Tools\Binn,C盘是我的SQLSERVER安装路径,大家安装SQLSERVER不是选择默认路径的话可能跟我不一样,使用相关工具,这个相关工具需要在开始执行命令行窗口运行,可以在开始执行命令行直接运行\SQLdiag.exe,相关工具会使用默认的配置,收集系统信息,把SQLDIAG.exe拖到cmd窗口,按回车键就可以启动了,详细步骤看下图,当出现SQLDIAG Collection started. Press Ctrl C to stop. 信息以后就按Crtl C,终止这个相关工具的执行。,SQLDIAG 相关工具会在Binn目录下产生三个XML网站网站文件,并且产生一个SQLDIAG子目录,存放刚才收集的信息,使用默认配置(即Binn目录下的SQLDiag.xml)只会收到:,(1)SQL errorlog网站网站文件内容,以及SQL配置信息和一些重要运行信息(XXXX_sp_sqldiag_Shutdown.out),(2)SQL曾经产生的dump记录(XXXX_SQLDUMPER_ERRORLOG.log),(3)站点服务器系统配置信息(XXXX_MSINFO32.txt),(4)SQL默认开启的Default Trace网站网站文件(log_XXX.trc),使用配置网站网站文件,您可以使用另外两个SQLDiag自带的XML配置网站网站文件SD_General.xml 和 SD_Detailed.xml,这两个xml网站网站文件跟SQLDiag.exe在同一目录下,,假如如果使用这两个配置网站网站文件就能够收集到SQL Trace和性能日志。,但是假如如果要使用这两个配置网站网站文件所产生的网站网站文件就会比较大,放在SQL安装目录下就不再合适,,需要在SQLDiag里指定输出网站网站文件路径。,例子 在cmd下输入:,格式:SQLdiag.exe /I
/O ,我使用SD_General.XML配置网站网站文件,配置F:\SQLDIAOUT为输出目录,这个网站网站文件夹不用预先创建好,他最帮您自动创建,SQLdiag.exe /I SD_General.XML /O F:\SQLDIAOUT,运行的过程中能够看到SQLdiag开启Perfmon(AddingPerfmon counters)和Trace(Starting Profiler Trace),当问题跟踪完毕以后,再按Ctrl C相关工具会停止日志收集。,有些信息是在相关工具关闭前收集的,所以可能要等一会才能完全停止,而在目录下 F:\SQLDIAOUT目录,可以看到以下信息,(1)SQL Trace网站网站文件(XXXX_sp_trace.trc),(2)Windows事件日志(XXXX_applog_Shutdown.txt,XXXX_seclog_Shutdown.txt,XXXX_syslog_Shutdown.txt),(3)Windows性能日志(SQLdiag.blg) 用性能监视器也打不开这个网站网站文件,要使用系统自带的小相关工具,总结,实际上,两个XML配置网站网站文件SD_General.xml 和 SD_Detailed.xml的主要区别是SD_Detailed.xml会在SQL Trace里收集更多的事件,,所以输出会要大很多。,DBA可以根据需要选择其中一个,缺点:,SQLdiag的唯一缺点,是不会定期查询系统管理视图DMV,,所以建议自动化信息收集是SQLdiag(使用SD_General.xml 和 SD_Detailed.xml做配置网站网站文件),在加上一些,系统动态管理视图作为辅助
诊断SQLSERVER问题经常用的的日志
这里主要有两个:
(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
复制具体相关代码 具体相关代码如下:
关于数据库教程相关的教程网站知识今天我们就说到这里了,希望可以帮到大家。