是否可以指定现有的 CloudSQL 实例作为 GCP 中数据库迁移服务的目标?

是否可以指定现有的 CloudSQL 实例作为 GCP 中数据库迁移服务的目标?

根据 GCP 指南,设置数据库迁移涉及使用向导 [1] 在控制台中创建迁移作业。向导会创建一个新的 CloudSQL 实例,但我想指定一个现有实例,以便我们可以通过版本控制(例如 Terraform)管理目标实例

是否可以指定现有的 CloudSQL 实例作为 GCP 中数据库迁移服务的目标?如果可以,该怎么做?

如果没有,版本控制的另一种解决方案是通过运行 gcloud CLI/API 命令的脚本创建迁移作业(可能还有目标实例)。

从数据库迁移的 API 指南 [2] 来看,似乎我们需要指定一个目的地连接配置文件。

destination-connection-profile-id: the destination connection profile ID

这反映在 gcloud CLI 文档中 [3]

--destination=DESTINATION
ID of the connection_profile or fully qualified identifier for the connection_profile. To set the connection_profile attribute:
provide the argument --destination on the command line.

这是否意味着为了通过 CLI 创建迁移作业,我需要手动创建目标 CloudSQL 实例以及该实例的连接配置文件?如果是这样,连接用户需要什么权限?或者“gcloud database-migration migration-jobs create”命令是否会自动创建目标实例?

否则,欢迎提出有关 --destination 标志的含义的建议。

[1]https://cloud.google.com/database-migration/docs/mysql/create-migration-job

[2]https://cloud.google.com/database-migration/docs/mysql/api-migration-jobs#create_a_continuous_migration_job_with_reverse_ssh_connectivity

[3]https://cloud.google.com/sdk/gcloud/reference/database-migration/migration-jobs/create

答案1

您问了以下问题:

  • 是否可以指定现有的 CloudSQL 实例作为 GCP 中数据库迁移服务的目标?

  • “gcloud database-migration migration-jobs create”命令是否会自动创建目标实例?

  • 这是否意味着要通过 CLI 创建迁移作业,我需要手动创建目标 CloudSQL 实例以及该实例的连接配置文件?

  • 第一个问题的答案:不,这是不可能的。我的看法是,数据库迁移服务将始终创建一个新实例。当使用向导/控制台执行迁移服务时,当您单击“创建目标”时,它会自动为您创建一个新的 Cloud SQL 目标实例。使用 API 时,您需要创建目标配置文件。请参阅此关联其中提到“为 Cloud SQL for MySQL 目标创建连接配置文件...MySQL 的数据库迁移服务使用此请求中的信息来创建新的 Cloud SQL for MySQL 实例。”

    我认为,如果我们不每次都创建新实例,那么让服务可靠地工作将相当棘手。话虽如此,我认为目前存在的服务旨在能够在未来支持更多选项,因此这可能会发生,但我没有看到任何证据表明现在可以做到这一点。

  • 第二个问题的答案:不,它不会创建它。当您运行“gcloud database-migration migration-jobs create”命令时,您必须创建源和目标连接配置文件,并将其作为参数提供给此命令,具体如下:文档

  • 第三个问题的答案:不。要使用 gcloud(或 API)执行此操作,您需要创建源和目标连接配置文件,然后根据提供的信息为您创建迁移作业和目标实例这里

您对如何使用 terraform 管理此问题的担忧可能是合理的,也许很有趣,但 terraform 是第三方产品,Google 并未根据其模型构建 API。也许您可以为此创建一个问题,然后有人可以对此进行调查。

答案2

不幸的是,谷歌选择以这种方式实施该解决方案。起初,我以为它更类似于 AWS 方法,其中 DMS 设置中间数据库实例来迁移/操作数据,然后再复制到目标实例/数据库引擎。

希望他们能随着时间的推移不断改进,但目前看来它还不是一个完整的产品

相关内容