创建和管理读取池
本页面介绍了如何为大型读取工作负载创建和管理读取池。
准备工作
- 读取池包含主实例的副本。如果您尚未创建 Cloud SQL 企业 Plus 版主实例,请进行创建。
虽然读取池支持公共 IP 连接,但为了便于学习本指南,请创建具有专用 IP (PSA) 连接的主实例。
如需详细了解主实例和复制,请参阅 Cloud SQL 中的复制简介。
- 创建主实例后,为根用户选择一个密码,然后运行以下命令在主实例上设置该密码。
保存此密码,以便稍后在连接到读取池时使用。
gcloud --project=PROJECT \
sql users set-password root --host=% \
--instance=PRIMARY_INSTANCE_NAME --prompt-for-password
进行以下替换:
- 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
进行以下替换:
- 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
属性设置为您要使用的节点数。
以下示例包含主实例和读取池的资源。
应用更改
如需在 Trusted Cloud 项目中应用 Terraform 配置,请完成以下部分中的步骤。
准备 Cloud Shell
- 启动 Cloud Shell。
-
设置要应用 Terraform 配置的默认 Trusted Cloud 项目。
您只需为每个项目运行一次以下命令,即可在任何目录中运行它。
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 显示“应用完成!”消息。
- 打开您的 Trusted Cloud 项目以查看结果。在 Trusted Cloud 控制台的界面中找到资源,以确保 Terraform 已创建或更新它们。
删除更改
如需删除更改,请执行以下操作:
- 如需停用防删除保护,请在 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:您要使用的数据库版本。
例如
MYSQL_8_0_37
。
- 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:您要使用的数据库版本。
例如
MYSQL_8_0_37
。
- 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 企业 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_NAMEINSTANCE_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"
}
连接到读取池
您可以通过多种方式连接到读取池。以下步骤展示了一种方法,即通过在同一 VPC 网络中创建虚拟机作为连接源,来连接到具有专用 IP 地址的读取池。
如需详细了解可用于配置与 Cloud SQL 实例的连接的其他方式,请参阅 Cloud SQL 连接简介。
连接方法通常要求您先获取实例的 IP 地址或连接名称,如查看读取池信息中所述。
读取池支持大多数可用于其他 Cloud SQL 实例的连接方法,但存在一些限制。
如果使用 Cloud SQL Auth 代理或 Cloud SQL 连接器建立连接,请务必更新到最新版本。如需支持读取池,所需的最低版本包括以下版本:
- Cloud SQL Auth 代理: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"
}
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-10-03。
[[["易于理解","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"]],["最后更新时间 (UTC):2025-10-03。"],[],[]]