讀取集區自動調度資源

讀取集區自動調度資源功能會根據應用程式的工作負載需求,自動新增或移除讀取集區中的讀取集區節點。

您可以透過下列兩種目標指標之一,限制讀取集區的平均 CPU 使用率,或限制可存取讀取集區的用戶端連線數量,藉此控管讀取集區自動調度資源:

  • 平均 CPU 使用率:可設定讀取集區運作時的平均 CPU 使用率。讀取集區會根據應用程式工作負載的 CPU 使用率,自動縮減或擴充。
  • 「Average database connections」(平均資料庫連線數):可指定每個節點應提供的平均用戶端資料庫連線數。讀取集區會根據用戶端連線數量,自動縮減或擴充。

如要套用這些目標指標,您也必須設定讀取集區節點數量的下限和上限。

如要啟用讀取集區自動調度資源功能,您可以在執行個體上設定其中一項或兩項目標指標。如果兩項指標都啟用,Cloud SQL 會套用兩項指標指出的讀取集區節點數量上限。

下表列出各項目標指標的限制:

目標指標名稱 限制 相關公開指標
平均 CPU 使用率 介於 0.1 至 0.9 之間。 讀取集區中所有讀取集區節點的平均 CPU 使用率 (cloudsql.googleapis.com/database/cpu/utilization)。
平均資料庫連線數 介於 10 到 32,767 之間。 注意:可接受的最大值與 max_connections 資料庫旗標設定的最大值相關。 代表讀取集區中各讀取集區節點的資料庫用戶端連線平均值 (cloudsql.googleapis.com/database/network/connections)。

當讀取集區符合調整大小的條件時,您可以在 Google Cloud 控制台查看讀取集區自動調度資源作業。在讀取集區自動調度資源完成前,系統會封鎖讀取集區和主要執行個體的所有其他作業。

讀取集區自動調度資源特性

適用下列特性:

  • 縮減作業一次只會移除一個節點。
  • 水平擴展作業會同時新增所需數量的節點。
  • 根據預設,系統會同時套用縮減和擴充作業。您也可以手動停用 (disableScaleIn),封鎖縮減作業。
  • 根據預設,連續讀取集區自動調度資源作業之間會套用 600 秒的等待期。無論是縮減或擴充,等待期至少須為 60 秒。
  • 設定目標指標時,您也必須定義要使用的讀取集區節點數量下限 (minNodeCount) 和上限 (maxNodeCount)。如果為現有讀取集區啟用自動調度資源功能,則目前的讀取集區大小必須落在您設定的範圍內。
  • 如果讀取集區節點的 CPU 用量增加,且原因在於讀取集區節點的複製作業負擔或非 SQL Server 程序,則以 CPU 為準的自動調度資源功能會受到限制。

每個主要執行個體的讀取集區節點數量上限

每個主要執行個體最多可指派七個唯讀副本。

從同一個主要執行個體複製的唯讀副本和讀取集區節點,總數不得超過七個。

如何計算每個主要執行個體的讀取集區節點數量上限

概念上,您可以將唯讀副本視為單一讀取集區節點。

您可以將唯讀副本轉換為讀取集區,然後將讀取集區節點數量變更為大於一的數字。

接著,您可以為讀取集區指派自動調度資源功能,讓讀取集區節點數量依據工作負載需求動態調整。

為讀取集區啟用自動調度資源功能時,必須為讀取集區指定有效的節點數量上限。這個數字加上從相同主要執行個體複製的現有唯讀副本數量,或從相同主要執行個體複製的其他讀取集區所屬讀取集區節點數量,不得超過七個。

舉例來說,如果主要執行個體有兩個唯讀副本,以及一個具有兩個讀取集區節點的讀取集區,以及另一個啟用自動調度資源的讀取集區,則第二個讀取集區的讀取集區節點數量上限不得大於三。

限制

限制如下:

  • 如要建立新的讀取集區或擴充現有讀取集區,請先等待先前的建立和擴充作業完成。這項限制適用於與讀取集區相關聯的作業,以及與相同主要執行個體相關聯的其他讀取集區。如果嘗試執行並行作業,可能會收到下列錯誤訊息:
    Operation failed because another operation was already in progress.
    

事前準備

建立已啟用自動調度資源功能的讀取集區

