0. 跟踪标记 (Trace Flag) 简介
一. 什么是跟踪标记
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) 简介相关推荐
- 3. 跟踪标记 (Trace Flag) 1204, 1222 抓取死锁信息
跟踪标记:1204/1222 功能及用途: 捕获SQL Server死锁信息,并自动存放到错误日志(ERRORLOG)中. 举例: USE tempdb GO CREATE TABLE t1(id i ...
- Linux内核跟踪之trace框架分析【转】
转自:http://blog.chinaunix.net/uid-20543183-id-1930846.html ------------------------------------------ ...
- SQL Server全局禁用及打开指定的跟踪标记
DBCC TRACEOFF ( trace# [ ,-n ] [ , -1 ] ) [ WITH NO_INFOMSGS ] DBCC TRACEON ( trace# [ ,-n ][ , -1 ] ...
- SQL Server中关于跟踪(Trace)那点事(转载)
前言 一提到跟踪俩字,很多人想到警匪片中的场景,同样在我们的SQL Server数据库中"跟踪"也是无处不在的,如果我们利用好了跟踪技巧,就可以针对某些特定的场景做定向分析,找出充 ...
- LXD 2.0系列之一:LXD简介
本文讲的是LXD 2.0系列之一:LXD简介, [编者的话] 第三方调查报告 显示LXD有潜质成为一款受欢迎的第三方容器管理工具.本文是LXD核心维护者.加拿大程序员Stéphane Graber有关 ...
- 《HiWind企业快速开发框架实战》(0)目录及框架简介
<HiWind企业快速开发框架实战>(0)目录及框架简介 本系列主要介绍一款企业管理系统快速开发框架,该框架旨在快速完成企业管理系统,并实现易维护可移植的目标. 使用逐个系统模块进行编码的 ...
- IOT云平台 simple(0)IOT云平台简介
本系列教程包括: IOT云平台 simple(0)IOT云平台简介 IOT云平台 simple(1)netty入门 IOT云平台 simple(2)springboot入门 IOT云平台 simple ...
- Oracle跟踪文件trace文件
一.Oracle跟踪文件 Oracle跟踪文件分为三种类型,一种是后台报警日志文件,记录数据库在启动.关闭和运行期间后台进程的活动情况,如表空间创建.回滚段创建.某些alter命令.日 ...
- .NET : 通过配置文件指定跟踪(trace)选项
在应用程序开发和调试期间,我们经常需要在代码中添加一些跟踪功能.此时可能会用到System.Diagnostics下面的Debug和Trace两个类型.具体的用法请参考帮助文档. 本文介绍的是,如何通 ...
最新文章
- R语言使用aov函数进行双因素方差分析(Two-way factorial ANOVA)、使用interaction.plot函数在双因素方差分析中可视化交互作用(Interaction)
- Android判断CPU是否为x86,如何判断. NET 程序集是否编译为 x86,x64或者任何 CPU_visual-studio_开发99编程知识库...
- Python Sphinx使用踩坑记录
- redis与lua整合
- 批处理命令set截取字符详解
- 20175320 2018-2019-2 《Java程序设计》第4周学习总结
- 初始化方法-在类的外部给对象增加属性的隐患
- .net html5页面缓存,详解HTML5中的manifest缓存使用
- java私有属性和私有方法_Java 9中什么是私有的?
- centos8 yum太慢_Yum 慢到无法忍受?那是因为你没有这么做
- Linux 进程间通信 - 信号量
- [转载]从菜鸟到架构师
- js获取ck_JS获取CkEditor在线编辑的内容
- 新式汉语拼音使用方法及相关数据,用与交流编程只能用英语字母的环境使用
- 【Bugs】Hbase:File system needs to be upgraded. You have version null and I want version(habse缓冲问题)
- Jlink修复指南step by step指导(实践成功) 更新 适用win7-10
- 缠中说禅 教你打坐 全集列表
- 网络电话除了打电话还能用来做什么?
- Android网络应用
- 2022交易猫系统+带聊天/安心购/已验号模板+APP双端跳转