SQL Server 管理包中的监视配置

本节介绍 SQL Server 管理包中的监视配置。

SQL Server 代理警报规则:配置详细信息

SQL Server 管理包提供以下 SQL Server 代理警报规则:

  • Windows 上的 MSSQL:由于发生了不可恢复的本地事件日志错误,警报引擎已停止
  • Windows 上的 MSSQL:SQL 作业未能成功完成
  • Windows 上的 MSSQL:作业步骤无法运行,因为子系统加载失败
  • Windows 上的 MSSQL:代理可疑。 在最后几分钟内没有响应
  • Windows 上的 MSSQL:SQL Server 代理无法启动
  • Windows 上的 MSSQL:SQL Server 代理启动自我终止
  • Windows 上的 MSSQL:作业步骤导致子系统中出现异常
  • Windows 上的 MSSQL:SQL Server 代理无法连接到 SQL Server
  • Windows 上的 MSSQL:无法重新打开本地事件日志

默认情况下,这些规则在代理监视模式下启用,但在混合监视模式下禁用,因为 Operations Manager 不允许事件日志中的事件在远程计算机上收集。 若要更改此项,可以通过启用 AllowProxying 选项来替代上述每个规则。

注意

启用 AllowProxying 选项可能会导致远程代码执行。 除非确信计算机受到保护,否则不要启用此选项。

这些规则都不能在无代理监视模式下工作,也不适用于 Linux 上的 SQL。

AlwaysOn 警报规则

SQL Server 管理包有两个事件规则,用于在 Windows 应用程序日志中出现以下事件时发出警报:

  • 事件 ID 1480,数据库副本角色已更改

  • 事件 ID 19406,可用性副本角色已更改

默认情况下,SQL Server 可能不会在应用程序日志中触发这些事件。 若要启用它们,请运行以下 T-SQL 脚本:

sp_altermessage 1480, 'with_log', 'true'
sp_altermessage 19406, 'with_log', 'true'

可用性数据库备份监视

适用于 SQL Server 的管理包提供了一个监视器,用于检查 Microsoft SQL Server 报告的数据库和日志备份是否存在以及存在的时间。 这是通过对 SQL 实例的 master 数据库运行查询并返回备份的时间完成的。

这些监视器位于“可用性组”视图中的“可用性组数据库可用性状态”汇总下。 监视器的列表如下所示:

  • 可用性数据库备份状态监视器
  • 可用性数据库日志备份状态监视器

可用性数据库备份状态监视器

此监视器以“可用性数据库运行状况”为目标,并根据以天为单位的阈值来检查数据库的备份状态。

默认情况下,监视器不会跟踪“可用性组备份首选项”。 如果启用此替代项,监视器将跟踪可用性组的备份首选项中配置的备份位置,并将验证所选副本上的备份是否符合备份频率设置。

所选可用性组的备份首选项可如下所示:

  • 优先辅助

    指定备份应在辅助副本上发生,但在主副本是唯一联机的副本时除外。 在该情况下,备份应在主副本上发生。 这是默认选项。

  • 仅辅助

    指定备份应该永远不会在主副本上执行。 如果主副本是唯一的联机副本,则备份应不会发生。

  • 主要

    指定备份应该始终在主副本上发生。 如果你需要在对辅助副本运行备份时不支持的备份功能,例如创建差异备份,此选项将很有用。

  • 任何副本

    指定您希望在选择要执行备份的副本时备份作业将忽略可用性副本的角色。

    注意

    备份作业可能评估其他因素,例如每个可用性副本的备份优先级及其操作状态和已连接状态。

以下示例演示了在特定场景下如何开启和关闭“跟踪设置”选项。该场景为:可用性组的备份首选项设为“主副本”,但备份文件却仅存在于次要副本上。

当“跟踪备份首选项”参数启用时,对于两个数据库副本,“可用性数据库备份状态”监视器均处于严重状态:

为主要副本启用跟踪备份首选项时可用性数据库备份状态汇总的屏幕截图。

禁用了跟踪备份首选项参数 - 仅适用于主数据库副本,可用性数据库备份状态监视器处于严重状态:

为主要副本禁用跟踪备份首选项时可用性数据库备份状态汇总的屏幕截图。

