本頁面說明如何設定 Cloud SQL 的資料庫旗標,並列出可為執行個體設定的旗標。您可以使用資料庫標記執行許多作業,包括調整 SQL Server 參數、調整選項,以及設定及調整執行個體。
設定、移除或修改資料庫執行個體的標記時,資料庫可能會重新啟動。移除之前,系統都會保留執行個體的旗標值。如果執行個體是備用資源的來源,且重新啟動執行個體,備用資源也會重新啟動,以便與執行個體的目前設定保持一致。
設定資料庫旗標
設定資料庫旗標
控制台
- 在 Google Cloud 控制台中,選取要設定資料庫旗標的 Cloud SQL 執行個體所在專案。
- 開啟執行個體並按一下 [編輯]。
- 向下捲動至「旗標」區段。
- 如要設定在執行個體中未設定的標記,請按一下「Add item」,從下拉式選單中選擇標記,然後設定其值。
- 按一下 [儲存] 以儲存變更。
- 在「總覽」頁面的「標記」下方,確認您所做的變更。
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
-
如要移除先前透過 Terraform 設定套用的資源,請執行下列指令,並在提示中輸入
yes
: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
集合。如要進一步瞭解輸出內容中的標記表示法,請參閱「Instances Resource Representation」。
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 |
是 |
存取檢查快取值區計數 | integer 0 ... 65536 |
否 |
存取檢查快取配額 | integer 0 ... 2147483647 |
否 |
相依性遮罩 | integer 2147483648 ... 2147483647 |
否 |
agent xps | boolean on | off |
否 |
自動軟性數量限制已停用 | boolean on | off |
是 |
cloud sql xe 值區名稱 | string Bucket 名稱開頭必須是 gs:// 前置字串。 |
否 |
cloud sql xe 輸出磁碟總大小 (mb) | integer 10 ... 512 |
否 |
cloud sql xe 檔案保留時間 (分鐘) | integer 0 ... 10080 |
否 |
cloud sql xe 上傳間隔 (分鐘) | 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 |
否 |
default language | integer 0 ... 32 |
否 |
已啟用預設追蹤功能 | boolean on | off |
否 |
禁止使用觸發條件傳回的結果 | boolean on | off |
否 |
已啟用外部指令碼 | 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 |
否 |
索引建立記憶體 (KB) | integer 704 ... 2147483647 |
否 |
智慧門鎖 | integer 5000 ... 2147483647 |
是 |
最大伺服器記憶體 (MB) | integer 1000 ... 2147483647
Cloud SQL 可能會根據 Microsoft 建議的值,為執行個體設定這個旗標的值。詳情請參閱「特殊標記」。 |
否 |
最大文字替換大小 (b) | integer -1 ... 2147483647 |
否 |
最大工作者執行緒 | integer 128 ... 65535 |
否 |
巢狀觸發條件 | boolean on | off |
否 |
針對臨時工作負載進行最佳化 | boolean on | off |
否 |
ph 逾時 (秒) | integer 1 ... 3600 |
否 |
查詢限制器費用上限 | integer 0 ... 2147483647 |
否 |
查詢等待時間 (秒) | integer -1 ... 2147483647 |
否 |
恢復間隔 (分鐘) | integer 0 ... 32767 |
否 |
遠端存取 | boolean on | off |
是 |
遠端登入逾時 (秒) | 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)
這個標記會限制 Cloud SQL 可為其內部集區分配的記憶體量。一般建議將旗標值設為約 80%,以免 SQL Server 耗用 Cloud SQL 執行個體的所有可用記憶體。如果您將值設為大於 80%,可能會因為記憶體不足而導致不穩定、效能降低和資料庫當機。
如果您未為此標記設定值,Cloud SQL 會根據執行個體的 RAM 大小自動管理這個值。此外,如果您調整執行個體大小,Cloud SQL 會自動調整標記的值,以符合我們建議的新執行個體大小。這可確保資料庫有效運用資源,避免發生資源超額分配、當機和效能降低的問題。
疑難排解
問題 | 疑難排解 |
---|---|
您想修改 Cloud SQL 執行個體的時區。 |
如要瞭解如何更新執行個體的時區,請參閱「執行個體設定」。 在 SQL Server 適用的 Cloud SQL 中,您可以使用 |
後續步驟
- 進一步瞭解 SQL Server 設定選項。