如果將 AVERAGE_CPU_UTILIZATION 的目標值設為 0.50,系統會新增或移除讀取集區中的讀取集區節點,讓讀取集區的平均 CPU 使用率維持在 0.50 以下。

gcloud

如要建立已啟用自動調度資源功能的讀取集區,請執行下列指令:

  gcloud sql instances create READ_POOL_NAME \
  --tier=MACHINE_TIER --edition=ENTERPRISE_PLUS \
  --instance-type=READ_POOL_INSTANCE --node-count=NODE_COUNT \
  --database-version=DATABASE_VERSION \
  --master-instance-name=PRIMARY_INSTANCE_NAME \
  --region=REGION --network=NETWORK_NAME \
  --no-assign-ip \
  --auto-scale-enabled \
  --auto-scale-max-node-count=MAX_NODE_COUNT \
  --auto-scale-min-node-count=MIN_NODE_COUNT \
  --auto-scale-target-metrics=TARGET_METRIC_1=VALUE_1
  

更改下列內容:

  • READ_POOL_NAME:要指派給讀取集區的名稱。
  • MACHINE_TIER:要使用的機器層級,例如 db-perf-optimized-N-2。
  • NODE_COUNT:要從哪個讀取集區節點數量開始。
  • DATABASE_VERSION:要使用的資料庫版本,例如 SQLSERVER_2022_ENTERPRISE。
  • PRIMARY_INSTANCE_NAME:要使用的主要執行個體名稱。
  • REGION:要使用的區域,例如 us-east1。
  • NETWORK_NAME:要使用的網路名稱。
  • MAX_NODE_COUNT:讀取集區可使用的讀取集區節點數量上限,例如 5。
  • MIN_NODE_COUNT:讀取集區使用的讀取集區節點數量下限,例如 1。
  • TARGET_METRIC_1:要使用的目標指標,例如:
    • AVERAGE_CPU_UTILIZATION
    • AVERAGE_DB_CONNECTIONS
    您必須定義至少一項可用指標。
  • VALUE_1:要為先前指定的目標指標指派的值。舉例來說,您可以為 AVERAGE_CPU_UTILIZATION 目標指標指派 0.50 值。

Terraform

如要建立已啟用自動調度資源功能的讀取集區,請使用 Terraform 資源。

下列範例包含主要執行個體和讀取集區的資源。


resource "random_password" "root_password" {
  length  = 24
  special = true
}

resource "google_sql_database_instance" "primary" {
  name             = "sqlserver-primary"
  database_version = "SQLSERVER_2019_ENTERPRISE"
  region           = "europe-west4"
  root_password    = random_password.root_password.result
  instance_type    = "CLOUD_SQL_INSTANCE"

  settings {
    tier    = "db-perf-optimized-N-2"
    edition = "ENTERPRISE_PLUS"

    backup_configuration {
      enabled                        = true
      point_in_time_recovery_enabled = true
    }

    ip_configuration {
      ipv4_enabled = true
    }
  }
}

resource "google_sql_database_instance" "read_pool" {
  name                 = "sqlserver-read-pool"
  database_version     = "SQLSERVER_2019_ENTERPRISE"
  region               = "europe-west4"
  master_instance_name = google_sql_database_instance.primary.name
  instance_type        = "READ_POOL_INSTANCE"
  node_count           = 2

  settings {
    tier    = "db-perf-optimized-N-2"
    edition = "ENTERPRISE_PLUS"

    ip_configuration {
      ipv4_enabled = true
    }

    read_pool_auto_scale_config {
      enabled                    = true
      min_node_count             = 2
      max_node_count             = 5
      disable_scale_in           = false
      scale_in_cooldown_seconds  = 600
      scale_out_cooldown_seconds = 600

      target_metrics {
        metric       = "AVERAGE_CPU_UTILIZATION"
        target_value = 0.5
      }
    }
  }
}

套用變更

如要在 Google Cloud 專案中套用 Terraform 設定,請完成下列各節的步驟。

準備 Cloud Shell

  1. 啟動 Cloud Shell。
  2. 設定要套用 Terraform 設定的預設 Google Cloud 專案。

    這項指令在每個專案中只需執行一次,且可在任何目錄中執行。

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    如果您在 Terraform 設定檔中設定明確的值,環境變數就會遭到覆寫。

準備目錄