可用性数据库日志备份状态监视器

此监视器以“可用性数据库运行状况”为目标,并根据以分钟为单位的阈值来检查数据库日志备份状态。

可用性数据库汇总监视警报

“可用性数据库备份状态”和“可用性数据库日志备份状态”这两个监视器配置了“任意成员的最佳状态”汇总策略,并默认在各自的汇总结果上生成严重警报,以便完整地显示可用性组中数据库的状态。

“可用性数据库”是指一个可能托管在多个副本上的单一数据库实体。基于这一点,只有“可用性数据库备份状态(汇总)”这一项具有警报功能,其目的是为了检查整个可用性数据库的状态,而不是在每个副本上分别显示其数据库状态:

可用性数据库备份汇总警报的屏幕截图。

只有当所有数据库副本的数据库备份或日志备份状态都处于严重时,其汇总状态才会变为严重并触发警报。 如果只有一个副本的数据库备份或日志备份状态为严重,根据该汇总策略,其汇总状态将保持健康。

策略监视

SQL Server 管理包会读取每个对象的 PBM(基于策略的管理)策略状态,从而收集目标 SQL Server 实例上的数据库和 Always On 对象的运行状况指标。

除了系统策略外,管理包还允许监视以下对象的自定义用户策略:

  • 数据库
  • 可用性组
  • 可用性副本
  • 数据库副本

对于每个对象,管理包都具有以下监视器:

  • 具有警告状态的双状态监视器。 此监视器显示将预定义警告类别之一作为“策略类别”的自定义用户策略的状态。
  • 具有“错误”状态的双状态监视器。 此监视器显示将预定义错误类别之一作为“策略类别”的自定义用户策略的状态。

空间监视

SQL Server 管理包可以通过在以下级别收集一组指标来执行空间监视:

  • 数据库
  • 文件组
  • 文件
  • 日志文件

可以使用单元监视器和性能指标来查看多个数据库和长时间时间间隔的此信息。

空间监视支持以下类型的媒体:

  • 本地存储和装入点
  • 群集共享卷
  • SMB 共享
  • Azure Blob

导入 SQL Server 管理包后,你可能会发现某些空间监视工作流默认处于启用状态,而另一些工作流则处于禁用状态。 为了减少环境中的负载,仅对数据库级别启用空间监视,并为文件组、日志文件、内存中 OLTP 容器和 FILESTREAM 文件组级别启用空间监视。 如果环境对额外负载敏感,则不建议启用很少使用的工作流。

注意

监视文件组时,仅当文件组中的所有文件完全不正常时,才会引发警报。 如果文件组中至少有一个文件处于正常状态,则不会注册任何警报。

下面是说明每个空间监视工作流的默认状态的列表:

  • 已启用适用于 Windows 和 Linux 的发现
    • 数据库引擎
    • 数据库引擎的数据库
  • 已禁用适用于 Windows 和 Linux 的发现
    • DB 文件组
    • DB 文件
    • 事务日志文件
    • FILESTREAM 文件组
    • 内存优化数据文件组
    • 内存优化数据文件组容器
  • 已启用适用于 Windows 的监视器
    • 面向数据库
      • 剩余的 ROWS 数据可用空间
      • 剩余的日志可用空间
  • 为 Windows 禁用的监视器
    • 面向数据库
      • ROWS 数据空间百分比更改
      • 剩余的内存中 OLTP 数据可用空间
      • 剩余的 FILESTREAM 数据可用空间
    • 面向文件组
      • 剩余的 DB 文件可用空间
    • 面向日志文件
      • 剩余的 DB 日志文件可用空间
    • 面向内存中 OLTP 数据容器
      • 内存优化数据文件组容器可用空间
    • 面向 FILESTREAM 文件组
      • DB FILESTREAM 文件组可用空间
  • 为 Linux 启用的监视器
    • 面向文件组
      • 剩余的 DB 文件可用空间
    • 面向日志文件
      • 剩余的 DB 日志文件可用空间
    • 面向内存中 OLTP 数据容器
      • 内存优化数据文件组容器可用空间

以下监视器支持“运行状况计算模式”替代:

  • 剩余的 FILESTREAM 数据可用空间
  • 剩余的内存中 OLTP 数据可用空间
  • 剩余的 DB 日志文件可用空间
  • 剩余的 ROWS 数据可用空间

