. 什么是跟踪标记

SQL Server 跟踪标记(Trace Flag),像是一个开关,可用来自定义SQL Server的某种行为或特性,在性能诊断,系统调试等方面较为常用。比如:开启1204或1222跟踪标记,可在errorlog里记录死锁信息的明细。

跟踪标记有会话级和实例级两种。

. 如何开启跟踪标记

1. SQL Server 服务启动时开启

SQL Server服务从类似如下路径启动程序:

C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQL2016\MSSQL\Binn\sqlservr.exe

而sqlservr.exe接受一些启动参数,其中就包含了跟踪标记。

以命名实例MSSQL2016,跟踪标记610 为例:

1.1 使用sqlservr.exe来启动

(1) 先停掉服务 (以管理员身份运行cmd命令窗口)

默认实例:net stop MSSQLSERVER / net stop "SQL Server (MSSQLSERVER)"

命名实例:net stop MSSQL$MSSQL2016 / net stop "SQL Server (MSSQL2016)"

(2) 启动服务 (先cd切换到sqlservr.exe目录)

默认实例:sqlservr.exe –T610

命名实例:sqlservr.exe -sMSSQL2016 –T610

命令行举例:

C:\Windows\system32>net stop MSSQL$MSSQL2016
The SQL Server (MSSQL2016) service is stopping.
The SQL Server (MSSQL2016) service was stopped successfully.C:\Windows\system32>cd C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQL2016\MSSQL\Binn\
C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQL2016\MSSQL\Binn>sqlservr -sMSSQL2016 -T610

在数据库里执行SQL语句,可看到已启动的跟踪标记:

dbcc tracestatus(-1)
--TraceFlag    Status    Global    Session
--610    1    1    0

注:

(1) 以这种方式启动的SQL Server,服务状态仍然是停止,但是SSMS/SQLCMD均可以连接并执行SQL语句,通常用于系统故障诊断/维护时,不作为常规启动方式使用;

(2) 关闭当前的cmd窗口,即可关闭该次启动;

1.2使用net命令来启动

(1) 先停掉服务 (以管理员身份运行cmd命令窗口)

默认实例:net stop MSSQLSERVER 或 net stop "SQL Server (MSSQLSERVER)"

命名实例:net stop MSSQL$MSSQL2016或 net stop "SQL Server (MSSQL2016)"

(2) 启动服务(以管理员身份运行cmd命令窗口)

默认实例:net start MSSQLSERVER /T610 或net start "SQL Server (MSSQLSERVER)" /T610

命名实例:net start MSSQL$MSSQL2016 /T610 或net start "SQL Server (MSSQL2016)" /T610

命令行举例:

C:\Windows\system32>net stop MSSQL$MSSQL2016
The SQL Server (MSSQL2016) service is stopping.
The SQL Server (MSSQL2016) service was stopped successfully.C:\Windows\system32>net start MSSQL$MSSQL2016 /T610
The SQL Server (MSSQL2016) service is starting.
The SQL Server (MSSQL2016) service was started successfully.

在数据库里执行SQL语句,可看到已启动的跟踪标记:

dbcc tracestatus(-1)
--TraceFlag    Status    Global    Session
--610    1    1    0

注:

(1) 以net命令启动SQL Server服务时,exe程序的参数通过斜线(/)来传递而不是横线(-):/T610;

1.3 使用配置管理器 (Configuration Manager) 来启动

打开SQL Server 配置管理器\SQL Server 服务\选择相应实例:

(1) 停止相应实例的服务

(2) 属性\启动参数, 输入-T610 并添加

(3) 启动相应实例的服务

在数据库里执行SQL语句,可看到已启动的跟踪标记:

dbcc tracestatus(-1)
--TraceFlag    Status    Global    Session
--610    1    1    0

注:

(1) 启动参数被保存在注册表里,在服务启动时加载,所以会一直有效,直到在启动参数中删除该项并保存;

(2) 在配置管理器中修改SQL Server服务相关的参数为最佳实践(Best Practice),推荐;

2. SQL Server 服务启动后开启

在SQL Server服务启动后,可通过DBCC命令来开/关跟踪标记

--开启会话级跟踪标记
dbcc traceon(610)
--会话级跟踪标记,只能在所在会话关闭
dbcc traceoff(610)--开启实例级跟踪标记
dbcc traceon(610,-1)
--实例级跟踪标记,在所有会话都可关闭
dbcc traceoff(610,-1)--指定-1,显示所有已开启跟踪标记
dbcc tracestatus(-1)

注:

(1) 会话级跟踪标记,只对当前会话有效,其他会话不受影响;

(2) 实例级跟踪标记,整个实例有效;

小结:

(1)    以上几种方式,只有在SQL Server配置管理器里修改启动参数添加跟踪标记,会被保存到注册表,从而每次启动服务时跟踪标记都可以生效,其他几种方式只是在当前的命令行里开启了跟踪标记选项,正常重启服务后,跟踪标记就不见了;

(2)    只有DBCC traceon 可开启会话级跟踪标记,其他开启方式均为实例级;