每個 Terraform 設定檔都必須有自己的目錄 (也稱為「根模組」)。

  1. 在 Cloud Shell 中建立目錄,並在該目錄中建立新檔案。檔案名稱必須有 .tf 副檔名,例如 main.tf。在本教學課程中,這個檔案稱為 main.tf。
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. 如果您正在進行教學課程,可以複製每個章節或步驟中的程式碼範例。

    將程式碼範例複製到新建立的 main.tf。

    您也可以從 GitHub 複製程式碼。如果 Terraform 程式碼片段是端對端解決方案的一部分,建議您採用這種做法。

  3. 請查看並修改範例參數,以便套用至您的環境。
  4. 儲存變更。
  5. 初始化 Terraform。每個目錄只需執行一次這項操作。
    terraform init

    如要使用最新版 Google 供應商,請視需要加入 -upgrade 選項:

    terraform init -upgrade

套用變更

  1. 查看設定,確認 Terraform 要建立或更新的資源符合預期:
    terraform plan

    視需要修正設定。

  2. 執行下列指令,並在提示中輸入 yes,套用 Terraform 設定:
    terraform apply

    等待 Terraform 顯示「Apply complete!」訊息。

  3. 開啟 Google Cloud 專案即可查看結果。在 Google Cloud 控制台的使用者介面中,前往資源頁面,確認 Terraform 已建立或更新資源。

刪除變更

如要刪除變更,請按照下列步驟操作:

  1. 如要停用防刪除功能,請在 Terraform 設定檔中將 deletion_protection 引數設為 false。
    deletion_protection =  "false"
  2. 執行下列指令,並在提示中輸入 yes,套用更新後的 Terraform 設定:
    terraform apply
  1. 執行下列指令,並在提示中輸入 yes,移除先前使用 Terraform 設定套用的資源:

    terraform destroy

REST v1

如要建立已啟用自動調度資源功能的讀取集區,請使用 instances:insert 方法傳送 POST 要求。

使用任何要求資料之前,請先修改下列項目的值:

  • READ_POOL_NAME:要指派給讀取集區的名稱。
  • REGION:要存放執行個體的區域,例如 us-central1。
  • PRIMARY_INSTANCE_ID:要使用的主要執行個體 ID。
  • PROJECT_ID:要建立讀取集區的專案 ID,例如 my-project-name。
  • DATABASE_VERSION:要使用的資料庫版本,例如 SQLSERVER_2022_ENTERPRISE。
  • MACHINE_TIER:要使用的機器層級,例如 db-perf-optimized-N-2。
  • FULL_NETWORK_NAME:要使用的網路名稱。
  • MAX_NODE_COUNT:讀取集區執行個體可使用的讀取集區節點數量上限,例如 7。每個主要執行個體最多可指派七個讀取集區節點。詳情請參閱「節點數量上限」一節。
  • MIN_NODE_COUNT:讀取集區使用的讀取集區節點數量下限,例如 2。
  • TARGET_METRIC_1:要使用的目標指標,例如 AVERAGE_CPU_UTILIZATION 或 AVERAGE_DB_CONNECTIONS。您必須定義至少一項可用指標。
  • VALUE_1:要為先前指定的目標指標指派的值。舉例來說,您可以為 AVERAGE_CPU_UTILIZATION 目標指標指派 0.50 值。
  • NODE_COUNT:要開始使用的讀取集區節點數量,例如 3。

HTTP 方法和網址:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances

JSON 要求主體:

{
  "name":"READ_POOL_NAME",
  "region":"REGION",
  "masterInstanceName":"PRIMARY_INSTANCE_ID",
  "project":"PROJECT_ID",
  "databaseVersion":"DATABASE_VERSION",
  "settings":{
    "tier":"MACHINE_TIER",
    "edition":"ENTERPRISE_PLUS",
    "ipConfiguration":{
      "privateNetwork":"FULL_NETWORK_NAME",
      "ipv4Enabled": false
    },
    "readPoolAutoScaleConfig":{
      "enabled": true,
      "minNodeCount": MIN_NODE_COUNT,
      "maxNodeCount": MAX_NODE_COUNT,
      "targetMetrics": [
        {
          "metric":"TARGET_METRIC_1",
          "targetValue": VALUE_1
        }
      ]
    }
  },
  "instanceType":"READ_POOL_INSTANCE",
  "nodeCount": NODE_COUNT
}

