与复制功能的配置相关的要求和提示

本页面提供了与使用读取副本相关的信息。

如需了解如何配置读取副本,请参阅创建读取副本

读取副本

读取副本是从 Cloud SQL 主实例复制的 Cloud SQL 实例。读取副本为只读状态。您无法对此类副本执行写入操作。您可以使用副本从主实例中分流出读取请求和分析流量。

如需了解如何配置读取副本,请参阅创建读取副本

Cloud SQL 读取副本主题的快速参考

主题 讨论
高可用性 读取副本既不具有高可用性,也不提供此性能。
故障转移 主实例无法故障转移到读取副本,并且读取副本在服务中断期间无法以任何方式进行故障转移。
维护期 读取副本不支持维护期设置,且不与主实例共享维护期。系统可以随时对读取副本进行维护。读取副本与主实例的维护时间不同。
中断性升级 读取副本随时可能出现升级中断。
性能 当您创建读取副本时,该副本不会影响主实例的性能或可用性。
多个读取副本 您可以为一个主实例创建多个读取副本。
负载平衡 Cloud SQL 不会在各副本之间提供负载平衡。
设置 主实例的设置会传播到副本,包括 postgres 用户的密码及对用户表的更改。
机器类型 读取副本的机器类型(或层级)可以与主实例不同。读取副本的 CPU 和内存可以多于但不能少于主实例的 CPU 和内存。
用户表 您不能更改副本中的用户表。所有用户更改都必须在主实例上完成。
备份 您不能为副本配置备份。
恢复主实例 当副本存在时,您无法恢复副本的主实例。在从备份恢复实例之前,必须先提升或删除实例的所有副本。
删除主实例 您必须先将主实例的所有读取副本提升为独立实例或删除它们,然后才能删除主实例。
为副本创建副本 您不能为副本创建副本。
停止副本 您不能对副本执行 stop 操作。您可以对它执行 restartdeletedisable replication 操作,但不能像停止主实例那样对其执行停止操作。

结算

  • 读取副本按与标准 Cloud SQL 实例相同的费率计费。系统不会对数据复制操作收费。

问题排查

点击表中的链接可查看详细信息:

针对此问题… 可能的原因… 请尝试以下操作…
创建时读取副本未开始复制。 启用二进制日志记录后,必须至少已创建一个备份。 启用二进制日志后,等到至少创建了一个备份
无法创建读取副本 - 未知错误。 可能存在多个根本原因。 查看日志以了解详情
磁盘已满。 主实例磁盘大小可能在副本创建期间变满。 将主实例升级为更大的磁盘。
副本实例占用的内存过多。 副本可以缓存经常请求的读取操作。 重启副本实例以收回临时内存空间。
已停止复制。 已达到存储空间上限,且未启用存储空间自动扩容功能。 启用存储空间自动扩容功能
复制延迟一直很高。 可能存在多个不同的根本原因 增加副本的实例大小或减少数据库的负载

创建时读取副本未开始复制

创建时读取副本未开始复制。

可能的原因

主实例必须至少具有一周的二进制日志,否则副本无法开始复制。

可以尝试的操作

等到有足够的二进制日志。


无法创建读取副本 - 未知错误

无法创建读取副本 - unknown error

可能的原因

日志文件中可能有更具体的错误信息。

可以尝试的操作

在 Cloud Logging 中查看日志以找到实际错误。如果错误为 set Service Networking service account as servicenetworking.serviceAgent role on consumer project,则停用 Service Networking API,然后重新启用。此操作会创建继续执行该过程所需的服务帐号。


磁盘已满

error: disk is full

可能的原因

主实例磁盘大小可能在副本创建期间变满。

可以尝试的操作

对主实例进行修改以将其升级为更大的磁盘。


副本实例占用的内存过多

副本实例占用的内存过多。

可能的原因

副本使用临时内存来缓存经常请求的读取操作,这可能会导致其占用的内存多于主实例。

可以尝试的操作

重启副本实例以收回临时内存空间。


已停止复制

已停止复制。

可能的原因

已达到存储空间上限并且 >automatic storage increase is disabled

可以尝试的操作

对实例进行修改以启用 automatic storage increase


复制延迟一直很高

复制延迟一直很高。

可能的原因

写入负载过高,副本无法处理。当副本上的 SQL 线程无法与 IO 线程保持同步时,会发生复制延迟。某些类型的查询和工作负载会导致指定架构出现暂时性或永久性的高复制延迟。下面列出了复制延迟的部分常见原因:

  • 对副本的查询速度较慢。您可以启用 log_slow_slave_statements 来检测此问题并进行修复。
  • 所有表都必须具有唯一键/主键。每次更新此类没有唯一键/主键的表都会导致对副本进行全表扫描。
  • 由于大量更新堆积在副本上,因此 DELETE ... WHERE field < 50000000 等查询会导致基于行的复制出现复制延迟。

可以尝试的操作

对实例进行修改以增加副本的大小,或减少数据库的负载。

后续步骤