本頁說明如何在 Cloud SQL 執行個體中啟用、設定及監控受管理連線集區。
代管連線集區可讓您使用集區,最佳化執行個體的資源用量和連線延遲時間,進而擴充工作負載。如要詳細瞭解代管連線集區,以及如何為執行個體使用這項功能,請參閱「代管連線集區總覽」。
事前準備
- 確認執行個體符合使用代管連線集區的所有需求。
- 如果您使用 gcloud CLI,請確認 gcloud CLI 版本為 515.0.0以上。
啟用代管連線集區
您可以在建立執行個體時啟用代管連線集區,也可以編輯現有執行個體來啟用這項功能。
為新執行個體啟用代管連線集區
如要建立已啟用代管連線集區的新執行個體,請參閱建立執行個體。您只能使用 gcloud CLI 或 Cloud SQL API,為新執行個體啟用「受管理連線集區」。
為現有執行個體啟用代管連線集區
如要為現有執行個體啟用代管連線集區,請按照下列步驟操作:
主控台
- 前往 Google Cloud 控制台的「Cloud SQL Instances」頁面。 
- 找出要啟用代管連線集區的執行個體。 點選執行個體名稱,開啟執行個體的「總覽」頁面。 
- 按一下 [編輯]。 
- 展開「自訂執行個體」下方的「連線」。 
- 如要啟用代管連線集區,請勾選「啟用代管連線集區」方塊。 
- 按一下 [儲存]。 
gcloud
使用 gcloud sql instances 指令啟用代管連線集區。
  gcloud sql instances patch INSTANCE_NAME \
  --enable-connection-pooling
更改下列內容:
- :Cloud SQL 執行個體的名稱。INSTANCE_NAME
REST v1
使用下列指令並設定 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": "user@example.com",
  "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
使用下列指令並設定 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": "user@example.com",
  "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"
}
Terraform
請使用下列 Terraform 資源:
修改執行個體的代管連線集區
啟用代管連線集區後,您可以使用進階設定選項自訂代管連線集區,以符合執行個體的需求。這些設定選項稱為「代管連線集區」集區標記。如要進一步瞭解進階設定選項、預設值和範圍,請參閱「進階設定選項」。
如要修改執行個體的進階代管連線集區設定選項,請按照下列步驟操作:
主控台
- 前往 Google Cloud 控制台的「Cloud SQL Instances」頁面。 
- 找出要啟用代管連線集區的執行個體。 點選執行個體名稱,開啟執行個體的「總覽」頁面。 
- 按一下 [編輯]。 
- 展開「自訂執行個體」下方的「連線」。 
- 在「代管連線集區」下方,展開「進階集區選項」。 - 修改要更新的進階集區選項。 
- 按一下 [儲存]。 
gcloud
使用 gcloud sql instances 指令修改設定選項。
  gcloud sql instances patch INSTANCE_NAME \
  --connection-pool-flags=CONFIGURATION_NAME=CONFIGURATION_VALUE
更改下列內容:
- :Cloud SQL 執行個體的名稱。INSTANCE_NAME
- CONFIGURATION_NAME:設定選項的名稱。如需所有進階設定選項的清單,請參閱「進階設定選項」。
- CONFIGURATION_VALUE:所選設定選項的新值。
REST v1
如要修改「受管理連線集區」進階設定,請使用下列指令並設定 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": "user@example.com",
  "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
如要修改「受管理連線集區」進階設定,請使用下列指令並設定 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": "user@example.com",
  "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"
}
Terraform
如要修改受管理連線集區的進階設定,請使用下列 Terraform 資源:
為執行個體停用代管連線集區
您可以使用Google Cloud 控制台、gcloud CLI 或 Cloud SQL API,為現有執行個體停用代管連線集區。
如要停用執行個體的代管連線集區,請按照下列步驟操作:
主控台
- 前往 Google Cloud 控制台的「Cloud SQL Instances」頁面。 
- 找出要停用代管連線集區的執行個體。 點選執行個體名稱,開啟執行個體的「總覽」頁面。 
- 按一下 [編輯]。 
- 展開「自訂執行個體」下方的「連線」。 
- 如要停用代管連線集區,請取消勾選「啟用代管連線集區」方塊。 
- 按一下 [儲存]。 
gcloud
使用 gcloud sql instances 指令停用代管連線集區。
  gcloud sql instances patch INSTANCE_NAME \
  --no-enable-connection-pooling
更改下列內容:
- :Cloud SQL 執行個體的名稱。PROJECT_ID
REST v1
如要為執行個體停用受管理連線集區,請使用下列指令並設定 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": "user@example.com",
  "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
如要為執行個體停用受管理連線集區,請使用下列指令並設定 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": "user@example.com",
  "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"
}
Terraform
如要為執行個體停用代管連線集區,請使用下列 Terraform 資源:
查看執行個體的代管連線集區狀態
您可以使用 Google Cloud 控制台、gcloud CLI 或 Cloud SQL API,查看執行個體的代管連線集區狀態。
如要查看 Cloud SQL Enterprise Plus 版本執行個體的受管理連線集區狀態,請執行下列操作:
主控台
- 前往 Google Cloud 控制台的「Cloud SQL Instances」頁面。 
- 找出要查看代管連線集區狀態的執行個體。 點選執行個體名稱,開啟執行個體的「總覽」頁面。 - 「連線」部分會顯示代管連線集區是否已啟用。 
gcloud
使用 gcloud sql instances describe 指令,查看執行個體的受管理連線集區狀態:
  gcloud sql instances describe INSTANCE_NAME
  --format="value(settings.connectionPoolConfig.connectionPoolingEnabled)"
更改下列內容:
- :Cloud SQL 執行個體的名稱。 - PROJECT_ID- 如果已啟用代管連線集區,系統會傳回以下回應: - connectionPoolingEnabled: true
REST v1
如要查看 Cloud SQL 執行個體的受管理連線集區狀態,請使用下列指令並尋找 connectionPoolingEnabled:
使用任何要求資料之前,請先替換以下項目:
- PROJECT_ID:包含執行個體的專案 ID 或專案編號。 Google Cloud
- :Cloud SQL 執行個體的名稱。INSTANCE_NAME如果這個執行個體已啟用 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": "MYSQL_8_0",
  "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:包含執行個體的專案 ID 或專案編號。 Google Cloud
- :Cloud SQL 執行個體的名稱。INSTANCE_NAME如果這個執行個體已啟用 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": "MYSQL_8_0",
  "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 執行個體上的執行情況:
| 指標名稱 | 說明 | 
|---|---|
| 執行緒 | 依狀態追蹤連線集區中的執行緒數量。這項指標包含的狀態如下: 
 | 
| pending_connection | 集區佇列中目前有效的連線數量。 | 
| avg_wait_time | 連線要求等待伺服器的平均時間。 | 
如要進一步瞭解這些指標,請參閱「Cloud SQL 指標」。如要使用 Google Cloud 控制台查看這些指標,請參閱「在 Cloud SQL 執行個體總覽頁面中查看指標」。