自动化收集SQLSERVER诊断信息

自动化收集SQLSERVER诊断信息 相信很多人都遇到过当sqlserver出现问题的时候,而你又解决不了需要dba或者微软售后支持工程师 去帮忙解决问题,那么他们一般需要你收集一些系统信息和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 FilesMicrosoft SQL Server90ToolsBinn

C盘是我的SQLSERVER安装路径,大家安装SQLSERVER不是选择默认路径的话可能跟我不一样

 

 

使用工具

 这个工具需要在命令行窗口运行,可以在命令行直接运行SQLdiag.exe,工具会使用默认的配置,收集系统信息

 把SQLDIAG.exe拖到cmd窗口,按回车键就可以启动了,详细步骤看下图

自动化收集SQLSERVER诊断信息

 

 当出现SQLDIAG Collection started.  Press Ctrl+C to stop. 信息以后就按Crtl+C,终止这个工具的执行。

SQLDIAG 工具会在Binn目录下产生三个XML文件,并且产生一个SQLDIAG子目录,存放刚才收集的信息

 

自动化收集SQLSERVER诊断信息

自动化收集SQLSERVER诊断信息

 使用默认配置(即Binn目录下的SQLDiag.xml)只会收到:

(1)SQL errorlog文件内容,香港服务器,以及SQL配置信息和一些重要运行信息(XXXX_sp_sqldiag_Shutdown.out)

(2)SQL曾经产生的dump记录(XXXX_SQLDUMPER_ERRORLOG.log)

Countly移动分析应用 Countly移动分析应用

Countly 是一个实时的、开源的移动分析应用,通过收集来自手机的数据,并将这些数据通过可视化效果展示出来以分析移动应用的使用和最终用户的行为。截至2019年,支持超过2500个网站,16000个移动应用程序和多个桌面应用程序。它从移动,桌面,Web收集数据包括Apple Watch,TvOS和其他互联网连接设备的应用程序,并将这些信息可视化以分析应用程序使用情况和最终用户行为。

Countly移动分析应用 0 查看详情 Countly移动分析应用

(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

 

自动化收集SQLSERVER诊断信息

 

运行的过程中能够看到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做配置文件),在加上一些

系统动态管理视图作为辅助

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/901835.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月28日 20:52:23
下一篇 2025年11月28日 20:57:29

