Google 會運用 AI 技術將內容翻譯成你偏好的語言,但可能會出錯。
建立及管理讀取集區
本頁面說明如何為大型讀取工作負載建立及管理讀取集區 。
事前準備
讀取集區包含主要執行個體的副本。如果您尚未建立 Cloud SQL Enterprise Plus 版主要執行個體 ,請先建立。雖然讀取集區支援公開 IP 連線,但本指南會建立具有私人 IP 連線的主要執行個體,並使用私人服務存取權 。如要進一步瞭解主要執行個體和複製作業,請參閱「關於 Cloud SQL 中的複製作業 」。
建立主要執行個體後,請選擇超級使用者的密碼,並執行下列指令,在主要執行個體上設定密碼。請儲存這個密碼,稍後連線至讀取集區時會用到。
gcloud --project= PROJECT \
sql users set-password root --host= % \
--instance= PRIMARY_INSTANCE_NAME --prompt-for-password
請確認您使用的是 gcloud 532.0.0 以上版本。
請依指示取代下列項目:
PROJECT :要存放主要執行個體和讀取集區的專案名稱。
PRIMARY_INSTANCE_NAME :主要執行個體的名稱。
建立讀取集區
gcloud
如要瞭解如何安裝及開始使用 gcloud CLI,請參閱「安裝 gcloud CLI 」。如要瞭解如何啟動 Cloud Shell,請參閱「使用 Cloud Shell 」。
使用下列 gcloud sql instances create 指令,建立具有多個讀取集區節點的讀取集區:
gcloud sql instances create READ_POOL_NAME \
--tier= TIER --edition= ENTERPRISE_PLUS \
--instance-type= READ_POOL_INSTANCE --node-count= NODE_COUNT \
--master-instance-name= PRIMARY_INSTANCE_NAME --no-assign-ip
請依指示取代下列項目:
READ_POOL_NAME :要用於讀取集區的名稱。
TIER :要用於讀取集區中每個讀取集區節點的機器類型,例如 db-perf-optimized-N-4。
NODE_COUNT :讀取集區中所需的讀取集區節點數量。請選擇 1 到 20 之間的任何數字。
PRIMARY_INSTANCE_NAME :與讀取集區相關聯的主要執行個體名稱,例如 my-primary-instance。
如要建立讀取集區,請使用 Terraform 資源 。接著,將 instance_type 屬性設為 "READ_POOL_INSTANCE",並將 node_count 屬性設為要使用的節點數量。
下列範例包含主要執行個體和讀取集區的資源。
套用變更
如要在 Cloud de Confiance 專案中套用 Terraform 設定,請完成下列各節的步驟。
準備 Cloud Shell
啟動 Cloud Shell 。
設定要套用 Terraform 設定的預設 Cloud de Confiance 專案。
這項指令在每個專案中只需執行一次,且可在任何目錄中執行。
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
如果您在 Terraform 設定檔中設定明確的值,環境變數就會遭到覆寫。
準備目錄
每個 Terraform 設定檔都必須有自己的目錄 (也稱為「根模組」 )。
在 Cloud Shell 中建立目錄,並在該目錄中建立新檔案。檔案名稱必須有 .tf 副檔名,例如 main.tf。在本教學課程中,這個檔案稱為 main.tf。
mkdir DIRECTORY && cd DIRECTORY && touch main.tf
如果您正在進行教學課程,可以複製每個章節或步驟中的程式碼範例。
將程式碼範例複製到新建立的 main.tf。
您也可以從 GitHub 複製程式碼。如果 Terraform 程式碼片段是端對端解決方案的一部分,建議您採用這種做法。
請查看並修改範例參數,以便套用至您的環境。
儲存變更。
初始化 Terraform。每個目錄只需執行一次這項操作。
terraform init
如要使用最新版 Google 供應商,請視需要加入 -upgrade 選項:
terraform init -upgrade
套用變更
查看設定,確認 Terraform 要建立或更新的資源符合預期:
terraform plan
視需要修正設定。
執行下列指令,並在提示中輸入 yes,套用 Terraform 設定:
terraform apply
等待 Terraform 顯示「Apply complete!」訊息。
開啟 Cloud de Confiance 專案 即可查看結果。在 Cloud de Confiance 控制台的使用者介面中,前往資源頁面,確認 Terraform 已建立或更新資源。
注意: Terraform 範例通常會假設 Cloud de Confiance 專案已啟用必要的 API。
刪除變更
如要刪除變更,請按照下列步驟操作:
如要停用防刪除功能,請在 Terraform 設定檔中將 deletion_protection 引數設為 false。
deletion_protection = "false"
執行下列指令,並在提示中輸入 yes,套用更新後的 Terraform 設定:
terraform apply
執行下列指令,並在提示中輸入 yes,移除先前使用 Terraform 設定套用的資源:
terraform destroy
REST v1
使用執行個體資源的 insert 方法,建立具有多個讀取集區節點的讀取集區。databaseVersion 屬性必須與主要屬性相同。
使用任何要求資料之前,請先修改下列項目的值:
PROJECT :要存放主要執行個體和讀取集區的專案名稱。
REGION :讀取集區的區域,例如 us-east1。區域必須與主要執行個體相同。
TIER :要用於讀取集區中各個讀取集區節點的機器類型,例如 db-perf-optimized-N-4。
PRIMARY_INSTANCE_NAME :主要執行個體的名稱。
READ_POOL_NAME :要用於讀取集區的名稱,例如 my-read-pool。
DATABASE_VERSION :要使用的資料庫版本。
例如:POSTGRES_16。
NODE_COUNT :讀取集區中所需的讀取集區節點數量。請選擇 1 到 20 之間的任何數字。
FULL_NETWORK_NAME :要存放讀取集區的完整網路路徑,例如 projects/vpc-host-project/global/networks/my-network-name。
HTTP 方法和網址:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT /instances
JSON 要求主體:
{
"name": "READ_POOL_NAME ",
"masterInstanceName": "PRIMARY_INSTANCE_NAME ",
"project": "PROJECT ",
"databaseVersion": "DATABASE_VERSION ",
"region": "REGION ",
"instanceType": "READ_POOL_INSTANCE",
"nodeCount": NODE_COUNT ,
"settings": {
"tier": "TIER ",
"edition": "ENTERPRISE_PLUS",
"ipConfiguration": {
"ipv4Enabled": false,
"privateNetwork": "FULL_NETWORK_NAME "
}
}
}
請展開以下其中一個選項,以傳送要求:
curl (Linux、macOS 或 Cloud Shell)
將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://sqladmin.googleapis.com/v1/projects/PROJECT /instances"
PowerShell (Windows)
將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT /instances" | Select-Object -Expand Content
您應該會收到如下的 JSON 回覆:
回應
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_POOL_NAME ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "CREATE_READ_POOL",
"name": "OPERATION_ID ",
"targetId": "INSTANCE_ID ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT /operations/OPERATION_ID ",
"targetProject": "PROJECT "
}
REST v1beta4
使用執行個體資源的 insert 方法,建立具有多個讀取集區節點的讀取集區。databaseVersion 屬性必須與主要屬性相同。
使用任何要求資料之前,請先修改下列項目的值:
PROJECT :要存放主要執行個體和讀取集區的專案名稱。
REGION :讀取集區的區域,例如 us-east1。區域必須與主要執行個體相同。
TIER :要用於讀取集區中各個讀取集區節點的機器類型,例如 db-perf-optimized-N-4。
PRIMARY_INSTANCE_NAME :主要執行個體的名稱。
READ_POOL_NAME :要用於讀取集區的名稱,例如 my-read-pool。
DATABASE_VERSION :要使用的資料庫版本。
例如:POSTGRES_16。
NODE_COUNT :讀取集區中所需的讀取集區節點數量。請選擇 1 到 20 之間的任何數字。
FULL_NETWORK_NAME :要存放讀取集區的完整網路路徑,例如 projects/vpc-host-project/global/networks/my-network-name。
HTTP 方法和網址:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances
JSON 要求主體:
{
"name": "READ_POOL_NAME ",
"masterInstanceName": "PRIMARY_INSTANCE_NAME ",
"project": "PROJECT ",
"databaseVersion": "DATABASE_VERSION ",
"region": "REGION ",
"instanceType": "READ_POOL_INSTANCE",
"nodeCount": NODE_COUNT ,
"settings": {
"tier": "TIER ",
"edition": "ENTERPRISE_PLUS",
"ipConfiguration": {
"ipv4Enabled": false,
"privateNetwork": "FULL_NETWORK_NAME "
}
}
}
請展開以下其中一個選項,以傳送要求:
curl (Linux、macOS 或 Cloud Shell)
將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances"
PowerShell (Windows)
將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances" | Select-Object -Expand Content
您應該會收到如下的 JSON 回覆:
回應
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_POOL_NAME ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "CREATE_READ_POOL",
"name": "OPERATION_ID ",
"targetId": "INSTANCE_ID ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /operations/OPERATION_ID ",
"targetProject": "PROJECT "
}
將唯讀副本轉換為讀取集區
您可以指定集區中的節點數量,將現有的 Cloud SQL Enterprise Plus 版本唯讀副本轉換為讀取集區。在轉換過程中,副本 IP 會變成讀取集區 IP (讀取端點),因此現有用戶端不需重新設定,即可連線至集區。
新建立的讀取集區節點,機器類型和設定會與原始唯讀副本相同。如要變更這個機型或設定,必須另外操作。這項作業僅適用於可用區唯讀副本。如要將高可用性 (HA) 唯讀副本轉換 為讀取集區,必須先將其轉換為可用區唯讀副本。
詳情請參閱「編輯讀取集區設定 」。
gcloud
如要瞭解如何安裝及開始使用 gcloud CLI,請參閱「安裝 gcloud CLI 」。如要瞭解如何啟動 Cloud Shell,請參閱「使用 Cloud Shell 」。
使用下列 gcloud sql instances patch 指令,轉換唯讀副本,以便與讀取集區搭配使用:
gcloud sql instances patch READ_REPLICA_NAME \
--instance-type= READ_POOL_INSTANCE --node-count= NODE_COUNT
請依指示取代下列項目:
READ_REPLICA_NAME :要轉換的唯讀副本名稱。
NODE_COUNT :讀取集區中所需的讀取集區節點數量。請選擇 1 到 20 之間的任何數字。
如要將唯讀副本轉換為讀取集區,請使用 Terraform 資源 。資訊清單與您在「建立唯讀副本 」中使用的資訊清單類似。接著,完成下列步驟:
將 instance_type 屬性從 "READ_REPLICA_INSTANCE" 變更為 "READ_POOL_INSTANCE",並將 node_count 屬性變更為要使用的節點數量。
如果先前已設定,請清除 settings.availability_type 屬性。
REST v1
使用執行個體資源的 patch 方法,將唯讀副本轉換為讀取集區。
使用任何要求資料之前,請先修改下列項目的值:
READ_REPLICA_NAME :要轉換的唯讀副本名稱,例如 my-read-replica。
NODE_COUNT :讀取集區中所需的讀取集區節點數量。請選擇 1 到 20 之間的任何數字。
HTTP 方法和網址:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_REPLICA_NAME
JSON 要求主體:
{
"instanceType": "READ_POOL_INSTANCE",
"nodeCount": NODE_COUNT
}
請展開以下其中一個選項,以傳送要求:
curl (Linux、macOS 或 Cloud Shell)
將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_REPLICA_NAME "
PowerShell (Windows)
將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method PATCH ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_REPLICA_NAME " | Select-Object -Expand Content
您應該會收到如下的 JSON 回覆:
回應
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_REPLICA_NAME ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "UPDATE",
"name": "OPERATION_ID ",
"targetId": "READ_REPLICA_NAME ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT /operations/OPERATION_ID ",
"targetProject": "PROJECT "
}
REST v1beta4
使用執行個體資源的 patch 方法,將唯讀副本轉換為讀取集區。
使用任何要求資料之前,請先修改下列項目的值:
READ_REPLICA_NAME :要轉換的唯讀副本名稱,例如 my-read-replica。
NODE_COUNT :讀取集區中所需的讀取集區節點數量。請選擇 1 到 20 之間的任何數字。
HTTP 方法和網址:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_REPLICA_NAME
JSON 要求主體:
{
"instanceType": "READ_POOL_INSTANCE",
"nodeCount": NODE_COUNT
}
請展開以下其中一個選項,以傳送要求:
curl (Linux、macOS 或 Cloud Shell)
將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_REPLICA_NAME "
PowerShell (Windows)
將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method PATCH ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_REPLICA_NAME " | Select-Object -Expand Content
您應該會收到如下的 JSON 回覆:
回應
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_REPLICA_NAME ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "UPDATE",
"name": "OPERATION_ID ",
"targetId": "READ_REPLICA_NAME ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /operations/OPERATION_ID ",
"targetProject": "PROJECT "
}
讀取集區自動調度資源
您可以設定讀取集區,自動調整大小,因應應用程式工作負載需求的變化。詳情請參閱「讀取集區自動調度資源 」。
將讀取集區轉換為唯讀副本
gcloud
如要瞭解如何安裝及開始使用 gcloud CLI,請參閱「安裝 gcloud CLI 」。如要瞭解如何啟動 Cloud Shell,請參閱「使用 Cloud Shell 」。
使用下列 gcloud sql instances patch 指令,轉換唯讀副本,以便與讀取集區搭配使用:
gcloud sql instances patch READ_POOL_NAME \
--instance-type= READ_REPLICA_INSTANCE --availability-type= ZONAL
請依指示取代下列項目:
READ_POOL_NAME :要轉換的讀取集區名稱。
如要將讀取集區轉換為唯讀副本,請使用 Terraform 資源 。資訊清單與您在「建立讀取集區 」中使用的資訊清單類似。接著,將 instance_type 屬性從 "READ_POOL_INSTANCE" 變更為 "READ_REPLICA_INSTANCE",清除 node_count 屬性,並將 settings.availability_type 屬性設為 ZONAL。
REST v1
使用執行個體資源的 patch 方法,將讀取集區轉換為唯讀副本。
使用任何要求資料之前,請先修改下列項目的值:
READ_POOL_NAME :讀取集區的名稱,例如 my-read-pool。
HTTP 方法和網址:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_POOL_NAME
JSON 要求主體:
{
"instanceType": "READ_REPLICA_INSTANCE",
"settings": {
"availabilityType": "ZONAL"
}
}
請展開以下其中一個選項,以傳送要求:
curl (Linux、macOS 或 Cloud Shell)
將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_POOL_NAME "
PowerShell (Windows)
將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method PATCH ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_POOL_NAME " | Select-Object -Expand Content
您應該會收到如下的 JSON 回覆:
回應
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_POOL_NAME ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "UPDATE",
"name": "OPERATION_ID ",
"targetId": "READ_POOL_NAME ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT /operations/OPERATION_ID ",
"targetProject": "PROJECT "
}
REST v1beta4
使用執行個體資源的 patch 方法,將讀取集區轉換為唯讀副本。
使用任何要求資料之前,請先修改下列項目的值:
READ_POOL_NAME :讀取集區的名稱,例如 my-read-pool。
HTTP 方法和網址:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_POOL_NAME
JSON 要求主體:
{
"instanceType": "READ_REPLICA_INSTANCE",
"settings": {
"availabilityType": "ZONAL"
}
}
請展開以下其中一個選項,以傳送要求:
curl (Linux、macOS 或 Cloud Shell)
將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_POOL_NAME "
PowerShell (Windows)
將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method PATCH ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_POOL_NAME " | Select-Object -Expand Content
您應該會收到如下的 JSON 回覆:
回應
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_POOL_NAME ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "UPDATE",
"name": "OPERATION_ID ",
"targetId": "READ_POOL_NAME ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /operations/OPERATION_ID ",
"targetProject": "PROJECT "
}
查看讀取集區資訊
gcloud
如要瞭解如何安裝及開始使用 gcloud CLI,請參閱「安裝 gcloud CLI 」。如要瞭解如何啟動 Cloud Shell,請參閱「使用 Cloud Shell 」。
使用下列 gcloud sql instances describe 指令說明讀取集區:
gcloud sql instances describe READ_POOL_NAME
請依指示取代下列項目:
READ_POOL_NAME :要說明的讀取集區名稱。
以下是包含 IP 位址和節點資訊的回應範例:
...
connectionName : my-project:us-central1:read-pool
ipAddresses :
- ipAddress : 10.3.0.108
type : PRIVATE
nodeCount : 2
nodes :
- dnsName : c5bdacb09ffc.j10o8yqc7pve.us-central1.sql.goog.
gceZone : us-central1-f
ipAddresses :
- ipAddress : 10.3.0.112
type : PRIVATE
name : read-pool-node-01
state : RUNNABLE
- dnsName : 8f77c454d6b2.j10o8yqc7pve.us-central1.sql.goog.
gceZone : us-central1-c
ipAddresses :
- ipAddress : 10.3.0.113
type : PRIVATE
name : read-pool-node-02
state : RUNNABLE
REST v1
使用 get 方法查看讀取集區詳細資料。
使用任何要求資料之前,請先修改下列項目的值:
PROJECT ::讀取集區所在專案的名稱。
READ_POOL_NAME :讀取集區的名稱,例如 my-read-pool。
HTTP 方法和網址:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_POOL_NAME
請展開以下其中一個選項,以傳送要求:
curl (Linux、macOS 或 Cloud Shell)
執行下列指令:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_POOL_NAME "
PowerShell (Windows)
執行下列指令:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_POOL_NAME " | Select-Object -Expand Content
您應該會收到如下的 JSON 回覆:
回應
{
[...],
"connectionName": "my-project:us-central1:read-pool",
"ipAddresses": [
{
"type": "PRIVATE",
"ipAddress": "10.3.0.108"
}
],
"nodeCount": 2,
"nodes": [
{
"ipAddresses": [
{
"type": "PRIVATE",
"ipAddress": "10.3.0.112"
}
],
"name": "read-pool-node-01",
"gceZone": "us-central1-f",
"dnsName": "c5bdacb09ffc.j10o8yqc7pve.us-central1.sql.goog.",
"state": "RUNNABLE"
},
{
"ipAddresses": [
{
"type": "PRIVATE",
"ipAddress": "10.3.0.113"
}
],
"name": "read-pool-node-02",
"gceZone": "us-central1-c",
"dnsName": "8f77c454d6b2.j10o8yqc7pve.us-central1.sql.goog.",
"state": "RUNNABLE"
}
]
}
REST v1beta4
使用 get 方法查看讀取集區詳細資料。
使用任何要求資料之前,請先修改下列項目的值:
PROJECT ::讀取集區所在專案的名稱。
READ_POOL_NAME :讀取集區的名稱,例如 my-read-pool。
HTTP 方法和網址:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_POOL_NAME
請展開以下其中一個選項,以傳送要求:
curl (Linux、macOS 或 Cloud Shell)
執行下列指令:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_POOL_NAME "
PowerShell (Windows)
執行下列指令:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_POOL_NAME " | Select-Object -Expand Content
您應該會收到如下的 JSON 回覆:
{
[...],
"connectionName": "my-project:us-central1:read-pool",
"ipAddresses": [
{
"type": "PRIVATE",
"ipAddress": "10.3.0.108"
}
],
"nodeCount": 2,
"nodes": [
{
"ipAddresses": [
{
"type": "PRIVATE",
"ipAddress": "10.3.0.112"
}
],
"name": "read-pool-node-01",
"gceZone": "us-central1-f",
"dnsName": "c5bdacb09ffc.j10o8yqc7pve.us-central1.sql.goog.",
"state": "RUNNABLE"
},
{
"ipAddresses": [
{
"type": "PRIVATE",
"ipAddress": "10.3.0.113"
}
],
"name": "read-pool-node-02",
"gceZone": "us-central1-c",
"dnsName": "8f77c454d6b2.j10o8yqc7pve.us-central1.sql.goog.",
"state": "RUNNABLE"
}
]
}
新增或移除讀取集區節點
下列步驟會修改讀取集區中的讀取集區節點數量,藉此縮減或擴充讀取集區。部分作業有限制。詳情請參閱「讀取集區限制 」。
gcloud
如要瞭解如何安裝及開始使用 gcloud CLI,請參閱「安裝 gcloud CLI 」。如要瞭解如何啟動 Cloud Shell,請參閱「使用 Cloud Shell 」。
使用下列 gcloud sql instances patch 指令,即可擴充讀取集區:
gcloud sql instances patch READ_POOL_NAME \
--node-count= NODE_COUNT
請依指示取代下列項目:
READ_POOL_NAME :讀取集區的名稱。
NODE_COUNT :讀取集區中所需的讀取集區節點數量。請選擇 1 到 20 之間的任何數字。
REST v1
如要縮減或擴充讀取集區,請使用 patch 方法,修改讀取集區中的讀取集區節點數量。
使用任何要求資料之前,請先修改下列項目的值:
PROJECT ::讀取集區所在專案的名稱。
NODE_COUNT :讀取集區中所需的讀取集區節點數量。請選擇 1 到 20 之間的任何數字。
HTTP 方法和網址:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_POOL_NAME
JSON 要求主體:
{
"nodeCount": NODE_COUNT
}
請展開以下其中一個選項,以傳送要求:
curl (Linux、macOS 或 Cloud Shell)
將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_POOL_NAME "
PowerShell (Windows)
將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method PATCH ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_POOL_NAME " | Select-Object -Expand Content
您應該會收到如下的 JSON 回覆:
回應
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_POOL_NAME ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "UPDATE",
"name": "OPERATION_ID ",
"targetId": "READ_POOL_NAME ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT /operations/OPERATION_ID ",
"targetProject": "PROJECT "
}
REST v1beta4
如要縮減或擴充讀取集區,請使用 patch 方法,修改讀取集區中的讀取集區節點數量。
使用任何要求資料之前,請先修改下列項目的值:
PROJECT ::讀取集區所在專案的名稱。
NODE_COUNT :讀取集區中所需的讀取集區節點數量。請選擇 1 到 20 之間的任何數字。
HTTP 方法和網址:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_POOL_NAME
JSON 要求主體:
{
"nodeCount": NODE_COUNT
}
請展開以下其中一個選項,以傳送要求:
curl (Linux、macOS 或 Cloud Shell)
將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_POOL_NAME "
PowerShell (Windows)
將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method PATCH ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_POOL_NAME " | Select-Object -Expand Content
您應該會收到如下的 JSON 回覆:
回應
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_POOL_NAME INSTANCE_ID ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "UPDATE",
"name": "OPERATION_ID ",
"targetId": "READ_POOL_NAME ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /operations/OPERATION_ID ",
"targetProject": "PROJECT "
}
編輯讀取集區設定
下列步驟說明如何編輯讀取集區設定。詳情請參閱「關於執行個體設定 」和「編輯執行個體 」。
gcloud
如要瞭解如何安裝及開始使用 gcloud CLI,請參閱「安裝 gcloud CLI 」。如要瞭解如何啟動 Cloud Shell,請參閱「使用 Cloud Shell 」。
使用下列 gcloud sql instances patch 指令,垂直擴充讀取集區,例如修改機型:
gcloud sql instances patch READ_POOL_NAME \
--tier= TIER
請依指示取代下列項目:
READ_POOL_NAME :讀取集區的名稱。
TIER :要套用至讀取集區中每個讀取集區節點的機器類型,例如 db-perf-optimized-N-8。
如要編輯讀取集區設定,請更新現有的 Terraform 資源 。資訊清單與您在「建立讀取集區 」中使用的資訊清單類似。然後在 settings 欄位中更新要變更的屬性。例如,將 settings.tier 屬性變更為其他機型。
REST v1
使用 patch 方法修改讀取集區節點設定。設定會統一套用至讀取集區中的所有讀取集區節點。
使用任何要求資料之前,請先修改下列項目的值:
PROJECT ::讀取集區所在專案的名稱。
TIER :要用於讀取集區中各個讀取集區節點的機器類型,例如 db-perf-optimized-N-4。
READ_POOL_NAME :讀取集區的名稱,例如 my-read-pool。
HTTP 方法和網址:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_POOL_NAME
JSON 要求主體:
{
"settings": {
"tier": "TIER "
}
}
請展開以下其中一個選項,以傳送要求:
curl (Linux、macOS 或 Cloud Shell)
將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_POOL_NAME "
PowerShell (Windows)
將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method PATCH ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_POOL_NAME " | Select-Object -Expand Content
您應該會收到如下的 JSON 回覆:
回應
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_POOL_NAME ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "UPDATE",
"name": "OPERATION_ID ",
"targetId": "READ_POOL_NAME ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT /operations/OPERATION_ID ",
"targetProject": "PROJECT "
}
REST v1beta4
使用 patch 方法修改讀取集區節點設定。設定會統一套用至讀取集區中的所有讀取集區節點。
使用任何要求資料之前,請先修改下列項目的值:
PROJECT ::讀取集區所在專案的名稱。
TIER :要用於讀取集區中各個讀取集區節點的機器類型,例如 db-perf-optimized-N-4。
READ_POOL_NAME :讀取集區的名稱,例如 my-read-pool。
HTTP 方法和網址:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_POOL_NAME
JSON 要求主體:
{
"settings": {
"tier": "TIER "
}
}
請展開以下其中一個選項,以傳送要求:
curl (Linux、macOS 或 Cloud Shell)
將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_POOL_NAME "
PowerShell (Windows)
將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method PATCH ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_POOL_NAME " | Select-Object -Expand Content
您應該會收到如下的 JSON 回覆:
回應
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_POOL_NAME ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "UPDATE",
"name": "OPERATION_ID ",
"targetId": "READ_POOL_NAME ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /operations/OPERATION_ID ",
"targetProject": "PROJECT "
}
連線至讀取集區
連線至讀取集區的方法有很多種。下列步驟說明其中一種方法,也就是在同一個虛擬私有雲網路中建立 VM 做為連線來源,透過私人 IP 位址連線至讀取集區。
如要進一步瞭解如何設定 Cloud SQL 執行個體的連線,請參閱「關於 Cloud SQL 連線 」。連線方法通常會要求您先取得執行個體的 IP 位址或連線名稱,如「查看讀取集區資訊 」所述。讀取集區支援其他 Cloud SQL 執行個體可用的大部分連線方法,但有一些限制 。
如果使用 Cloud SQL Auth Proxy 或 Cloud SQL 連接器連線,請務必更新至最新版本。如要支援讀取集區,最低版本需求如下:
Cloud SQL Auth Proxy:v2.15.2
Cloud SQL Python 連接器:v1.18.0
Cloud SQL Go 連接器:v1.16.0
Cloud SQL Node 連接器:v1.7.0
Cloud SQL Java 連接器:v1.24.0
刪除讀取集區
gcloud
如要瞭解如何安裝及開始使用 gcloud CLI,請參閱「安裝 gcloud CLI 」。如要瞭解如何啟動 Cloud Shell,請參閱「使用 Cloud Shell 」。
使用下列 gcloud sql instances delete 指令刪除讀取集區:
gcloud sql instances delete READ_POOL_NAME
請依指示取代下列項目:
READ_POOL_NAME :要刪除的讀取集區名稱。
REST v1
使用 delete 方法刪除讀取集區。
使用任何要求資料之前,請先修改下列項目的值:
PROJECT ::讀取集區所在專案的名稱。
READ_POOL_NAME :讀取集區的名稱,例如 my-read-pool。
HTTP 方法和網址:
DELETE https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_POOL_NAME
請展開以下其中一個選項,以傳送要求:
curl (Linux、macOS 或 Cloud Shell)
執行下列指令:
curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_POOL_NAME "
PowerShell (Windows)
執行下列指令:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method DELETE ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_POOL_NAME " | Select-Object -Expand Content
您應該會收到如下的 JSON 回覆:
回應
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT /instances/READ_POOL_NAME ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "DELETE",
"name": "OPERATION_ID ",
"targetId": "READ_POOL_NAME ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT /operations/OPERATION_ID ",
"targetProject": "PROJECT "
}
REST v1beta4
使用 delete 方法刪除讀取集區。
使用任何要求資料之前,請先修改下列項目的值:
PROJECT ::讀取集區所在專案的名稱。
READ_POOL_NAME :讀取集區的名稱,例如 my-read-pool。
HTTP 方法和網址:
DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_POOL_NAME
請展開以下其中一個選項,以傳送要求:
curl (Linux、macOS 或 Cloud Shell)
執行下列指令:
curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_POOL_NAME "
PowerShell (Windows)
執行下列指令:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method DELETE ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_POOL_NAME " | Select-Object -Expand Content
您應該會收到如下的 JSON 回覆:
回應
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /instances/READ_POOL_NAME ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "DELETE",
"name": "OPERATION_ID ",
"targetId": "READ_POOL_NAME ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT /operations/OPERATION_ID ",
"targetProject": "PROJECT "
}
後續步驟
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權 ,程式碼範例則為阿帕契 2.0 授權 。詳情請參閱《Google Developers 網站政策 》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2026-11-04 (世界標準時間)。
[[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["缺少我需要的資訊","missingTheInformationINeed","thumb-down"],["過於複雜/步驟過多","tooComplicatedTooManySteps","thumb-down"],["過時","outOfDate","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["示例/程式碼問題","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["上次更新時間:2026-11-04 (世界標準時間)。"],[],[]]