本頁說明如何在 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 執行個體總覽頁面中查看指標」。