ALTER SERVER CONFIGURATION (Transact-SQL)
修改 SQL Server 2012 中目前伺服器的全域組態設定。
語法
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 識別碼從 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 節點識別碼從 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 傾印工具公用程式知識庫文件。SQLDUMPERDUMPPATH = { 'os_file_path' | DEFAULT }
SQLDumper 公用程式儲存傾印檔案的位置。如需詳細資訊,請參閱<SQL Server 傾印工具公用程式知識庫文件>。SQLDUMPERDUMPTIMEOUT = { 'dump_time-out' | DEFAULT }
當 SQL Server 發生失敗時,SQLDumper 公用程式產生傾印的逾時值 (以毫秒為單位)。預設值為 0,這表示完成傾印沒有時間限制。如需詳細資訊,請參閱<SQL Server 傾印工具公用程式知識庫文件>。FAILURECONDITIONLEVEL = { 'failure_condition_level' | DEFAULT }
SQL Server 容錯移轉叢集執行個體應該容錯移轉或重新啟動的條件。預設值為 3,這表示 SQL Server 資源將會在發生嚴重伺服器錯誤時容錯移轉或重新啟動。如需有關此失敗條件層次與其他失敗條件層次的詳細資訊,請參閱<設定 FailureConditionLeve 屬性設定>。HEALTHCHECKTIMEOUT = { 'health_check_time-out' | DEFAULT }
SQL Server Database Engine 資源 DLL 在將 SQL Server 執行個體視為無回應之前,應該等候伺服器健全狀態資訊的逾時值。逾時值以毫秒格式表示。預設值為 60000 毫秒 (60 秒)。
<hadr 叢集內容> ::=
HADR CLUSTER CONTEXT = { 'remote_windows_cluster' | LOCAL }
將伺服器執行個體的 HADR 叢集內容切換至指定的 Windows Server 容錯移轉叢集 (WSFC) 叢集。「HADR 叢集內容」(HADR Cluster Context) 會決定哪一個 Windows Server 容錯移轉叢集 (WSFC) 叢集會管理伺服器執行個體所裝載可用性複本的中繼資料。僅在跨叢集移轉 AlwaysOn 可用性群組 至新 WSFC 叢集上的 SQL Server 2012 SP1 執行個體時,才使用 SET HADR CLUSTER CONTEXT 選項。您只能將 HADR 叢集內容從本機 WSFC 叢集切換至遠端叢集,然後從遠端叢集切換回本機叢集。HADR 叢集內容只有在 SQL Server 執行個體未裝載任何可用性複本時,才能切換至遠端叢集。
遠端 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 Database Engine 資源 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
下列範例會將 CPU 相似性設定為只有節點 0 和 7。
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)