本頁面說明如何為 Cloud SQL 執行個體設定 Managed Connection Pooling。
事前準備
- 確認您的執行個體符合使用 Managed Connection Pooling 的所有規定。
- 如果您使用 gcloud CLI,請使用
gcloud beta
指令,並確認 gcloud CLI 版本為515.0.0
以上版本。 - 確認執行個體是否使用新的 Cloud SQL 網路架構。如果執行個體仍在使用舊版網路架構,請升級為新版網路架構。
您可以在建立執行個體時啟用 Managed Connection Pooling,或是編輯現有執行個體來啟用。
為新執行個體啟用代管連線集區
如要建立啟用 Managed Connection Pooling 的執行個體,請參閱「建立執行個體」。您可以使用 gcloud CLI 或 Cloud SQL API,為執行個體啟用 Managed Connection Pooling。
為現有執行個體啟用代管連線集區
您可以使用Google Cloud 控制台、gcloud CLI 或 Cloud SQL API,為現有執行個體啟用 Managed Connection Pooling。您必須先啟用代管連線集區,才能修改代管連線集區選項。
主控台
前往 Google Cloud 控制台的「Cloud SQL 執行個體」頁面。
找出要為其啟用代管連線集區的執行個體。如要開啟執行個體的「總覽」頁面,請按一下執行個體名稱。
按一下 [編輯]。
展開「自訂執行個體」下方的「連線」。
如要啟用代管連線集區,請勾選「Enable Managed Connection Pool」方塊。
按一下 [儲存]。
gcloud
使用 gcloud beta sql instances
指令啟用代管連線集區。
gcloud beta sql instances patch INSTANCE_NAME \
--enable-connection-pooling
更改下列內容:
INSTANCE_NAME
:您要為其啟用受管理連線資源池的 Cloud SQL 執行個體名稱。
REST v1
如要為現有執行個體啟用 Managed Connection Pooling,請使用下列指令並設定 connectionPoolingEnabled
:
使用任何要求資料之前,請先替換以下項目:
- PROJECT_ID:專案 ID
- INSTANCE_ID:執行個體 ID
HTTP 方法和網址:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID
JSON 要求主體:
{ "settings": { "connectionPoolConfig": { "connectionPoolingEnabled": true } } }
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "[email protected]", "insertTime": "2020-01-16T02:32:12.281Z", "operationType": "UPDATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
REST v1beta4
如要為現有執行個體啟用 Managed Connection Pooling,請使用下列指令並設定 connectionPoolingEnabled
:
使用任何要求資料之前,請先替換以下項目:
- PROJECT_ID:專案 ID
- INSTANCE_ID:執行個體 ID
HTTP 方法和網址:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
JSON 要求主體:
{ "settings": { "connectionPoolConfig": { "connectionPoolingEnabled": true } } }
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "[email protected]", "insertTime": "2020-01-16T02:32:12.281Z", "operationType": "UPDATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
修改執行個體的代管連線集區
啟用代管連線集區後,您可以使用可用的設定選項自訂代管連線集區。這些設定選項稱為「Managed Connection Pooling」集區標記。新增至 Managed Connection Pooling 的設定會套用至執行個體使用的所有集區器。如要進一步瞭解可用的設定選項、其預設值和範圍,請參閱「可用的設定選項」。
如要修改執行個體可用的 Managed Connection Pooling 設定選項,請執行下列操作:
主控台
前往 Google Cloud 控制台的「Cloud SQL 執行個體」頁面。
找出要啟用代管連線集區的執行個體。如要開啟執行個體的「總覽」頁面,請按一下執行個體名稱。
按一下 [編輯]。
展開「自訂執行個體」下方的「連線」。
在「Managed connection pool」(代管連線集區) 下方,展開「Advanced pooling options」(進階集區選項)。
修改要更新的可用彙整選項。
按一下 [儲存]。
gcloud
使用 gcloud beta sql instances
指令修改設定選項。
gcloud beta sql instances patch INSTANCE_NAME \
--connection-pool-flags=CONFIGURATION_NAME=CONFIGURATION_VALUE
更改下列內容:
INSTANCE_NAME
:您要修改受管理連線資源池的 Cloud SQL 執行個體名稱。CONFIGURATION_NAME
:您要修改的設定選項名稱。如需所有可用設定選項的清單,請參閱「可用的設定選項」。CONFIGURATION_VALUE
:您所選設定選項的新值。
REST v1
如要修改 Managed Connection Pooling 可用設定,請使用下列指令並設定 ConnectionPoolConfig
:
使用任何要求資料之前,請先替換以下項目:
- PROJECT_ID:專案 ID
- INSTANCE_ID:執行個體 ID
HTTP 方法和網址:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID
JSON 要求主體:
{ "settings": { "connectionPoolConfig": { "flags": [ { "name": "CONFIGURATION_NAME", "value":"CONFIGURATION_VALUE" } ] } } }
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "[email protected]", "insertTime": "2020-01-16T02:32:12.281Z", "operationType": "UPDATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
REST v1beta4
如要修改 Managed Connection Pooling 可用設定,請使用下列指令並設定 ConnectionPoolConfig
:
使用任何要求資料之前,請先替換以下項目:
- PROJECT_ID:專案 ID
- INSTANCE_ID:執行個體 ID
HTTP 方法和網址:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
JSON 要求主體:
{ "settings": { "connectionPoolConfig": { "flags": [ { "name": "CONFIGURATION_NAME", "value":"CONFIGURATION_VALUE" } ] } } }
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "[email protected]", "insertTime": "2020-01-16T02:32:12.281Z", "operationType": "UPDATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
為執行個體停用代管連線集區
您可以使用Google Cloud 控制台、gcloud CLI 或 Cloud SQL API,為現有執行個體停用 Managed Connection Pooling。
如要為執行個體停用代管連線集區,請按照下列步驟操作:
主控台
前往 Google Cloud 控制台的「Cloud SQL 執行個體」頁面。
找出要停用代管連線集區的執行個體。如要開啟執行個體的「總覽」頁面,請按一下執行個體名稱。
按一下 [編輯]。
展開「自訂執行個體」下方的「連線」。
如要停用代管連線集區,請取消勾選「Enable Managed Connection Pool」方塊。
按一下 [儲存]。
gcloud
使用 gcloud beta sql instances
指令停用 Managed Connection Pooling。
gcloud beta sql instances patch INSTANCE_NAME \
--no-enable-connection-pooling
更改下列內容:
PROJECT_ID
:您要為其停用 Managed Connection Pooling 的 Cloud SQL 執行個體名稱。
REST v1
如要為執行個體停用 Managed Connection Pooling,請使用下列指令並設定 connectionPoolingEnabled
:
使用任何要求資料之前,請先替換以下項目:
- PROJECT_ID:專案 ID
- INSTANCE_ID:執行個體 ID
HTTP 方法和網址:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID
JSON 要求主體:
{ "settings": { "connectionPoolConfig": { "connectionPoolingEnabled": false } } }
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "[email protected]", "insertTime": "2020-01-16T02:32:12.281Z", "operationType": "UPDATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
REST v1beta4
如要為執行個體停用 Managed Connection Pooling,請使用下列指令並設定 connectionPoolingEnabled
:
使用任何要求資料之前,請先替換以下項目:
- PROJECT_ID:專案 ID
- INSTANCE_ID:執行個體 ID
HTTP 方法和網址:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
JSON 要求主體:
{ "settings": { "connectionPoolConfig": { "connectionPoolingEnabled": false } } }
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "[email protected]", "insertTime": "2020-01-16T02:32:12.281Z", "operationType": "UPDATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
查看執行個體的代管連線集區狀態
您可以使用 Google Cloud 控制台、gcloud CLI 或 Cloud SQL API 查看執行個體的 Managed Connection Pooling 狀態。
如要查看 Cloud SQL Enterprise Plus 版執行個體的受管理連線資源池狀態,請按照下列步驟操作:
主控台
前往 Google Cloud 控制台的「Cloud SQL 執行個體」頁面。
找出要查看代管連線集區狀態的執行個體。如要開啟執行個體的「總覽」頁面,請按一下執行個體名稱。
「連線」部分會顯示是否已啟用或停用代管連線集區。
gcloud
gcloud beta sql instances describe INSTANCE_NAME
--format="value(settings.connectionPoolConfig.connectionPoolingEnabled)"
更改下列內容:
PROJECT_ID
:您要查看 Managed Connection Pooling 狀態的 Cloud SQL 執行個體名稱。如果已啟用代管連線集區,系統會傳回以下回應:
connectionPoolingEnabled: true
REST v1
如要查看 Cloud SQL 執行個體的受管理連線集區狀態,請使用下列指令並查看 connectionPoolingEnabled
:
使用任何要求資料之前,請先替換以下項目:
- PROJECT_ID:包含執行個體的 Google Cloud 專案 ID 或專案編號。
- INSTANCE_NAME:Cloud SQL 執行個體的名稱。如果這個執行個體已啟用 Private Service Connect,虛擬私有雲網路中的 Private Service Connect 端點就能連線至這個執行個體。
HTTP 方法和網址:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "POSTGRES_13", "settings": { "authorizedGaeApplications": [], "tier": "db-custom-2-7680", "kind": "sql#settings", "availabilityType": "REGIONAL", "pricingPlan": "PER_USE", "replicationType": "SYNCHRONOUS", "activationPolicy": "ALWAYS", "ipConfiguration": { "authorizedNetworks": [], "pscConfig": { "allowedConsumerProjects": [ "ALLOWED_PROJECTS" ], "pscEnabled": true }, "ipv4Enabled": false }, ... "createTime": "2023-06-14T18:48:34.975Z", "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE", "pscServiceAttachmentLink": "projects/PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_ID", "dnsName": "DNS_NAME" }
REST v1beta4
如要查看 Cloud SQL 執行個體的受管理連線資源池狀態,請使用下列指令並查看 connectionPoolingEnabled
:
使用任何要求資料之前,請先替換以下項目:
- PROJECT_ID:包含執行個體的 Google Cloud 專案 ID 或專案編號。
- INSTANCE_NAME:Cloud SQL 執行個體的名稱。如果這個執行個體已啟用 Private Service Connect,虛擬私有雲網路中的 Private Service Connect 端點就能連線至這個執行個體。
HTTP 方法和網址:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "POSTGRES_13", "settings": { "authorizedGaeApplications": [], "tier": "db-custom-2-7680", "kind": "sql#settings", "availabilityType": "REGIONAL", "pricingPlan": "PER_USE", "replicationType": "SYNCHRONOUS", "activationPolicy": "ALWAYS", "ipConfiguration": { "authorizedNetworks": [], "pscConfig": { "allowedConsumerProjects": [ "ALLOWED_PROJECTS" ], "pscEnabled": true }, "ipv4Enabled": false }, ... "createTime": "2023-06-14T18:48:34.975Z", "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE", "pscServiceAttachmentLink": "projects/PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_ID", "dnsName": "DNS_NAME" }
監控代管連線集區
您可以使用下列 Cloud SQL 受控連線集區指標,監控 Cloud SQL 執行個體上受控連線集區的運作情形:
指標名稱 | 說明 |
---|---|
num_pools | 每個資料庫的連線集區總數。 |
client_connection | 根據用戶端連線的狀態追蹤連線計數。這個指標包含的狀態包括:
|
server_connections | 根據伺服器連線的狀態追蹤伺服器連線數量。這個指標包含的狀態如下:
|
client_connections_avg_wait_time | 所有用戶端在等待伺服器的狀態下,平均花費的時間。 |
如要進一步瞭解這些指標,請參閱「Cloud SQL 指標」。如要使用 Google Cloud 控制台查看這些指標,請參閱「在 Cloud SQL 執行個體總覽頁面上查看指標」一文。