服务器重启后自动启用跟踪标志

ada*_*m.g -1 sql-server trace-flags

我们希望在服务器上永久启用跟踪标志。我知道在SQL Server配置管理器中有一个添加启动参数的选项。是否有任何选项可以通过程序/功能/其他解决方案在服务器重新启动后自动执行此操作?

我们希望向无法访问 SQL Server 配置管理器且没有sysadmin级别权限的团队提供跟踪标志(以及启用/禁用选项)的可见性。

我们正在考虑sysadmin在服务器重新启动后以组用户身份执行的作业(不确定是否可能)。DBCC TRACEON (7412) 作业可以有一个步骤,使用诸如等的代码执行过程。

Joh*_* N. 6

我们希望在服务器上永久启用跟踪标志。

在 SQL Server 中,可以在三个范围内设置跟踪标志。这些是在全局级别、查询级别和会话级别,如以下文档中所述:

在 SQL Server 中,跟踪标志可以在三个范围内工作:查询、会话和全局。查询跟踪标志对于特定查询的上下文是活动的。会话跟踪标志对于连接是活动的,并且仅对该连接可见。全局跟踪标志在服务器级别设置,并且对服务器上的每个连接都可见。有些标志只能全局启用,有些标志可以在全局或会话范围内启用。

参考: DBCC TRACEON - 跟踪标志 (Transact-SQL)(Microsoft | SQL 文档)

您必须遵守以下几条规则:

  • 必须全局启用全局跟踪标志。否则,跟踪标志无效。我们建议您在启动时使用 -T 命令行选项启用全局跟踪标志。这可确保跟踪标志在服务器重新启动后保持活动状态。重新启动 SQL Server 以使跟踪标志生效。
  • 如果跟踪标志具有全局、会话或查询范围,则可以在适当的范围内启用它。在会话级别启用的跟踪标志绝不会影响其他会话,并且当打开会话的 SPID 注销时,跟踪标志的作用就会丢失。

跟踪标志通过 a 设置为打开DBCC TRACEON(traceflag,[-1]),通过 a 关闭DBCC TRACEOFF(traceflag, [-1])。或者在查询中使用QUERYTRACEONand QUERYTRACEOFF。通过 SQL Server 配置管理器中的设置将启动跟踪标记添加到-T traceflagSQL Server 启动(推荐)。

  • 使用 DBCC TRACEON 和 DBCC TRACEOFF 命令。例如,要全局启用 2528 跟踪标志,请使用带有 -1 参数的 DBCC TRACEON:DBCC TRACEON (2528, -1)使用 DBCC TRACEON 启用全局跟踪标志的效果在服务器重新启动时会丢失。要关闭全局跟踪标志,请使用带有 -1 参数的 DBCC TRACEOFF。
  • 使用 -T 启动选项指定在启动期间设置跟踪标志。-T 启动选项全局启用跟踪标志。您无法使用启动选项启用会话级跟踪标志。这可确保跟踪标志在服务器重新启动后保持活动状态。有关启动选项的详细信息,请参阅数据库引擎服务启动选项。
  • 在查询级别,通过使用 QUERYTRACEON 查询提示。QUERYTRACEON 选项仅支持下表中记录的查询优化器跟踪标志。

回答您的问题

我们希望无法访问 SQL Server 配置管理器的团队能够访问跟踪标志的可见性(以及启用/禁用选项)。

  • 如果不使用推荐的 SQL Server 配置管理器或通知常驻 DBA 并根据公司流程请求更改(请求更改 --> 更改请求),则无法设置全局跟踪标志。

  • 如果该级别不支持跟踪标志,或者您没有足够的权限,则无法在全局级别设置跟踪标志。(有关是否在全局、会话或查询级别设置跟踪标志的信息,请参阅链接参考中的列表)。

  • 可能最重要的是:...与 SQL Server 中的任何配置更改一样,最好在部署之前在非生产环境中彻底测试该标志

需要额外的权限

DBCC TRACEON()要使用该命令打开或关闭跟踪标志,需要sysadmin分配给您的帐户的固定服务器角色:

需要 sysadmin 固定服务器角色的成员身份。

因此,没有常驻 DBA 的许可,SQL Server 上不会有任何配置更改,这是一件好事,因为设置跟踪标志可能会对 SQL Server 实例的性能产生负面影响。

参考: DBCC TRACEON (Transact-SQL)(Microsoft | SQL 文档)