請展開以下其中一個選項,以傳送要求:

您應該會收到如下的 JSON 回覆:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/PRIMARY_INSTANCE_ID",
  "status": "RUNNING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "startTime": "2023-06-14T18:48:35.499Z",
  "operationType": "CREATE",
  "name": "OPERATION_ID",
  "targetId": "PRIMARY_INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

REST v1beta4

如要建立已啟用自動調度資源功能的讀取集區,請使用 instances:insert 方法傳送 POST 要求。

使用任何要求資料之前,請先修改下列項目的值:

  • READ_POOL_NAME:要指派給讀取集區的名稱。
  • REGION:要存放執行個體的區域,例如 us-central1。
  • PRIMARY_INSTANCE_ID:要使用的主要執行個體 ID。
  • PROJECT_ID:要建立讀取集區的專案 ID,例如 my-project-name。
  • DATABASE_VERSION:要使用的資料庫版本,例如 SQLSERVER_2022_ENTERPRISE。
  • MACHINE_TIER:要使用的機器層級,例如 db-perf-optimized-N-2。
  • FULL_NETWORK_NAME:要使用的網路名稱。
  • MAX_NODE_COUNT:讀取集區執行個體可使用的讀取集區節點數量上限,例如 7。每個主要執行個體最多可指派七個讀取集區節點。詳情請參閱「節點數量上限」一節。
  • MIN_NODE_COUNT:讀取集區使用的讀取集區節點數量下限,例如 2。
  • TARGET_METRIC_1:要使用的目標指標,例如:
    • AVERAGE_CPU_UTILIZATION
    • AVERAGE_DB_CONNECTIONS
    您必須定義至少一項可用指標。
  • VALUE_1:要為先前指定的目標指標指派的值。在本範例中,請為 AVERAGE_CPU_UTILIZATION 目標指標指派 0.50 值。
  • NODE_COUNT:要開始使用的讀取集區節點數量,例如 3。

HTTP 方法和網址:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances

JSON 要求主體:

{
  "name":"READ_POOL_NAME",
  "region":"REGION",
  "masterInstanceName":"PRIMARY_INSTANCE_ID",
  "project":"PROJECT_ID",
  "databaseVersion":"DATABASE_VERSION",
  "settings":{
    "tier":"MACHINE_TIER",
    "edition":"ENTERPRISE_PLUS",
    "ipConfiguration":{
      "privateNetwork":"FULL_NETWORK_NAME",
      "ipv4Enabled": false
    },
    "readPoolAutoScaleConfig":{
      "enabled": true,
      "minNodeCount": MIN_NODE_COUNT,
      "maxNodeCount": MAX_NODE_COUNT,
      "targetMetrics": [
        {
          "metric":"TARGET_METRIC_1",
          "targetValue": VALUE_1
        }
      ]
    }
  },
  "instanceType":"READ_POOL_INSTANCE",
  "nodeCount": NODE_COUNT
}

請展開以下其中一個選項,以傳送要求:

您應該會收到如下的 JSON 回覆:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/PRIMARTY_INSTANCE_ID",
  "status": "RUNNING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "startTime": "2023-06-14T18:48:35.499Z",
  "operationType": "CREATE",
  "name": "OPERATION_ID",
  "targetId": "PRIMARTY_INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

為現有讀取集區啟用讀取集區自動調度資源功能

如果已建立讀取集區,只要指定要使用的自動調度資源設定,即可啟用自動調度資源功能。

舉例來說,如果您將 AVERAGE_DB_CONNECTIONS 的目標值指定為 50,系統就會在讀取集區中新增或移除節點,讓集區的平均資料庫連線數量保持在 50 以下。

gcloud

如要為現有讀取集區啟用自動調度資源功能,請執行下列指令。

  gcloud sql instances patch INSTANCE
  --auto-scale-enabled
  --auto-scale-max-node-count=MAX_NODE_COUNT
  --auto-scale-min-node-count=MIN_NODE_COUNT
  --auto-scale-out-cooldown-seconds=COOLDOWN_SECONDS_SCALE_OUT
  --auto-scale-in-cooldown-seconds=COOLDOWN_SECONDS_SCALE_IN
  --auto-scale-target-metrics=TARGET_METRIC_1=VALUE_1
  

