本頁說明如何設定 Cloud SQL 的資料庫旗標,並列出可為執行個體設定的旗標。您可以使用資料庫標記執行許多作業,包括調整 SQL Server 參數、調整選項,以及設定和調整執行個體。
設定、移除或修改資料庫執行個體的標記時,資料庫可能會重新啟動。移除之前,系統都會保留執行個體的旗標值。如果執行個體是副本的來源,且執行個體已重新啟動,副本也會重新啟動,以配合執行個體的目前設定。
設定資料庫旗標
下列各節將說明常見的標記管理工作。
設定資料庫旗標
控制台
- 在 Google Cloud 控制台中,選取包含要設定資料庫旗標的 Cloud SQL 執行個體的專案。
- 開啟執行個體並按一下 [編輯]。
- 前往「旗標」部分。
- 如要設定先前未在執行個體上設定的標記,請按一下「新增項目」,從下拉式選單中選擇標記,然後設定其值。
- 按一下 [儲存] 以儲存變更。
- 在「總覽」頁面的「標記」下方,確認您所做的變更。
gcloud
編輯執行個體:
gcloud sql instances patch INSTANCE_NAME --database-flags=FLAG1=VALUE1,FLAG2=VALUE2
這項指令會覆寫先前設定的所有資料庫標記。如要保留這些標記並新增標記,請加入要在執行個體上設定的所有標記值;任何未明確加入的標記都會設為預設值。對於未設定值的旗標,請指定旗標名稱,然後加上等號「=」。
舉例來說,如要設定 1204
、remote access
和 remote query timeout (s)
旗標,可以使用下列指令:
gcloud sql instances patch INSTANCE_NAME \ --database-flags="1204"=on,"remote access"=on,"remote query timeout (s)"=300
Terraform
如要新增資料庫旗標,請使用 Terraform 資源。
套用變更
如要在 Google Cloud 專案中套用 Terraform 設定,請完成下列各節的步驟。
準備 Cloud Shell
- 啟動 Cloud Shell。
-
設定要套用 Terraform 設定的預設 Google Cloud 專案。
每項專案只需要執行一次這個指令,且可以在任何目錄中執行。
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
如果您在 Terraform 設定檔中設定明確值,環境變數就會遭到覆寫。
準備目錄
每個 Terraform 設定檔都必須有自己的目錄 (也稱為根模組)。
-
在 Cloud Shell 中建立目錄,並在該目錄中建立新檔案。檔案名稱的副檔名必須是
.tf
,例如main.tf
。在本教學課程中,這個檔案稱為main.tf
。mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
如果您正在學習教學課程,可以複製每個章節或步驟中的範例程式碼。
將範例程式碼複製到新建立的
main.tf
。視需要從 GitHub 複製程式碼。如果 Terraform 程式碼片段是端對端解決方案的一部分,建議您使用這個方法。
- 查看並修改範例參數,套用至您的環境。
- 儲存變更。
-
初始化 Terraform。每個目錄只需執行一次這項操作。
terraform init
如要使用最新版 Google 供應商,請加入
-upgrade
選項:terraform init -upgrade
套用變更
-
檢查設定,確認 Terraform 即將建立或更新的資源符合您的預期:
terraform plan
視需要修正設定。
-
執行下列指令,並在提示中輸入
yes
,即可套用 Terraform 設定:terraform apply
等待 Terraform 顯示「Apply complete!」訊息。
- 開啟 Google Cloud 專案即可查看結果。在 Google Cloud 控制台中,前往 UI 中的資源,確認 Terraform 已建立或更新這些資源。
刪除變更
如要刪除變更,請按照下列步驟操作:
- 如要停用防刪除功能,請在 Terraform 設定檔中將
deletion_protection
引數設為false
。deletion_protection = "false"
- 執行下列指令,並在提示中輸入
yes
,套用更新的 Terraform 設定:terraform apply
-
執行下列指令,並在提示中輸入
yes
,移除先前透過 Terraform 設定套用的資源:terraform destroy
REST v1
如要為現有資料庫設定旗標,請按照下列步驟操作:
使用任何要求資料之前,請先替換以下項目:
- project-id:專案 ID
- instance-id:執行個體 ID
HTTP 方法和網址:
PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id
JSON 要求主體:
{ "settings": { "databaseFlags": [ { "name": "flag_name", "value": "flag_value" } ] } }
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
如果資料庫目前已設有標記,請修改前一指令以併入這些標記。PATCH
指令會以要求中指定的值覆寫現有的標記。
REST v1beta4
如要為現有資料庫設定旗標,請按照下列步驟操作:
使用任何要求資料之前,請先替換以下項目:
- project-id:專案 ID
- instance-id:執行個體 ID
HTTP 方法和網址:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id
JSON 要求主體:
{ "settings": { "databaseFlags": [ { "name": "flag_name", "value": "flag_value" } ] } }
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
如果資料庫目前已設有標記,請修改前一指令以併入這些標記。PATCH
指令會以要求中指定的值覆寫現有的標記。
將所有旗標清除為預設值
控制台
- 在 Google Cloud 控制台中,選取含有要清除所有標記的 Cloud SQL 執行個體的專案。
- 開啟執行個體並按一下 [編輯]。
- 開啟「資料庫標記」區段。
- 按一下畫面上所有顯示標記旁的 [X]。
- 按一下 [儲存] 以儲存變更。
gcloud
清除執行個體中所有標記並轉為預設值:
gcloud sql instances patch INSTANCE_NAME \ --clear-database-flags
系統會提示您將重新啟動執行個體。
REST v1
清除現有執行個體的所有標記:
使用任何要求資料之前,請先替換以下項目:
- project-id:專案 ID
- instance-id:執行個體 ID
HTTP 方法和網址:
PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id
JSON 要求主體:
{ "settings": { "databaseFlags": [] } }
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
REST v1beta4
清除現有執行個體的所有標記:
使用任何要求資料之前,請先替換以下項目:
- project-id:專案 ID
- instance-id:執行個體 ID
HTTP 方法和網址:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id
JSON 要求主體:
{ "settings": { "databaseFlags": [] } }
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
判斷執行個體已設定哪些資料庫旗標
如要查看 Cloud SQL 執行個體已設定的旗標:
控制台
- 在 Google Cloud 控制台中,選取包含 Cloud SQL 執行個體的專案,查看已設定的資料庫標記。
- 選取執行個體,開啟「Instance Overview」(執行個體總覽) 頁面。
在「資料庫標記」區段下方會列出已設定的資料庫標記。
gcloud
取得執行個體狀態:
gcloud sql instances describe INSTANCE_NAME
在輸出中,資料庫標記會列示為 settings
底下的 databaseFlags
集合。如要進一步瞭解輸出內容中的旗標表示法,請參閱執行個體資源表示法。
REST v1
列出已針對執行個體設定的標記:
使用任何要求資料之前,請先替換以下項目:
- project-id:專案 ID
- instance-id:執行個體 ID
HTTP 方法和網址:
GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
在輸出中,找出 databaseFlags
欄位。
REST v1beta4
列出已針對執行個體設定的標記:
使用任何要求資料之前,請先替換以下項目:
- project-id:專案 ID
- instance-id:執行個體 ID
HTTP 方法和網址:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
在輸出中,找出 databaseFlags
欄位。
支援的標記
Cloud SQL 僅支援本節列出的旗標。
Cloud SQL 標記 | 類型 可接受的值與附註 |
重新啟動 是否需要? |
---|---|---|
1204 (追蹤標記) | boolean on | off |
否 |
1222 (追蹤標記) | boolean on | off |
否 |
1224 (追蹤標記) | boolean on | off |
否 |
2528 (追蹤標記) | boolean on | off |
否 |
3205 (追蹤標記) | boolean on | off |
否 |
3226 (追蹤旗標) | boolean on | off |
否 |
3625 (追蹤記錄旗標) | boolean on | off |
是 |
4199 (追蹤旗標) | boolean on | off |
否 |
4616 (追蹤旗標) | boolean on | off |
否 |
7806 (追蹤標記) | boolean on | off |
是 |
存取檢查快取 bucket 數量 | integer 0 ... 65536 |
否 |
存取檢查快取配額 | integer 0 ... 2147483647 |
否 |
親和性遮罩 | integer 2147483648 ... 2147483647 |
否 |
agent xps | boolean on | off |
否 |
automatic soft-numa disabled | boolean on | off |
是 |
cloud sql xe bucket name | string Bucket 名稱開頭必須為 gs:// 前置字串。 |
否 |
cloud sql xe output total disk size (mb) | integer 10 ... 512 |
否 |
cloud sql xe file retention (mins) | integer 0 ... 10080 |
否 |
cloud sql xe upload interval (mins) | integer 1 ... 60 |
否 |
cloudsql enable linked servers | boolean on | off |
否 |
平行處理費用門檻 | integer 0 ... 32767 |
否 |
contained database authentication | boolean on | off
|
否 |
cross db ownership chaining | boolean on | off
|
否 |
游標門檻 | integer -1 ... 2147483647 |
否 |
預設全文語言 | integer 0 ... 2147483647 |
否 |
預設語言 | integer 0 ... 32 |
否 |
已啟用預設追蹤 | boolean on | off |
否 |
不允許觸發條件傳回結果 | boolean on | off |
否 |
external scripts enabled | boolean on | off |
是 |
ft 檢索頻寬 (上限) | integer 0 ... 32767 |
否 |
ft 檢索頻寬 (分鐘) | integer 0 ... 32767 |
否 |
ft notify bandwidth (max) | integer 0 ... 32767 |
否 |
ft notify bandwidth (min) | integer 0 ... 32767 |
否 |
填充係數 (%) | integer 0 ... 100 |
否 |
index create memory (kb) | integer 704 ... 2147483647 |
否 |
智慧門鎖 | integer 5000 ... 2147483647 |
是 |
伺服器記憶體上限 (MB) | integer 1000 ... 2147483647
Cloud SQL 可能會根據 Microsoft 建議的值,為執行個體設定這個旗標的值。詳情請參閱「特殊標記」。 |
否 |
max text repl size (b) | integer -1 ... 2147483647 |
否 |
max worker threads | integer 128 ... 65535 |
否 |
巢狀觸發條件 | boolean on | off |
否 |
針對臨時工作負載進行最佳化 | boolean on | off |
否 |
ph timeout (s) | integer 1 ... 3600 |
否 |
查詢控管工具費用上限 | integer 0 ... 2147483647 |
否 |
查詢等待時間 (秒) | integer -1 ... 2147483647 |
否 |
恢復間隔 (分鐘) | integer 0 ... 32767 |
否 |
遠端存取 | boolean on | off |
是 |
remote login timeout (s) | integer 0 ... 2147483647 |
否 |
遠端查詢逾時 (秒) | integer 0 ... 2147483647 |
否 |
轉換噪音字詞 | boolean on | off |
否 |
兩位數年份截斷值 | integer 1753 ... 9999 |
否 |
使用者連線 | integer 0 、10 ... 32767 |
是 |
使用者選項 | integer 0 ... 32767 |
否 |
特殊標記
本節提供 SQL Server 適用的 Cloud SQL 旗標相關資訊。
max server memory (mb)
max server memory (mb)
標記會限制 Cloud SQL 可分配給內部集區的記憶體量。
建議您不要為這個旗標設定值,讓 Cloud SQL 為您管理值。如果必須手動管理這個值,一般建議將 max server memory (mb)
值設為可用記憶體的 80% 左右,以防 SQL Server 耗用所有記憶體。
反之,對於記憶體容量大的執行個體,80% 的可用記憶體可能太低,導致記憶體使用量浪費。
如果未設定這個旗標的值,Cloud SQL 會根據執行個體的 RAM 大小自動管理值。此外,如果您調整執行個體大小,Cloud SQL 會自動調整旗標值,以符合新執行個體大小的建議。這項調整大小作業也會移除此旗標的所有手動設定值。這有助於資料庫更有效率地運用資源,避免過度分配資源、減少因記憶體不足而當機的可能性,並避免執行個體效能下滑。
疑難排解
問題 | 疑難排解 |
---|---|
您想修改 Cloud SQL 執行個體的時區。 |
如要瞭解如何更新執行個體的時區,請參閱「執行個體設定」。 在 SQL Server 適用的 Cloud SQL 中,您可以使用 |
後續步驟
- 進一步瞭解 SQL Server 設定選項。