ALTER SERVER CONFIGURATION (Transact-SQL)

修改 SQL Server 2012 中当前服务器的全局配置设置。

主题链接图标 Transact-SQL 语法约定

语法

ALTER SERVER CONFIGURATION
SET <optionspec> 

<optionspec> ::=
{
     <process_affinity>
   | <diagnostic_log>
   | <failover_cluster_property>
   | <hadr_cluster_context>
}

<process_affinity> ::= 
   PROCESS AFFINITY 
   {
     CPU = { AUTO | <CPU_range_spec> } 
   | NUMANODE = <NUMA_node_range_spec> 
   }
   <CPU_range_spec> ::= 
      { CPU_ID | CPU_ID  TO CPU_ID } [ ,...n ] 

   <NUMA_node_range_spec> ::= 
      { NUMA_node_ID | NUMA_node_ID TO NUMA_node_ID } [ ,...n ]

<diagnostic_log> ::= 
   DIAGNOSTICS LOG 
   { 
     ON  
   | OFF  
   | PATH = { 'os_file_path' | DEFAULT }  
   | MAX_SIZE = { 'log_max_size' MB | DEFAULT }  
   | MAX_FILES = { 'max_file_count' | DEFAULT }  
   }

<failover_cluster_property> ::= 
   FAILOVER CLUSTER PROPERTY <resource_property>
   <resource_property> ::=
      {
        VerboseLogging = { 'logging_detail' | DEFAULT }  
      | SqlDumperDumpFlags = { 'dump_file_type' | DEFAULT }
      | SqlDumperDumpPath = { 'os_file_path'| DEFAULT }
      | SqlDumperDumpTimeOut = { 'dump_time-out' | DEFAULT }
      | FailureConditionLevel = { 'failure_condition_level' | DEFAULT }
      | HealthCheckTimeout = { 'health_check_time-out' | DEFAULT }
      }

<hadr_cluster_context> ::=
   HADR CLUSTER CONTEXT = { 'remote_windows_cluster' | LOCAL }

参数

<process_affinity> ::=

  • PROCESS AFFINITY
    使硬件线程与 CPU 相关联。

  • CPU = { AUTO | <CPU_range_spec> }
    将 SQL Server 工作线程分发到指定范围内的各 CPU。超出了指定范围的 CPU 将不会分配有线程。

    • AUTO
      指定没有为 CPU 分配线程。操作系统可以基于服务器工作负荷在 CPU 之间自由地移动线程。这是默认值,还是推荐设置。

    • <CPU_range_spec> ::=
      指定要将线程指定给的 CPU 或 CPU 范围。

    • { CPU_ID | CPU_ID TO CPU_ID } [ ,...n ]
      一个或多个 CPU 的列表。CPU ID 从 0 开始且为 integer 值。
  • NUMANODE = <NUMA_node_range_spec>
    将线程分配给属于指定 NUMA 节点或节点范围的所有 CPU。

    • <NUMA_node_range_spec> ::=
      指定 NUMA 节点或 NUMA 节点范围。

    • { NUMA_node_ID | NUMA_node_ID TO NUMA_node_ID } [ ,...n ]
      一个或多个 NUMA 节点的列表。NUMA 节点 ID 从 0 开始且为 integer 值。

<diagnostic_log> ::=

  • DIAGNOSTICS LOG
    启动或停止对 sp_server_diagnostics 过程捕获的诊断数据的日志记录,并设置 SQLDIAG 日志配置参数,如日志文件滚动更新计数、日志文件大小和文件位置。有关详细信息,请参阅查看和读取故障转移群集实例诊断日志

  • ON
    在 PATH 文件选项指定的位置启动对 SQL Server 诊断数据的日志记录。这是默认设置。

  • OFF
    停止对诊断数据的日志记录。

  • PATH = { 'os_file_path' | DEFAULT }
    指示诊断日志位置的路径。默认位置是 SQL Server 故障转移群集实例的安装文件夹中的 <\MSSQL\Log>。

  • MAX_SIZE = { 'log_max_size' MB | DEFAULT }
    每个诊断日志可以增长到的最大大小 (MB)。默认值为 100 MB。

  • MAX_FILES = { 'max_file_count' | DEFAULT }
    可以存储在计算机上的诊断日志文件的最大数量,超过该数量后这些文件将被新的诊断日志所取代。