更改下列內容:

  • INSTANCE_NAME:與要修改的讀取集區相關聯的執行個體名稱。
  • MAX_NODE_COUNT:讀取集區可使用的節點數量上限,例如 7。每個主要執行個體最多可指派 7 個讀取集區節點。詳情請參閱「節點數量上限」一節。
  • MIN_NODE_COUNT:讀取集區使用的讀取集區節點數量下限,例如 2。
  • COOLDOWN_SECONDS_SCALE_OUT:選用:建立或刪除讀取集區節點之間的冷卻時間或等待時間 (以秒為單位),例如 180。冷卻期至少須為 60 秒。預設值為 600 秒。
  • COOLDOWN_SECONDS_SCALE_IN:選用:建立或刪除讀取集區節點之間的冷卻時間或等待時間 (以秒為單位),例如 180。冷卻期至少須為 60 秒。預設值為 600 秒。
  • TARGET_METRIC_1:要使用的目標指標,例如:
    • AVERAGE_CPU_UTILIZATION
    • AVERAGE_DB_CONNECTIONS
    您必須定義至少一項可用指標。
  • VALUE_1:要為先前指定的目標指標指派的值。在本範例中,請為 AVERAGE_DB_CONNECTIONS 目標指標指派 50 值。

REST v1

如要為現有讀取集區啟用自動調度資源功能,請使用 PATCH 方法。

使用任何要求資料之前,請先修改下列項目的值:

  • PROJECT_ID:執行個體所在 Google Cloud 專案的 ID 或專案編號。
  • INSTANCE_ID:與讀取集區相關聯的執行個體 ID。
  • MAX_NODE_COUNT:讀取集區執行個體可使用的讀取集區節點數量上限,例如 7。每個主要執行個體最多可指派七個讀取集區節點。詳情請參閱「節點數量上限」一節。
  • MIN_NODE_COUNT:讀取集區使用的讀取集區節點數量下限,例如 2。
  • COOLDOWN_SECONDS:選用:建立或刪除讀取集區節點之間的冷卻或等待時間 (以秒為單位),例如 180。
  • SCALE_IN_DISABLED:選用:可停用讀取集區縮減行為。如要停用讀取集區縮減功能,請將值設為 true。
  • TARGET_METRIC_1:要使用的目標指標,例如:
    • AVERAGE_CPU_UTILIZATION
    • AVERAGE_DB_CONNECTIONS
    您必須定義至少一項可用指標。
  • VALUE_1:要為先前指定的目標指標指派的值。在本範例中,請為 AVERAGE_DB_CONNECTIONS 目標指標指派 50 值。

HTTP 方法和網址:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID

JSON 要求主體:

{
  "settings": {
    "readPoolAutoScaleConfig": {
      "enabled": true,
      "minNodeCount": MIN_NODE_COUNT,
      "maxNodeCount": MAX_NODE_COUNT,
      "scaleOutCooldownSeconds": COOLDOWN_SECONDS,
      "disableScaleIn": SCALE_IN_DISABLED,
      "targetMetrics": [
        {
          "metric": "TARGET_METRIC_1",
          "targetValue": VALUE_1
        }
      ]
    }
  }
}

請展開以下其中一個選項,以傳送要求:

您應該會收到如下的 JSON 回覆:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "RUNNING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "startTime": "2023-06-14T18:48:35.499Z",
  "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

如要為現有的讀取集區啟用自動調度資源功能,請使用 PATCH 方法。

使用任何要求資料之前,請先修改下列項目的值:

  • PROJECT_ID:執行個體所在 Google Cloud 專案的 ID 或專案編號。
  • INSTANCE_ID:與讀取集區相關聯的執行個體 ID。
  • MAX_NODE_COUNT:讀取集區執行個體可使用的讀取集區節點數量上限,例如 7。每個主要執行個體最多可指派七個讀取集區節點。詳情請參閱「節點數量上限」一節。
  • MIN_NODE_COUNT:讀取集區使用的讀取集區節點數量下限,例如 2。
  • COOLDOWN_SECONDS:選用:建立或刪除讀取集區節點之間的冷卻或等待時間 (以秒為單位),例如 180。
  • SCALE_IN_DISABLED:選用:可停用讀取集區縮減行為。如要停用讀取集區縮減功能,請將值設為 true。
  • TARGET_METRIC_1:要使用的目標指標,例如:
    • AVERAGE_CPU_UTILIZATION
    • AVERAGE_DB_CONNECTIONS
    您必須定義至少一項可用指標。
  • VALUE_1:要為先前指定的目標指標指派的值。在本範例中,請為 AVERAGE_DB_CONNECTIONS 目標指標指派 50 值。

