本页介绍了如何为大量读取工作负载创建和管理读取池。
准备工作
- 读取池包含主实例的副本。如果您尚未创建主实例,请创建一个 Cloud SQL 企业 Plus 版主实例。虽然读取池支持公共 IP 连接,但出于本指南的目的,请创建具有专用 IP (PSA) 连接的主实例。 如需详细了解主实例和复制,请参阅 Cloud SQL 中的复制简介。
- 创建主实例后,为 root 用户选择一个密码,然后运行以下命令在主实例上设置密码。 保存此密码,以便稍后连接到读取池时使用。
- PROJECT:您要将主实例和读取池放置在其中的项目的名称。
- PRIMARY_INSTANCE_NAME:主实例的名称。
gcloud --project=PROJECT \ sql users set-password root --host=% \ --instance=PRIMARY_INSTANCE_NAME --prompt-for-password
进行以下替换:
创建读取池
如需了解如何安装和开始使用 gcloud CLI,请参阅安装 gcloud CLI。如需了解如何启动 Cloud Shell,请参阅使用 Cloud Shell。
使用以下 gcloud beta sql instances create
命令创建包含多个读取池节点的读取池:
gcloud beta sql instances createREAD_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
。
使用实例资源的
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 " }
使用实例资源的
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 企业 Plus 版读取副本转换为读取池。在此转换过程中,副本 IP 将成为读取池 IP(读取端点),因此现有客户端无需重新配置即可连接到该池。
新创建的读取池节点将具有与原始读取副本相同的机器类型和配置。如需更改此机器类型或配置,您需要执行单独的操作。只有可用区级读取副本支持此操作。如需将高可用性 (HA) 读取副本转换为读取池,您必须先将其转换为可用区读取副本。
如需了解详情,请参阅修改读取池配置。
如需了解如何安装和开始使用 gcloud CLI,请参阅安装 gcloud CLI。如需了解如何启动 Cloud Shell,请参阅使用 Cloud Shell。
使用以下 gcloud beta sql instances patch
命令转换读取副本,以便与读取池搭配使用:
gcloud beta sql instances patchREAD_REPLICA_NAME \ --instance-type=READ_POOL_INSTANCE --node-count=NODE_COUNT
进行以下替换:
- READ_REPLICA_NAME:您要转换的读取副本的名称。
- NODE_COUNT:您希望读取池中包含的读取池节点数。选择
1
到20
之间的任意数字。
使用实例资源的
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 " }
使用实例资源的
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 CLI,请参阅安装 gcloud CLI。如需了解如何启动 Cloud Shell,请参阅使用 Cloud Shell。
使用以下 gcloud beta sql instances patch
命令转换读取副本,以便与读取池搭配使用:
gcloud beta sql instances patchREAD_POOL_NAME \ --instance-type=READ_REPLICA_INSTANCE
进行以下替换:
- READ_POOL_NAME:您要转换的读取池的名称。
使用实例资源的
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" }
如需发送您的请求,请展开以下选项之一:
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 " }
使用实例资源的
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" }
如需发送您的请求,请展开以下选项之一:
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 CLI,请参阅安装 gcloud CLI。如需了解如何启动 Cloud Shell,请参阅使用 Cloud Shell。
使用以下 gcloud beta sql instances describe
命令描述读取池:
gcloud beta sql instances describeREAD_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
使用
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" } ] }
使用
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 CLI,请参阅安装 gcloud CLI。如需了解如何启动 Cloud Shell,请参阅使用 Cloud Shell。
使用以下 gcloud beta sql instances patch
命令扩缩读取池:
gcloud beta sql instances patchREAD_POOL_NAME \ --node-count=NODE_COUNT
进行以下替换:
- READ_POOL_NAME:读取池的名称。
- NODE_COUNT:您希望读取池中包含的读取池节点数。选择
1
到20
之间的任意数字。
使用
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 " }
使用
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 CLI,请参阅安装 gcloud CLI。如需了解如何启动 Cloud Shell,请参阅使用 Cloud Shell。
使用以下 gcloud beta sql instances patch
命令垂直扩缩读取池,例如通过修改机器类型:
gcloud beta sql instances patchREAD_POOL_NAME \ --tier=TIER
进行以下替换:
- READ_POOL_NAME:读取池的名称。
- TIER:您要应用于读取池中的每个读取池节点的机器类型,例如
db-perf-optimized-N-8
。
使用
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 " }
使用
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
如需连接到读取池,请完成以下步骤:
-
在 Google Cloud 控制台中,转到 Cloud SQL 实例页面。
您将转到实例“概览”页。 点击进入新的读取池,查看包括其专用 IP 地址在内的详细信息。在连接到此实例部分中,复制并保存实例的连接名称。connection name
的格式为projectID:region:instanceID
。稍后您将在启动 Cloud SQL Auth 代理时使用此connection name
。 - 创建 Compute Engine 虚拟机。
- 打开与 Compute Engine 虚拟机的两个 SSH 连接。这些信息将在后续步骤中用于运行 Cloud SQL Auth 代理和数据库客户端。
- 安装客户端。
- 安装 Cloud SQL Auth 代理。
- 启动 Cloud SQL Auth 代理。
- 连接到 Cloud SQL 实例。
如需了解详情,请参阅使用专用 IP 连接到 Cloud SQL 实例。
删除读取池
如需了解如何安装和开始使用 gcloud CLI,请参阅安装 gcloud CLI。如需了解如何启动 Cloud Shell,请参阅使用 Cloud Shell。
使用以下 gcloud sql instances delete
命令删除读取池:
gcloud sql instances deleteREAD_POOL_NAME
进行以下替换:
- READ_POOL_NAME:要删除的读取池的名称。
使用
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 " }
使用
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 " }