<failover_cluster_property> ::=

  • FAILOVER CLUSTER PROPERTY
    修改 SQL Server 资源专用的故障转移群集属性。

  • VERBOSE LOGGING = { 'logging_detail' | DEFAULT }
    设置 SQL Server 故障转移群集的日志记录级别。可以通过启用该属性在错误日志中提供更多详细信息以排除故障。

    • 0 – 禁用日志记录(默认值)

    • 1 - 仅限错误

    • 2 – 错误和警告

  • SQLDUMPEREDUMPFLAGS
    确定 SQL Server SQLDumper 实用工具生成的转储文件的类型。默认设置为 0。有关详细信息,请参阅 SQL Server Dumper 实用工具知识库文章

  • SQLDUMPERDUMPPATH = { 'os_file_path' | DEFAULT }
    SQLDumper 实用工具存储转储文件的位置。有关详细信息,请参阅 SQL Server Dumper Utility Knowledgebase article(SQL Server Dumper 实用工具知识库文章)。

  • SQLDUMPERDUMPTIMEOUT = { 'dump_time-out' | DEFAULT }
    超时值(毫秒),一旦 SQL Server 失败,SQLDumper 实用工具即在该超时值后生成转储。默认值为 0,表示完成该转储没有时间限制。有关详细信息,请参阅 SQL Server Dumper Utility Knowledgebase article(SQL Server Dumper 实用工具知识库文章)。

  • FAILURECONDITIONLEVEL = { 'failure_condition_level' | DEFAULT }
    SQL Server 故障转移群集实例应在什么状况下进行故障转移或重新启动。默认值是 3,这表示 SQL Server 资源将在出现严重服务器错误时进行故障转移或重新启动。有关此故障条件级别和其他故障条件级别的详细信息,请参阅配置 FailureConditionLevel 属性设置

  • HEALTHCHECKTIMEOUT = { 'health_check_time-out' | DEFAULT }
    超时值,即 SQL Server 数据库引擎资源 DLL 在认定 SQL Server 实例不响应之前应等待服务器运行状况信息的时间。该超时值用毫秒表示。默认值为 60000 毫秒(60 秒)。

<hadr_cluster_context> ::=

  • HADR CLUSTER CONTEXT = { 'remote_windows_cluster' | LOCAL }
    将服务器实例的 HADR 群集上下文切换到指定的 Windows Server 故障转移群集 (WSFC) 群集。“HADR 群集上下文”用于确定哪些 Windows Server 故障转移群集 (WSFC) 群集管理由服务器实例承载的可用性副本的元数据。仅在 AlwaysOn 可用性组 跨群集迁移到新 WSFC 群集上的 SQL Server 2012 SP1 实例的过程中使用 SET HADR CLUSTER CONTEXT 选项。

    您只能将 HADR 群集上下文从本地 WSFC 群集切换到远程群集,然后再从远程群集切换回本地群集。只有在 SQL Server 实例不承载任何可用性副本时,才能将 HADR 群集上下文切换到远程群集。

    远程 HADR 群集上下文随时可以切换回本地群集。但是,只要服务器实例承载任何可用性副本,该上下文将无法再进行切换。

    若要标识目标群集,请指定下列值之一:

    • windows_cluster
      WSFC 群集的群集对象名称 (CON)。您可以指定短名称或者完整的域名称。为了找到短名称的目标 IP 地址,ALTER SERVER CONFIGURATION 使用 DNS 解析。在某些情况下,短名称可能导致混淆,DNS 可能返回错误的 IP 地址。因此,我们建议您指定完整的域名。

    • LOCAL
      本地 WSFC 群集。

    有关详细信息,请参阅更改服务器实例的 HADR 群集上下文 (SQL Server)

一般备注

此语句不要求重新启动 SQL Server。对于 SQL Server 故障转移群集实例,它不需要重新启动该 SQL Server 群集资源。

限制和局限

此语句不支持 DDL 触发器。

权限

对于进程关联选项需要 ALTER SETTINGS 权限。对于诊断日志和故障转移群集属性选项需要 ALTER SETTINGS 和 VIEW SERVER STATE 权限,对于 HADR 群集上下文选项需要 CONTROL SERVER 权限。

