Cloud SQL 中的复制

复制功能是指创建 Cloud SQL 实例的副本并将工作分流到副本。

简介

使用复制功能的主要原因是在不降低性能的情况下扩大数据库中的数据使用量。

其他原因包括在区域之间迁移数据。

此外,如果原始实例已损坏,可以将副本提升为独立实例(在这种情况下,现有副本不会认为该实例是主实例)。

在引用 Cloud SQL 实例时,用于复制的实例称为主实例,而副本则称为读取副本。主实例和只读副本都驻留在 Cloud SQL 中。

创建第一个副本时:

  • 主实例设置为当前主实例上所有数据库的完整恢复模型
  • 截取完整备份;确保有足够的空间用于数据库备份,或者您已启用存储空间自动扩容设置

如果在第一个副本创建时间段内,用户切换到简单恢复模型,副本创建会失败。

以下内容适用于在创建副本后添加到主实例的数据库:

  • 数据库会自动添加到可用性组,并使用自动种子填充在副本中。
  • 每个副本创建操作都会调用主实例上数据库的完整(完整恢复模型)备份。系统不会复制副本后创建的登录和服务器对象。

Cloud SQL 支持以下类型的副本:

Cloud SQL 不支持两个外部服务器之间的复制。

只读副本

您可以使用读取副本从 Cloud SQL 实例中分流工作。读取副本是主实例的精确副本。主实例上的数据和其他更改几乎在读取副本上实时更新。

只读副本是只读副本;您无法将数据写入其中。只读副本会处理查询、读取请求和分析流量,从而减少主实例的负载。 每个主实例最多可以有 8 个只读副本。

您可以使用副本的连接名称和 IP 地址直接连接到副本。 如果您要使用专用 IP 地址连接到副本,则无需为副本创建其他 VPC 专用连接,因为它是从主实例继承的。

如需了解如何创建只读副本,请参阅创建只读副本。如需了解如何管理只读副本,请参阅管理只读副本

在主实例上使用 HA 时,最好将只读副本放在与主实例不同的可用区中。这种做法可确保只读副本在包含主实例的可用区中断服务时继续运行。如需了解详情,请参阅高可用性概览

跨区域只读副本

您可以利用跨区域复制功能,在与主实例不同的区域中创建只读副本。创建跨区域只读副本的方式与创建区域内副本的方式相同。

对于 SQL Server 只读副本,假设副本与主副本位于同一虚拟网络中,或者通过公共 IP 进行通信。

使用跨区域副本具有以下优势:

  • 在更接近应用所在区域的位置提供副本,从而提高读取性能。
  • 提供更高的灾难恢复能力,可防范区域性故障。
  • 可让您将数据从一个区域迁移到另一个区域。

如需详细了解跨区域副本,请参阅提升副本以实现区域性迁移或灾难恢复

复制功能的使用场景

以下使用场景适用于每种复制类型。

名称 主实例 副本 优势和用例 更多信息
读取副本 Cloud SQL 实例 Cloud SQL 实例
  • 额外的读取容量
  • 分析目标
  • 提升读取性能
  • 从副本导出
跨区域读取副本 Cloud SQL 实例 Cloud SQL 实例
  • 额外的读取容量
  • 分析目标
  • 其他灾难恢复功能
  • 提升读取性能
  • 在区域之间迁移数据

结算

  • 读取副本按与标准 Cloud SQL 实例相同的费率计费。数据复制可免费使用。
  • 由于副本始终与其主实例保持连接,因此主实例永不会停用。 这种情况可能导致主实例的计费增加。了解详情
  • 除了与任何 Cloud SQL 实例关联的常规费用之外,跨区域副本还会因从主实例发送到副本的复制日志而产生跨区域网络出站流量费用,详情请参阅网络出站流量价格
  • 跨区域只读副本的价格与在同一区域中创建新实例时的价格相同。请参阅 Cloud SQL 实例价格并选择相应的区域。

Cloud SQL 读取副本的快速参考信息

主题 讨论
高可用性 只读副本既不具有高可用性,也不提供此性能。
故障转移 主实例无法故障转移到读取副本,并且读取副本在服务中断期间无法以任何方式进行故障转移。
维护期 读取副本不支持维护期设置,且不与主实例共享维护期。系统可以随时对读取副本进行维护。读取副本与主实例的维护时间不同。
中断性升级 读取副本随时可能出现升级中断。
性能 当您创建只读副本时,该副本不会影响主实例的可用性。
多个只读副本 您最多可以为一个主实例创建 8 个只读副本。
负载平衡 Cloud SQL 不会在各副本之间提供负载平衡。
设置 主实例的设置会传播到副本,包括对可以访问该实例的用户的数据所做的更改。
核心和内存 只读副本使用的核心数和内存量与主实例不同。SQL Server 只读副本所具有的 CPU 和内存可以高于主实例,但不能具有更少的 CPU 或更少的内存。
用户表 您不能对副本进行更改。所有用户更改都必须在主实例上完成。
备份 您不能为副本配置备份。
恢复主实例 当副本存在时,您无法恢复副本的主实例。 在从备份恢复实例之前,必须先提升或删除实例的所有副本。
删除主实例 您必须先将主实例的所有只读副本提升为独立实例或删除它们,然后才能删除主实例。
删除复制的数据库 您可以使用 Google Cloud Console 或 gcloud 命令删除复制的 SQL Server 数据库,删除操作会自动传播到副本。您无法使用 T-SQL 命令删除复制的 SQL Server 数据库。
为副本创建副本 您不能为副本创建副本。
停止副本 您不能对副本执行 stop 操作。您可以对它执行 restartdelete 操作,但不能像停止主实例那样对其执行停止操作。
专用 IP 如果您要使用专用 IP 地址连接到副本,则无需为副本创建其他 VPC 专用连接,因为它是从主实例继承的。

限制

  • 在此预览版中,您必须至少执行以下操作之一:

    • 创建一个新实例作为主实例。
    • 克隆现有实例,并将该克隆用作主实例。
  • 一个实例中数据库的总大小必须小于 15 TB。

  • 实例的总磁盘容量必须是数据库大小的两倍。

  • 系统支持具有公共 IP 的实例,但前提是该实例也具有专用 IP;必须为该实例启用专用 IP。然后,您可以选择使用公共 IP 或专用 IP 连接到该实例。

  • 不支持与 Managed Service for Microsoft Active Directory 集成。

  • 登录不会传播到副本。

  • 您必须使用 T-SQL 和/或 SQL Server Management Studio 监控副本。

后续步骤