(3)    如果要在生产环境使用,请尽可能多的测试,尤其是非文档记载的跟踪标记;

转载于:https://www.cnblogs.com/seusoftware/p/5711207.html

0. 跟踪标记 (Trace Flag) 简介相关推荐

  1. 3. 跟踪标记 (Trace Flag) 1204, 1222 抓取死锁信息

    跟踪标记:1204/1222 功能及用途: 捕获SQL Server死锁信息,并自动存放到错误日志(ERRORLOG)中. 举例: USE tempdb GO CREATE TABLE t1(id i ...

  2. Linux内核跟踪之trace框架分析【转】

    转自:http://blog.chinaunix.net/uid-20543183-id-1930846.html ------------------------------------------ ...

  3. SQL Server全局禁用及打开指定的跟踪标记

    DBCC TRACEOFF ( trace# [ ,-n ] [ , -1 ] ) [ WITH NO_INFOMSGS ] DBCC TRACEON ( trace# [ ,-n ][ , -1 ] ...

  4. SQL Server中关于跟踪(Trace)那点事(转载)

    前言 一提到跟踪俩字,很多人想到警匪片中的场景,同样在我们的SQL Server数据库中"跟踪"也是无处不在的,如果我们利用好了跟踪技巧,就可以针对某些特定的场景做定向分析,找出充 ...

  5. LXD 2.0系列之一:LXD简介

    本文讲的是LXD 2.0系列之一:LXD简介, [编者的话] 第三方调查报告 显示LXD有潜质成为一款受欢迎的第三方容器管理工具.本文是LXD核心维护者.加拿大程序员Stéphane Graber有关 ...

  6. 《HiWind企业快速开发框架实战》(0)目录及框架简介

    <HiWind企业快速开发框架实战>(0)目录及框架简介 本系列主要介绍一款企业管理系统快速开发框架,该框架旨在快速完成企业管理系统,并实现易维护可移植的目标. 使用逐个系统模块进行编码的 ...

  7. IOT云平台 simple(0)IOT云平台简介

    本系列教程包括: IOT云平台 simple(0)IOT云平台简介 IOT云平台 simple(1)netty入门 IOT云平台 simple(2)springboot入门 IOT云平台 simple ...

  8. Oracle跟踪文件trace文件

    一.Oracle跟踪文件         Oracle跟踪文件分为三种类型,一种是后台报警日志文件,记录数据库在启动.关闭和运行期间后台进程的活动情况,如表空间创建.回滚段创建.某些alter命令.日 ...

  9. .NET : 通过配置文件指定跟踪(trace)选项

    在应用程序开发和调试期间,我们经常需要在代码中添加一些跟踪功能.此时可能会用到System.Diagnostics下面的Debug和Trace两个类型.具体的用法请参考帮助文档. 本文介绍的是,如何通 ...

最新文章

  1. R语言使用aov函数进行双因素方差分析(Two-way factorial ANOVA)、使用interaction.plot函数在双因素方差分析中可视化交互作用(Interaction)
  2. Android判断CPU是否为x86,如何判断. NET 程序集是否编译为 x86,x64或者任何 CPU_visual-studio_开发99编程知识库...
  3. Python Sphinx使用踩坑记录
  4. redis与lua整合
  5. 批处理命令set截取字符详解
  6. 20175320 2018-2019-2 《Java程序设计》第4周学习总结
  7. 初始化方法-在类的外部给对象增加属性的隐患
  8. .net html5页面缓存,详解HTML5中的manifest缓存使用
  9. java私有属性和私有方法_Java 9中什么是私有的?
  10. centos8 yum太慢_Yum 慢到无法忍受?那是因为你没有这么做
  11. Linux 进程间通信 - 信号量
  12. [转载]从菜鸟到架构师
  13. js获取ck_JS获取CkEditor在线编辑的内容
  14. 新式汉语拼音使用方法及相关数据,用与交流编程只能用英语字母的环境使用
  15. 【Bugs】Hbase:File system needs to be upgraded. You have version null and I want version(habse缓冲问题)
  16. Jlink修复指南step by step指导(实践成功) 更新 适用win7-10
  17. 缠中说禅 教你打坐 全集列表
  18. 网络电话除了打电话还能用来做什么?
  19. Android网络应用
  20. 2022交易猫系统+带聊天/安心购/已验号模板+APP双端跳转

热门文章

  1. spring batch 读mysql_spring batch csv文件导入到mysql数据库
  2. 类似web表单提交 使界面的滚动条 按要求定位到指定控件
  3. JS仿淘宝网顶部的导航菜单
  4. 多路复用器_超详细的I/O多路复用概念、常用I/O模型、系统调用等介绍
  5. C#在Web项目中关闭Excel进程的方法
  6. 如何:在 Windows 窗体 ListView 控件中启用平铺视图 【转载】
  7. 用户登录自动注销问题
  8. 小米MIUI光标适配问题
  9. linux监控进程资源,linux系统资源监控命令
  10. 全球11大免费GIS数据源在此,速速来取!