此替代允许你定义环境中可用空间的监视方式。 你现在可以基于以百分比形式 (%) 或容量指标 (MB) 表示的“阈值”参数来指示以上任何监视器跟踪运行状况状态。 为了使监视更高效,可以同时使用百分比术语 (% ) 和容量指标 (MB) 阈值,在这种情况下,将使用状态最差的指标来报告总体运行状况。

Linux 上 SQL 的已禁用空间监视工作流

默认情况下禁用以下工作流,因为它们未由 Linux 上的 SQL Server 提供所需的数据:

  • 规则
    • Linux 上的 MSSQL:DB 内存优化数据文件组可用空间总大小 (MB)
    • Linux 上的 MSSQL:DB 内存优化数据文件组可用空间总大小 (%)
    • Linux 上的 MSSQL:DB FILESTREAM 文件组可用空间总大小 (%)
    • Linux 上的 MSSQL:DB FILESTREAM 文件组可用空间总大小 (MB)
    • Linux 上的 MSSQL:DB 文件组可用空间总大小 (%)
    • Linux 上的 MSSQL:DB 文件组可用空间总大小 (MB)
    • Linux 上的 MSSQL:DB 文件组已分配可用空间 (%)
    • Linux 上的 MSSQL:DB 文件组已分配可用空间 (MB)
    • Linux 上的 MSSQL:DB 可用外部空间 (MB)
    • Linux 上的 MSSQL:DB 已分配可用空间 (MB)
    • Linux 上的 MSSQL:DB 事务日志可用空间总大小 (%)
    • Linux 上的 MSSQL:已使用的 DB 已分配空间 (MB)
    • Linux 上的 MSSQL:DB 可用空间总大小 (%)
    • Linux 上的 MSSQL:DB 可用空间总大小 (MB)
    • Linux 上的 MSSQL:DB 已分配空间 (MB)
  • 监视器
    • 剩余的 DB 可用空间
    • DB 空间百分比更改
    • 事务日志可用空间 (%)
    • DB FILESTREAM 文件组可用空间

数据库状态监视

数据库状态监视旨在检查 Microsoft SQL Server 报告的数据库状态。 状态检查是通过对 SQL Server 实例的 master 数据库运行查询并返回数据库状态完成的。 如果收到来自此监视器的警报,则需要执行操作才能使数据库恢复正常运行状态。

除 ONLINE 之外的所有数据库状态都将导致运行不正常监视状态。 下表定义了数据库的状态。

国家 定义
在线 数据库可以访问。 即使可能尚未完成恢复的撤消阶段,主文件组仍处于在线状态。
离线 数据库不可用。 数据库由于显式用户操作而处于离线状态,并会一直保持离线状态,直至执行了其他用户操作。 例如,可能会让数据库离线以便将文件移至新的磁盘。 然后,在完成移动操作后,使数据库恢复到在线状态。
RESTORING 正在还原主文件组的一个或多个文件,或正在脱机还原一个或多个辅助文件。 数据库不可用。
恢复中 正在恢复数据库。 恢复进程是一个暂时性状态,恢复成功后数据库将自动处于在线状态。 如果恢复失败,数据库将处于可疑状态。 数据库不可用。
恢复挂起 SQL Server 在恢复过程中遇到了与资源相关的错误。 数据库未损坏,但是可能缺少文件,或系统资源限制可能导致无法启动数据库。 数据库不可用。 需要用户执行其他操作来解决错误,并让恢复过程完成。
嫌疑人 至少主文件组可疑或可能已损坏。 在 SQL Server 启动过程中无法恢复数据库。 数据库不可用。 需要用户执行其他操作来解决问题。
紧急情况 用户更改了数据库,并将其状态设置为 EMERGENCY。 数据库处于单用户模式,可以修复或还原。 数据库标记为 READ_ONLY,已禁用日志记录,并且仅限 sysadmin 固定服务器角色的成员访问。 EMERGENCY 主要用于故障排除。 例如,可以将标记为可疑的数据库设置为 EMERGENCY 状态。 这可以允许系统管理员对数据库进行只读访问。 只有 sysadmin 固定服务器角色的成员才可以将数据库设置为 EMERGENCY 状态。

