本页面介绍如何管理读取副本。相关操作包括停用和启用复制功能、提升副本、配置并行复制以及检查复制状态。
如需详细了解复制的工作原理,请参阅 Cloud SQL 中的复制。
停用复制功能
默认情况下,复制功能会随副本的启动而启用。 但您可以停用复制功能,例如,要对实例状态进行调试或分析时。准备就绪后,您可以明确重新启用复制功能。停用或重新启用复制功能不会重启副本实例。
停用复制功能并不会使副本实例停止,而是使该实例变成一个不再从其主实例复制内容的只读实例。系统会继续向您收取该实例的费用。在已停用的副本上,您可以重新启用复制、删除副本或将副本提升为独立实例。
如果长时间停用复制功能,磁盘存储空间需求可能会增加。例如,您的实例可能会累积事务日志,以便您可以在重新启用复制功能时继续复制。为避免增加磁盘存储空间需求,请考虑提升副本或创建主实例的克隆,而不是长时间停用复制功能。
如需停用复制功能,请按如下所述操作:
控制台
-
在 Google Cloud 控制台中,前往 Cloud SQL 实例页面。
转到“Cloud SQL 实例”
- 点击某副本实例的名称以选择该实例。
- 点击按钮栏中的停用复制功能按钮。
- 点击确定。
gcloud
gcloud sql instances patch REPLICA_NAME \
--no-enable-database-replication
REST v1
如需在命令行提示符处执行此 cURL 命令,请使用 gcloud auth print-access-token 命令获取访问令牌,也可以使用 Instances:patch 页面上的 APIs Explorer 发送 REST API 请求。
在使用任何请求数据之前,请先进行以下替换:
- project-id:项目 ID
- replica-name:副本实例的名称
HTTP 方法和网址:
PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/replica-name
请求 JSON 正文:
{
"settings":
{
"databaseReplicationEnabled": "False"
}
}
如需发送您的请求,请展开以下选项之一:
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-id/instances/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-id/instances/replica-name" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
响应
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/replica-name",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "UPDATE",
"name": "operation-id",
"targetId": "replica-name",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id",
"targetProject": "project-id"
}
REST v1beta4
如需在命令行提示符处执行此 cURL 命令,请使用 gcloud auth print-access-token 命令获取访问令牌,也可以使用 Instances:patch 页面上的 APIs Explorer 发送 REST API 请求。
在使用任何请求数据之前,请先进行以下替换:
- project-id:项目 ID
- replica-name:副本实例的名称
HTTP 方法和网址:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/replica-name
请求 JSON 正文:
{
"settings":
{
"databaseReplicationEnabled": "False"
}
}
如需发送您的请求,请展开以下选项之一:
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-id/instances/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-id/instances/replica-name" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
响应
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/replica-name",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "UPDATE",
"name": "operation-id",
"targetId": "replica-name",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
"targetProject": "project-id"
}
启用复制功能
如果某副本已有很长时间未复制内容,它将需要较长时间才能与主实例同步。在这种情况下,请删除该副本并创建一个新副本。
如需启用复制功能,请按如下所述操作:
控制台
-
在 Google Cloud 控制台中,前往 Cloud SQL 实例页面。
转到“Cloud SQL 实例”
- 点击某副本实例的名称以选择该实例。
- 点击启用复制功能。
- 点击确定。
gcloud
gcloud sql instances patch REPLICA_NAME \
--enable-database-replication
REST v1
如需在命令行提示符处执行此 cURL 命令,请使用 gcloud auth print-access-token 命令获取访问令牌,也可以使用 Instances:patch 页面上的 APIs Explorer 发送 REST API 请求。
在使用任何请求数据之前,请先进行以下替换:
- project-id:项目 ID
- replica-name:副本实例的名称
HTTP 方法和网址:
PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/replica-name
请求 JSON 正文:
{
"settings":
{
"databaseReplicationEnabled": "True"
}
}
如需发送您的请求,请展开以下选项之一:
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-id/instances/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-id/instances/replica-name" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
响应
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/replica-name",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "UPDATE",
"name": "operation-id",
"targetId": "replica-name",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id",
"targetProject": "project-id"
}
REST v1beta4
如需在命令行提示符处执行此 cURL 命令,请使用 gcloud auth print-access-token 命令获取访问令牌,也可以使用 Instances:patch 页面上的 APIs Explorer 发送 REST API 请求。
在使用任何请求数据之前,请先进行以下替换:
- project-id:项目 ID
- replica-name:副本实例的名称
HTTP 方法和网址:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/replica-name
请求 JSON 正文:
{
"settings":
{
"databaseReplicationEnabled": "True"
}
}
如需发送您的请求,请展开以下选项之一:
curl(Linux、macOS 或 Cloud Shell)