SQL Server 数据库引擎资源 DLL 以本地系统帐户身份运行。因此,本地系统帐户必须对诊断日志选项中的指定路径具有读写访问权限。

示例

类别

作为特征的语法元素

设置进程关联

CPU • NUMANODE • AUTO

设置诊断日志选项

ON • OFF • PATH • MAX_SIZE

设置故障转移群集属性

HealthCheckTimeout

更改可用性副本的群集上下文

'windows_cluster'

设置进程关联

本节中的示例显示如何设置与 CPU 和 NUMA 节点的进程关联。该示例假定服务器包含 256 个 CPU,这些 CPU 分为四组,每组各有 16 个 NUMA 节点。线程未分配给任何 NUMA 节点或 CPU。

  • 组 0:NUMA 节点 0 到 3,CPU 0 到 63

  • 组 1:NUMA 节点 4 到 7,CPU 64 到 127

  • 组 2:NUMA 节点 8 到 12,CPU 128 到 191

  • 组 3:NUMA 节点 13 到 16,CPU 192 到 255

A. 设置与 0 和 2 组中所有 CPU 的关联

下面的示例设置与 0 和 2 组中所有 CPU 的关联。

ALTER SERVER CONFIGURATION 
SET PROCESS AFFINITY CPU=0 TO 63, 128 TO 191;

B. 设置与 NUMA 节点 0 和 7 中所有 CPU 的关联

下面的示例仅设置与节点 0 和 7 的 CPU 关联。

ALTER SERVER CONFIGURATION 
SET PROCESS AFFINITY NUMANODE=0, 7;

C. 设置与 CPU 60 到 200 的关联

下面的示例设置与 CPU 60 到 200 的关联。

ALTER SERVER CONFIGURATION 
SET PROCESS AFFINITY CPU=60 TO 200;

D. 设置与具有两个 CPU 的系统上的 CPU 0 的关联

下面的示例设置与具有两个 CPU 的计算机上的 CPU=0 的关联。在执行以下语句前,内部关联位掩码为 00。

ALTER SERVER CONFIGURATION SET PROCESS AFFINITY CPU=0;

E. 设置与 AUTO 的关联

下面的示例将关联设置为 AUTO。

ALTER SERVER CONFIGURATION
SET PROCESS AFFINITY CPU=AUTO;

设置诊断日志选项

本节中的示例说明如何设置诊断日志选项的值。

A. 启动诊断日志记录

下面的示例启动诊断数据的日志记录。

ALTER SERVER CONFIGURATION SET DIAGNOSTICS LOG ON;

B. 停止诊断日志记录

下面的示例停止诊断数据的日志记录。

ALTER SERVER CONFIGURATION SET DIAGNOSTICS LOG OFF;

C. 指定诊断日志的位置

下面的示例将诊断日志的位置设置为指定的文件路径。

ALTER SERVER CONFIGURATION
SET DIAGNOSTICS LOG PATH = 'C:\logs';

D. 指定每个诊断日志的最大大小

以下示例将每个诊断日志的最大大小设置为 10 MB。

ALTER SERVER CONFIGURATION 
SET DIAGNOSTICS LOG MAX_SIZE = 10 MB;

设置故障转移群集属性

下面的示例说明如何设置 SQL Server 故障转移群集资源属性的值。

A. 指定 HealthCheckTimeout 属性的值

下面的示例将 HealthCheckTimeout 选项设置为 15,000 毫秒(15 秒)。

ALTER SERVER CONFIGURATION 
SET FAILOVER CLUSTER PROPERTY HealthCheckTimeout = 15000;

更改可用性副本的群集上下文

下面的示例更改 SQL Server 实例的 HADR 群集上下文。为了指定目标 WSFC 群集 (clus01),本示例指定完整的群集对象名称 (clus01.xyz.com)。

ALTER SERVER CONFIGURATION SET HADR CLUSTER CONTEXT = 'clus01.xyz.com';

请参阅

任务

将 SQL Server 配置为使用软件 NUMA (SQL Server)

参考

sys.dm_os_schedulers (Transact-SQL)

sys.dm_os_memory_nodes (Transact-SQL)

概念

更改服务器实例的 HADR 群集上下文 (SQL Server)