有关详细信息,请参阅 Database States

该监视器还支持“如果可用性组脱机则禁用”替代项,此选项适用于基于 Windows 的环境。 如果此替代项设置为 true 并且承载数据库的可用性组不可用,监视器将停止跟踪此类数据库的状态。 此替代项非常有用,因为它有助于防止在使用 SQL Server 2012 时由于其体系结构的细节而可能会发生的警报风暴。 对于更高版本的 SQL Server,不需要此替代项。

同一驱动器上许多数据库

在许多数据库共享同一媒体且启用了“自动增长”设置的环境中,管理包中的空间监控功能可能会产生大量“噪音”。 在这种情况下,一旦硬盘驱动器上的可用空间量达到阈值,系统便会为每一个数据库都生成一条警报。

为减少此类“噪音”,请关闭针对数据文件和事务日志文件的空间监视,并转而使用操作系统管理包来监视硬盘驱动器上的空间。

DB 存储延迟监视

SQL Server 管理包为每个数据库收集 DB 磁盘读取延迟 (ms)数据库磁盘写入延迟 (ms) 性能指标。 此外,该管理包还定义了两个与之关联的监视器,用于在发生显著性能下降时登记警报。 默认情况下,系统会禁用这些监视器和性能规则。 仅在必要时为特定 DB 启用它们。

已阻塞会话数

“已阻塞会话数”监视器旨在查询每个数据库,以获取在很长一段时间内被阻塞的会话。 如果检测到阻塞并且超过给定阈值,则状态会发生更改并引发警报。

可以应用替代项来更改 WaitMinutes 参数,该参数用于确定一个被阻塞的会话是否应被视为长时间运行。 此参数的默认值为一分钟。

安全对象配置状态监视

此监视器会检查是否可在已配置的运行方式帐户下访问每个必需的 SQL Server 安全对象。

下面是由针对 SQL Server DB 引擎的监视器检查的安全对象的完整列表:

  • 服务器级别权限

    • 查看服务器状态
    • 查看任何定义
    • 查看任意数据库
  • 对动态管理视图的 SELECT 权限

    • master.sys.dm_hadr_availability_group_states
    • master.sys.dm_hadr_availability_replica_states
    • master.sys.dm_hadr_database_replica_cluster_states
    • master.sys.dm_os_performance_counters
    • master.sys.dm_tran_active_transactions
    • master.sys.dm_tran_session_transactions
    • master.sys.dm_exec_sessions
    • master.sys.dm_exec_requests
    • master.sys.dm_exec_connections
    • master.sys.dm_os_sys_info
    • master.sys.dm_os_ring_buffers
    • master.sys.dm_os_volume_stats
    • master.sys.dm_os_threads
    • master.sys.dm_server_services
    • master.sys.dm_db_xtp_checkpoint_files
    • master.sys.dm_db_xtp_table_memory_stats
    • master.sys.dm_db_xtp_hash_index_stats
    • master.sys.dm_resource_governor_resource_pools
    • master.sys.dm_db_index_physical_stats
  • 对目录视图的 SELECT 权限

    • master.sys.dm_os_host_info
    • master.sys.availability_groups
    • master.sys.databases
    • master.sys.database_files
    • master.sys.tables
    • master.sys.filegroups
    • master.sys.syscolumns
    • master.sys.sysprocesses
    • master.sys.availability_replicas
    • master.sys.database_mirroring
    • master.sys.configurations
    • master.sys.indexes
    • msdb.dbo.syspolicy_policies
    • msdb.dbo.syspolicy_conditions
    • msdb.dbo.syspolicy_policy_execution_history
    • msdb.dbo.syspolicy_configuration
    • msdb.dbo.syspolicy_system_health_state
    • msdb.dbo.syspolicy_object_sets
    • msdb.dbo.syspolicy_policy_categories
    • msdb.dbo.syspolicy_target_sets
    • msdb.dbo.syspolicy_target_set_levels
    • msdb.dbo.syspolicy_policy_execution_history_details
    • msdb.dbo.sysjobschedules
    • msdb.dbo.syscategories
    • msdb.dbo.sysjobs_view
    • msdb.dbo.sysjobactivity
    • msdb.dbo.sysjobhistory
    • msdb.dbo.syssessions
    • msdb.dbo.log_shipping_primary_databases
    • msdb.dbo.log_shipping_secondary_databases
    • msdb.dbo.backupset
  • 对存储过程的 EXECUTE 权限

    • master.sys.sp_enumerrorlogs
    • master.sys.xp_readerrorlog
    • master.sys.xp_instance_regread
    • msdb.dbo.sp_help_job
    • msdb.dbo.agent_datetime
    • msdb.dbo.SQLAGENT_SUSER_SNAME