HTTP 方法和網址:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID

JSON 要求主體:

{
  "settings": {
    "readPoolAutoScaleConfig": {
      "enabled": true,
      "minNodeCount": MIN_NODE_COUNT,
      "maxNodeCount": MAX_NODE_COUNT,
      "scaleOutCooldownSeconds": COOLDOWN_SECONDS,
      "disableScaleIn": SCALE_IN_DISABLED,
      "targetMetrics": [
        {
          "metric": "TARGET_METRIC_1",
          "targetValue": VALUE_1
        }
      ]
    }
  }
}

請展開以下其中一個選項,以傳送要求:

您應該會收到如下的 JSON 回覆:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "RUNNING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "startTime": "2023-06-14T18:48:35.499Z",
  "operationType": "UPDATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

停用讀取集區的自動調度資源功能

請按照下列步驟停用讀取集區自動調度資源功能。

gcloud

如要停用讀取集區自動調度資源功能,請執行下列指令。

  gcloud sql instances patch INSTANCE_NAME
  --no-auto-scale-enabled
  

更改下列內容:

  • INSTANCE_NAME:與要修改的讀取集區相關聯的執行個體名稱。

REST v1

如要停用讀取集區自動調度資源功能,請使用 PATCH 方法。

使用任何要求資料之前,請先修改下列項目的值:

  • PROJECT_ID: Google Cloud 專案的 ID 或專案編號,該專案包含執行個體。
  • INSTANCE_ID:與讀取集區相關聯的執行個體 ID。

HTTP 方法和網址:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID

JSON 要求主體:

{
  "settings":{
    "readPoolAutoScaleConfig":{
      "enabled": false
    }
  }
}

請展開以下其中一個選項,以傳送要求:

您應該會收到如下的 JSON 回覆:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "RUNNING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "startTime": "2023-06-14T18:48:35.499Z",
  "operationType": "CREATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

REST v1beta4

如要停用讀取集區自動調度資源功能,請使用 PATCH 方法。

使用任何要求資料之前,請先修改下列項目的值:

  • PROJECT_ID: Google Cloud 專案的 ID 或專案編號,該專案包含執行個體。
  • INSTANCE_ID:與讀取集區相關聯的執行個體 ID。

HTTP 方法和網址:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID

JSON 要求主體:

{
  "settings":{
    "readPoolAutoScaleConfig":{
      "enabled": false
    }
  }
}

請展開以下其中一個選項,以傳送要求:

您應該會收到如下的 JSON 回覆:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "RUNNING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "startTime": "2023-06-14T18:48:35.499Z",
  "operationType": "CREATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

查看指標

使用系統洞察,查看讀取集區的相關指標。

如要瞭解 AVERAGE_CPU_UTILIZATION,請參閱 CPU 使用率重要指標圖表。

如要查看AVERAGE_DB_CONNECTIONS,請參閱「連線總數」重要指標圖表。

監控讀取集區自動調度資源作業

當符合觸發讀取集區自動調度資源事件的條件時,系統會對執行個體執行 UPDATE 作業。您可以在 Google Cloud 控制台查看這項作業。

讀取集區自動調度資源作業可能需要 10 分鐘以上,才能套用至執行個體。任何現有連線都不會轉移至新加入的讀取集區節點,也就是說,只有新連線會受到讀取集區自動調度資源的影響。

讀取集區執行自動調度資源作業時,您必須等待作業完成,才能對讀取集區或主要執行個體執行其他更新。如果嘗試執行並行要求,可能會收到下列錯誤訊息:

  Operation failed because another operation was already in progress.
  

您可以檢查讀取集區執行個體,並查看節點數量變化:

  gcloud sql instances describe READ_POOL_NAME
  | grep nodeCount
  

更改下列內容:

  • READ_POOL_NAME:要取得資訊的讀取集區名稱。

系統事件稽核記錄

您也可以查看與方法 cloudsql.instances.readPoolAutoScale 相關聯的系統事件稽核記錄訊息,其中包含新舊節點數量。

後續步驟