关于从外部服务器复制

本页面介绍了将数据从源数据库服务器复制到 MySQL 副本的配置。此配置有时称为“外部服务器”配置。

源数据库服务器可以是任何 MySQL 服务器,包括在其他 Google Cloud 服务(例如 Cloud SQL 或 Compute Engine)或其他云服务提供商(例如 Amazon RDS)上运行的服务器,前提是这些服务器符合相关要求。如需了解设置此配置的分步说明,请参阅从外部服务器复制

外部服务器配置的使用场景

外部服务器配置有助于实现以下目标:

  1. 将您的数据从自行管理的 MySQL 服务器迁移到停机时间最少的 Google Cloud。

  2. 将管理副本的工作交由 Cloud SQL 处理的同时保留服务器的主机托管服务和控制权。

    此使用场景有时称为“混合云”。在自行管理的服务器与 Cloud SQL 副本之间进行的复制将无限期地继续。

外部复制配置

外部复制配置包括以下实例:

  • 您管理的 MySQL 服务器,也称为“源数据库服务器”。
  • Cloud SQL 副本。

    单个源数据库服务器可以有多个副本。

  • 源表示形式实例。

    源表示形式实例是一个 Cloud SQL 实例,代表 Cloud SQL 副本的源数据库服务器。该实例会显示在 Google Cloud 控制台中,并且看起来与常规 Cloud SQL 实例相同,但不包含任何数据,无需进行任何配置或维护,也不会影响结算。

下图展示了这些实例:

组成外部复制配置的三个实例的图表

SSL/TLS 配置

如需从外部服务器进行复制,您需要在源数据库服务器和 Cloud SQL 副本之间发送对数据做出的所有更改。

如果连接是通过公共网络(使用 IP 许可名单)建立的,则 Google 建议对源数据库和目标数据库之间的连接使用 SSL/TLS 加密。

Cloud SQL 提供了以下 SSL/TLS 配置选项:

  • 无:Cloud SQL 目标实例在不加密的情况下连接到源数据库。
  • 仅限服务器的身份验证

  • 服务器-客户端身份验证

仅限服务器的身份验证

当副本连接到主实例时,副本会对主实例进行身份验证,从而确保副本连接到正确的主机并防止中间人攻击。主实例不会对副本进行身份验证。

如需使用仅限服务器的身份验证,请在创建副本时提供为外部服务器证书签名的证书授权机构 (CA) 的 x509 PEM 编码证书。CA 只能包含一个证书,并且必须是自签名证书。换句话说,为服务器证书签名的证书授权机构必须是根 CA。

服务器-客户端身份验证

当副本连接到主实例时,副本会对主实例进行身份验证,主实例也会对副本进行身份验证。

服务器-客户端身份验证提供最高级别的安全防护。但是,如果您不想在创建副本时提供客户端证书和私钥,则仍可以使用仅限服务器的身份验证。

如需使用服务器-客户端身份验证,请在创建副本时提供以下内容:

  • 签署源数据库服务器证书的 CA 的 x509 PEM 编码证书 (caCertificate)。
  • 将由副本用来对源数据库服务器进行身份验证的 x509 PEM 编码证书 (clientCertificate)。
  • clientCertificate 关联的未加密 PKCS#1PKCS#8 PEM 编码的私钥 (clientKey)。

来自同一数据库服务器的多个副本

您可以根据同一源数据库服务器创建多个副本。您可能需要提供更多带宽,或者在不同区域中创建副本。

如果您要在同一区域中创建多个副本,所有这些副本都可以使用相同或不同的源表示形式实例。如果您使用 Google Cloud 控制台创建多个副本,这些副本将具有不同的源表示形式实例。

如果您要在不同区域中创建多个副本,这些副本必须具有不同的源表示形式实例。

您无法在同一个操作中创建多个副本。为第一个副本创建完副本配置后,您就可以开始为其他副本创建副本配置了。您无需等到第一个副本完全正常运行再开始创建其他副本。

外部服务器的级联副本

级联读取副本让您可以在相同或不同区域中的一个读取副本下创建另一个读取副本。您最多可以添加四个级层的级联副本,包括主实例。将副本提升到级联副本层次结构的顶层后,它将成为主实例,并且其级联副本会继续复制。

通过外部服务器,您可以在迁移数据之后、将外部服务器副本提升为主实例之前,在外部服务器副本下创建读取副本。这样,您就可以在外部服务器副本提升之前测试读取副本拓扑。