下面是针对 SQL Server 数据库的监视器检查的安全对象的完整列表:

  • 对目录视图的 SELECT 权限
    • sys.database_files
    • sys.tables
    • sys.filegroups
    • sys.syscolumns

注意

某些监视器的名称中可能包含带双下划线的属性。 此类属性用于内部管理包目的;请确保不要使用它们。

WMI 运行状况状态监视器

此监视器会检查所配置的运行方式帐户是否有权访问目标 SQL Server 上的以下命名空间:

  • ROOT\CIMV2
  • ROOT\Microsoft\SqlServer
  • ROOT\Microsoft\SqlServer\ComputerManagement11
  • ROOT\Microsoft\SqlServer\ComputerManagement12
  • ROOT\Microsoft\SqlServer\ComputerManagement13
  • ROOT\Microsoft\SqlServer\ComputerManagement14
  • ROOT\Microsoft\SqlServer\ComputerManagement15
  • ROOT\Microsoft\SqlServer\ComputerManagement16

当上述任何命名空间无法访问时,监视器将生成警报。

SQL Server 代理作业监视

SQL Server 管理包能够使用以下工作流为 SQL Server 执行可用性和性能监视代理作业:

  • 上次运行状态监视器

    此监视器会检查 SQL 代理上的所有作业,如果任何作业未成功完成,监视器会将其状态更改为“警告”。 这不会生成警报,因为存在禁用警报以控制噪音的替代项。 如果需要此级别的监视,需要将“生成警报”重写回启用。

    监视器具有“失败次数阈值”替代项,指示在监视器的状态更改为“警告”之前,SQL 代理作业可能会失败的次数。 “将取消状态定义为失败”替代项可以将取消的作业的上次运行状态记录为“失败”。

  • 长时间运行的作业监视器

    此监视器会检查长期运行的 SQL 代理作业。 如果作业的运行时间超过“警告阈值”(分钟)和“临界阈值”(分钟)这两个配置的阈值,将显示警告或错误警报。

    默认情况下,此监视器不会监视具有“SQL Server 代理启动时自动启动”计划类型的作业,因为这些作业通常会在 SQL 代理停止(即连续)之前运行。 通常,SQL Server 复制会使用此类作业,但在某些情况下,具有“SQL Server 代理启动时自动启动”计划类型的作业可能会运行相对较短的时间间隔。 若要监视这些作业,请使用以逗号分隔的作业名称列表替代“已包含连续执行的作业”参数。 列表中的作业名称应满足以下某个标识符类的要求:

    • 常规

      • 可以包含除逗号 (,) 和双引号 (") 以外的任何字符。
      • 不应以任何空格字符开头或结尾。
    • 带分隔符

      • 可以包含任何字符,并且应用双引号分隔。
      • 双引号应通过将其自身加倍(即写成 "")的方式进行转义。

    属于上述任何类的任何名称应为 1 到 128 个字符,不包括分隔符字符。

  • 作业持续时间监视器

    此监视器会检查 SQL 代理上的所有作业,以及其中任一作业是否比指定的阈值更长。 如果作业持续时间超过“警告阈值”(分钟)和“临界阈值”(分钟)这两个配置的阈值,将显示警告或错误警报。 这不会生成警报,因为存在禁用警报以控制噪音的替代项。 如果需要此级别的监视,则需要将“生成警报”重写回启用,或使用“作业持续时间”警报规则。

  • 作业持续时间警报规则

    此规则会检查任何 SQL 代理作业的执行时间是否已超过指定的阈值(以分钟为单位),并在执行时间超出阈值时引发警报。

  • 作业持续时间性能规则

    此规则会收集任何 SQL 代理作业的持续时间(以分钟为单位)。

SQL Server 连接加密证书监视

SQL Server 管理包提供能够执行 SQL Server 连接加密证书状态的监视器。

SQL Server 可以使用 TLS 对通过网络在 SQL Server 实例与客户端应用程序之间传输的数据进行加密。 TLS 使用证书来实现加密。 启用 TLS 加密将增强通过网络在 SQL Server 实例与应用程序之间传输的数据的安全性。 有关详细信息,请参阅证书概述证书过程文章。

此监视器面向 Windows 和 Linux 上的 SQL Server 数据库引擎,并检查证书验证期(以天为单位)和证书要求

重要说明

如果计算机存储中存在证书,但该证书仅满足上述列表中的某些要求,并且手动配置为供 SQL Server 配置管理器或通过注册表项使用,则 SQL Server 将不会启动(仅适用于 Windows 上的 SQL Server)。 选择另一个满足所有要求的证书,或移除 SQL Server 使用的证书,直到你能够预配满足要求的证书。 有关详细信息,请参阅配置 SQL Server 以进行加密文章。

下表定义了监视器替代参数,并微调 SQL Server 的证书验证要求:

替代名称 说明
要检查的其他主机名 默认情况下,监视器会检查证书是否包含目标数据库引擎的主体名称。 此替代项允许使用逗号分隔的其他主机名列表(例如 Always On 侦听器 DNS 名称、托管计算机的 DNS 别名、FCI 虚拟名称等)进行检查。
必须配置证书(仅适用于 Windows 上的 SQL Server) 如果为 true,则监视器在数据库引擎没有显式配置的证书时将其状态更改为“严重”。
忽略“不受信任的根”检查 如果为 true,监视器将忽略证书未放置在受信任的根证书颁发机构中。 如果放置在其中,这些证书受操作系统的信任,应用程序可以使用这些证书作为参考来确定值得信任的公钥基础结构 (PKI) 层次结构和数字证书。
设置标志“IgnoreCertificateAuthorityRevocationUnknown” 在确定证书验证结果时,忽略证书颁发机构吊销未知这一问题。
设置标志“IgnoreCtlNotTimeValid” 在确定证书验证结果时,忽略证书信任列表 (CTL) 无效这一问题(例如,因 CTL 已过期等原因导致其无效)。
设置标志“IgnoreCtlSignerRevocationUnknown” 在确定证书验证结果时,忽略证书信任列表 (CTL) 签名者吊销未知这一问题。
设置标志“IgnoreEndRevocationUnknown” 在确定证书验证结果时,忽略终止证书(用户证书)吊销未知这一问题。
设置标志“IgnoreInvalidBasicConstraints” 在确定证书验证结果时,忽略基本约束无效这一问题。
设置标志“IgnoreInvalidPolicy” 在确定证书验证结果时,忽略证书具有无效策略这一问题。
设置标志“IgnoreNotTimeNested” 在验证证书验证结果时,忽略忽略 CA(证书颁发机构)证书和颁发的证书具有未嵌套的有效期这一问题。 例如,CA 证书的有效期可为 1 月 1 日至 12 月 1 日,而颁发证书的有效期为 1 月 2 日至 12 月 2 日,这就意味着有效期不嵌套。
设置标志“IgnoreNotTimeValid” 在确定证书有效性时,忽略证书链中那些因已过期或尚未生效而无效的证书。
设置标志“IgnoreRootRevocationUnknown” 在确定证书验证结果时,忽略根吊销未知这一问题。
设置标志“IgnoreWrongUsage” 在确定证书验证结果时,忽略未为当前用途颁发证书这一问题。
跳过“主机名”检查 如果为 true,监视器将跳过检查证书是否包含特定的主机名。
跳过“密钥使用情况服务器身份验证”检查 如果为 true,该监视器将跳过一项对服务器身份验证证书的要求,即不再检查证书的密钥用法扩展中是否存在“服务器身份验证”。 某些连接驱动程序实现可能无法检查此扩展是否存在,即使没有扩展,它们也可能认为证书有效。
跳过“吊销”检查 如果为 true,监视器将忽略与吊销相关的所有问题。

透明数据加密 (TDE) 证书备份状态监视

SQL Server 管理包提供能够检查用于加密数据库加密密钥的证书是否已备份的监视器。

透明数据加密 (TDE) 使用称为数据库加密密钥的对称密钥来加密整个数据库的存储。 还可以使用受主数据库的数据库主密钥保护的证书来保护数据库加密密钥。 TDE 针对数据和日志文件执行实时 I/O 加密和解密。 加密使用的是数据库加密密钥 (DEK)。 数据库启动记录会存储该密钥,供恢复时使用。 DEK 是对称密钥,受服务器主数据库存储的证书或 EKM 模块保护的非对称密钥保护。 TDE 保护处于休眠状态的数据,即数据和日志文件。 它可以让您轻松遵循各行业的法律、法规与指南。 借助此功能,软件开发人员可以使用 AES 和 3DES 加密算法来加密数据,且无需更改现有的应用程序。 有关详细信息,请参阅 SQL Server 安全最佳做法透明数据加密 (TDE) 文章。

注意

TDE 不适用于系统数据库。 它不能用于加密主数据库模型msdb。 启用 TDE 但无法直接加密的用户数据库时,tempdb 会自动加密。

长时间运行的查询监视

如果任何正在运行的 SQL 查询的执行时间超过指定的阈值(以秒为单位),则 SQL Server 管理包提供能够引发警报的规则。

该规则支持使用以下替代项警报自定义筛选:

  • 应用程序排除列表 - 用于排除具有应用程序名称的查询
  • 数据库排除列表 - 用于排除具有数据库名称的查询
  • 查询排除列表 - 用于通过自定义的查询文本来排除特定查询

这些替代项支持通配符。你可以使用逗号分隔的应用程序名称、数据库名称或查询文本,来排除长时间运行的查询。 例如,使用 *test 这样的条件来排除以 _test 结尾的查询;使用 Test* 来排除以 Test 开头的查询;或者使用 *test* 条件来排除查询文本中任何部分包含 test 条目的查询。

如果元素应包含的星号 (*) 不是通配符、双引号 (") 或反斜杠 (\),则必须使用反斜杠 \ 对元素进行转义。 例如,使用像 Query\*3 这样的条件来排除查询文本中含有 Query*3 的查询;使用像 \\path\\to\\ 这样的条件来排除查询文本中含有 \path\to\ 的查询;或者使用 "GO, WITH" 条件来排除查询文本中含有带逗号的 "GO, WITH" 条目的查询。 带有排除列表的替代项可以同时使用。

下表定义了可在表达式中使用的通配符模式:

字符 说明 示例
? 与任何单个字符匹配。 可以在字符串中的任意位置使用问号 (?)。 Quer? 会查找 Query、Quer1、Quer_、Quer?、Quer*,但不会查找 Query1 或 Queries。
* 匹配任意数量的字符。 可以在字符串中的任意位置使用星号 (*)。 DB* 会查找 DBs、DB1、DB2、DB_prod,但不会查找 1DB 或 Database。 *DB 会查找 1DB、_DB、test-DB,但不会查找 1DB_prod 或 D_Base。 *DB* 会查找 cloudDB_1、DBtest、3DB,但不会查找 prod_D_B 或 Database。
" 匹配双引号中的任意数量的字符。 可以在字符串中的任意位置使用双引号 (" ")。 如果字符串包含逗号,则必须用引号括起该字符串。 "Instance, Database" 会查找 Instance, Database 字符串,其中包含逗号,但不单独查找 Instance 字符串和 Database 字符串。 “首尾带空格的查询”会查找所有空格都包含在双引号中的条目。

下表定义了可在表达式中使用的转义模式:

字符 说明 示例
\* 不是通配符。 在字符串中的任何位置转义星号 (*)。 dbname\* 会查找 dbname*,但不会查找 dbname1、dbname_prod、dbnames。
\" 不是通配符。 将字符串中任何位置的双引号 (") 进行转义处理。 query \"example\" 会查找查询 "example",但不会查找 query\、query example 或 "example"。
\\ 不是通配符。 将字符串中任意位置的反斜杠 (\) 进行转义。 C:\\Path\\to\\ 会查找 C:\Path\to\,但不会查找 C:\, Path\\to。

注意

由于安全原因,此规则不提供执行查询的文本。