設定代管連線集區

本頁面說明如何為 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。您必須先啟用代管連線集區,才能修改代管連線集區選項

主控台

  1. 前往 Google Cloud 控制台的「Cloud SQL 執行個體」頁面。

    前往 Cloud SQL 執行個體

  2. 找出要為其啟用代管連線集區的執行個體。如要開啟執行個體的「總覽」頁面,請按一下執行個體名稱。

  3. 按一下 [編輯]

  4. 展開「自訂執行個體」下方的「連線」

  5. 如要啟用代管連線集區,請勾選「Enable Managed Connection Pool」方塊。

  6. 按一下 [儲存]

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 設定選項,請執行下列操作:

主控台

  1. 前往 Google Cloud 控制台的「Cloud SQL 執行個體」頁面。

    前往 Cloud SQL 執行個體

  2. 找出要啟用代管連線集區的執行個體。如要開啟執行個體的「總覽」頁面,請按一下執行個體名稱。

  3. 按一下 [編輯]

  4. 展開「自訂執行個體」下方的「連線」

  5. 在「Managed connection pool」(代管連線集區) 下方,展開「Advanced pooling options」(進階集區選項)。

    修改要更新的可用彙整選項。

  6. 按一下 [儲存]

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。

如要為執行個體停用代管連線集區,請按照下列步驟操作:

主控台

  1. 前往 Google Cloud 控制台的「Cloud SQL 執行個體」頁面。

    前往 Cloud SQL 執行個體

  2. 找出要停用代管連線集區的執行個體。如要開啟執行個體的「總覽」頁面,請按一下執行個體名稱。

  3. 按一下 [編輯]

  4. 展開「自訂執行個體」下方的「連線」

  5. 如要停用代管連線集區,請取消勾選「Enable Managed Connection Pool」方塊。

  6. 按一下 [儲存]

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 版執行個體的受管理連線資源池狀態,請按照下列步驟操作:

主控台

  1. 前往 Google Cloud 控制台的「Cloud SQL 執行個體」頁面。

    前往 Cloud SQL 執行個體

  2. 找出要查看代管連線集區狀態的執行個體。如要開啟執行個體的「總覽」頁面,請按一下執行個體名稱。

    「連線」部分會顯示是否已啟用或停用代管連線集區。

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

使用任何要求資料之前,請先替換以下項目:

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

使用任何要求資料之前,請先替換以下項目:

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 根據用戶端連線的狀態追蹤連線計數。這個指標包含的狀態包括:
  • active:每個資料庫的有效連線數量,包括沒有任何待處理查詢要求的閒置用戶端。
  • waiting:每個資料庫中,正在等待伺服器連線的用戶端數量。
server_connections 根據伺服器連線的狀態追蹤伺服器連線數量。這個指標包含的狀態如下:
  • active:每個資料庫的有效連線數量。
  • waiting:每個資料庫的閒置伺服器連線數。
client_connections_avg_wait_time 所有用戶端在等待伺服器的狀態下,平均花費的時間。

如要進一步瞭解這些指標,請參閱「Cloud SQL 指標」。如要使用 Google Cloud 控制台查看這些指標,請參閱「在 Cloud SQL 執行個體總覽頁面上查看指標」一文。

後續步驟