相关推荐

  • 解决绝对定位故障的快速指南

    遭遇绝对定位故障?快速诊断与修复指南,需要具体代码示例 引言: 在Web开发过程中,使用绝对定位是常见的CSS布局技术之一。然而,有时我们可能会遭遇到绝对定位故障,导致元素位置偏移或不正确显示。本篇文章将为大家提供一些诊断和修复绝对定位故障的方法,同时给出相关的代码示例。 一、诊断绝对定位故障的常见…

    2025年12月24日
    000
  • HTML5获取设备信息

    这篇文章主要介绍了关于HTML5获取设备信息,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 Device模块管理设备信息,用于获取手机设备的相关信息,如IMEI、IMSI、型号、厂商等。通过plus.device获取设备信息管理对象。 1、属性 1.1、imei: 设备的国际移动设备…

    好文分享 2025年12月21日
    000
  • dw查看文件头部信息的教程

    dreamweaver中的网页有两个组成部分,一个是 ,一个是,其中就是文件头部信息。在这里面可以是实现刷新、插入关键字、说明等功能,该怎能查看头部信息呢?下面我们就来看看详细的教程。 软件名称: Macromedia Dreamweaver MX 2004 官方简体中文专业版 软件大小: 63.2…

    2025年12月21日 好文分享
    000
  • 如何用C++实现桥接模式 抽象与实现分离设计方案

    c++++中桥接模式的核心优势在于解耦抽象与实现,使其能独立变化。1. 它通过将一个类中可能变动的具体操作抽离为独立的实现体系,降低类组合数量,避免“m x n”组合爆炸;2. 抽象类(如shape)包含指向实现接口的指针或引用,调用具体实现(如drawingapi),使两者互不影响;3. 适用于多…

    2025年12月18日 好文分享
    200
  • 如何调试和诊断C++框架扩展中的问题?

    调试 c++++ 框架扩展中的问题步骤如下:使用调试工具(如 pudb)检查变量、设置断点并逐步执行代码。添加日志记录语句,捕获关键信息,了解问题发生的时间和原因。通过单元测试隔离代码,识别特定错误。在论坛(如 github 或 stack overflow)寻求社区支持。 如何调试和诊断 C++ …

    2025年12月18日
    000
  • C++ 框架测试自动化工具和技术

    C++ 框架测试自动化工具和技术 简介 在 C++ 开发环境中,测试自动化是一个至关重要的过程,可确保代码质量和可靠性。借助合适的工具和技术,可以高效地自动执行测试任务,从而节省时间和资源。 工具:Google Test Framework 立即学习“C++免费学习笔记(深入)”; Google T…

    2025年12月18日
    000
  • C++ 模板的错误和诊断技巧有哪些?

    诊断 c++++ 模板错误的技巧检查编译器错误消息。使用 -g 和 -gstl 编译标志生成调试信息。使用 gdb 调试器逐步执行模板实例化。使用静态分析工具查找潜在错误。 C++ 模板的错误和诊断技巧 C++ 模板是一个强大的特性,允许您创建可重用的、类型安全的代码。然而,模板可能很复杂,并且可能…

    2025年12月18日
    000
  • 在 C++ 中,异常处理如何用于诊断和故障排除?

    使用异常处理诊断和故障排除:捕获异常:使用 try 和 catch 语句指定异常发生时的代码处理方式。异常类型:使用内置异常类(如 std::runtime_error)或自定义异常类指定异常类型。抛出异常:使用 throw 语句抛出异常,提供错误信息。诊断和故障排除:异常对象包含错误消息和信息,有…

    2025年12月18日
    000
  • C++ 函数如何用于调试和诊断 GUI 应用程序中的问题?

    c++++ 函数为 gui 应用程序调试提供了强大的工具,包括调试输出、调用堆栈跟踪、内存管理、调试器和日志记录。这些函数允许开发者识别和解决问题,确保应用程序的可靠性和稳定性。 使用 C++ 函数调试和诊断 GUI 应用程序 C++ 中的函数提供了强大的工具,用于调试和诊断 GUI 应用程序中的问…

    2025年12月18日
    000
  • C# Avalonia如何集成Entity Framework Core Avalonia EF Core教程

    在 Avalonia 中集成 EF Core 可行,关键在于异步操作、DI 注入 DbContextFactory 及正确管理生命周期;需避免 UI 线程阻塞,推荐用 AddDbContextFactory 而非 Scoped 或 Singleton 注册。 在 Avalonia 中集成 Entit…

    2025年12月17日
    000
  • EF Core在控制台程序中怎么用 EF Core控制台应用入门

    EF Core在控制台程序中入门只需四步:建模型、配上下文、跑迁移、写代码操作数据;依次完成项目创建与NuGet安装、定义实体类和DbContext、执行Add-Migration与Update-Database生成数据库、在Main中用Add/SaveChanges/ToList实现增删改查。 E…

    2025年12月17日
    000
  • EF Core AsNoTracking怎么用 EF Core AsNoTracking提升性能方法

    AsNoTracking是提升EF Core只读查询性能最直接的方法,适用于查后不修改的场景,如列表页、报表、分页接口和数据导出;需在执行前调用,配合Select投影效果更佳,也可全局默认关闭跟踪。 EF Core 的 AsNoTracking 是提升只读查询性能最直接、最常用的方法之一。它不改变业…

    2025年12月17日
    000
  • EF Core怎么处理不同环境的数据库 EF Core多环境配置(ASPNETCORE_ENVIRONMENT)

    EF Core 通过 ASP.NET Core 配置系统和 DI 实现环境差异化配置:按环境加载 appsettings.{Environment}.json 中的连接字符串,开发环境启用迁移与日志,生产环境禁用自动迁移、关闭敏感数据日志,迁移脚本需指定环境生成。 EF Core 本身不直接处理环境…

    2025年12月17日
    000
  • C# Entity Framework Core中的迁移(Migrations) – 数据库架构的版本控制

    迁移是EF Core数据库版本控制机制,通过add-migration生成Up/Down方法脚本,update-database执行并记录至__EFMigrationsHistory表;开发中需及时生成、检查脚本、避免冲突;生产环境应导出SQL交DBA审核,禁用业务逻辑;注意重命名、多上下文等特殊处…

    2025年12月17日
    000
  • C#如何实现定时任务?Hangfire与Quartz.NET两大任务调度框架对比

    Hangfire适合任务可靠性和可观测性要求高的场景,集成简单、自带监控面板,依赖持久化存储,适用于后台任务处理;Quartz.NET侧重精确调度,支持复杂cron表达式,配置灵活但学习成本高,适合对时间控制要求严格的系统。 在C#开发中,实现定时任务是常见需求,比如每天凌晨清理日志、每小时同步数据…

    2025年12月17日
    000
  • C#的Entity Framework Core是什么?如何用它进行数据库操作?

    EF Core是微软提供的轻量级ORM框架,通过安装NuGet包、定义实体类、创建DbContext子类实现数据库操作,支持增删改查及迁移功能,提升开发效率。 Entity Framework Core(简称 EF Core) 是微软为 C# 开发者提供的一个轻量级、可扩展的 ORM(对象关系映射)…

    2025年12月17日
    000
  • .NET如何使用Entity Framework Core实现Code First开发

    先编写C#类定义数据模型,EF Core自动生成数据库结构。1. 创建User类作为实体模型;2. 定义AppDbContext继承DbContext管理实体集合;3. 在OnConfiguring中配置SQL Server连接字符串;4. 使用Add-Migration生成迁移文件;5. 执行Up…

    2025年12月17日
    000
  • C# 如何使用 EF Core Code First 创建数据库_C# EF Core Code First 数据库创建指南

    通过C#类定义生成数据库结构,需安装EF Core包,定义User模型和AppDbContext上下文,使用Add-Migration和Update-Database命令创建数据库表,并通过代码测试数据插入验证配置正确性。 使用 EF Core Code First 创建数据库 是一种通过 C# 类…

    2025年12月17日
    000
  • C# 怎么实现一个定时任务_C# 定时任务实现方法指南

    C#中实现定时任务需根据应用场景选择方法:控制台或服务用System.Threading.Timer,Windows应用用System.Timers.Timer,异步任务结合Task.Delay,Web项目推荐Hangfire,注意异常处理与资源释放。 在C#中实现定时任务有多种方式,选择合适的方法…

    2025年12月17日
    000
  • .NET如何使用Entity Framework Core实现Code First开发_EF Core Code First开发教程

    答案:EF Core是微软的轻量级跨平台ORM框架,支持Code First模式,通过C#类定义数据模型并自动生成数据库。首先安装EF Core核心库、数据库提供程序和工具包;接着定义实体类如User,并遵循Id为主键、类名复数为表名的约定;然后创建继承DbContext的上下文类AppDbCont…

    2025年12月17日
    000

发表回复

登录后才能评论
关注微信