对于同构 MySQL 到 Cloud SQL 的迁移,Database Migration Service 会连接到目标 Cloud SQL 实例,然后代表该实例管理迁移过程。 是目标实例与源实例建立连接,但由 Database Migration Service 监督该过程。
对于同构 MySQL 到 Cloud SQL 的迁移, Database Migration Service 支持 持续迁移和 一次性迁移流程。 对于持续迁移,系统会先从完整转储中加载数据,然后根据数据库日志文件中显示的数据更改信息持续更新数据。概括来讲,迁移阶段按如下方式进行:
一次性迁移
-
创建迁移作业时,Database Migration Service 会创建一个临时 编排实例来管理复制,并将目标 Cloud SQL 转换为 Cloud SQL 副本。 此编排实例不会产生额外费用。
图 2. Google Cloud 控制台中 临时编排实例下显示的目标实例。
启动迁移作业后,Database Migration Service 会开始 完整转储阶段。对于一次性迁移,这是唯一的 迁移阶段。
在完整转储期间,Database Migration Service 会连接到源 实例,读取您选择要迁移的数据库的内容, 然后将数据加载到目标实例。
对于一次性迁移,我们建议您在完整转储阶段停用对 源数据库的写入操作。这样,您就可以避免 丢失在迁移过程开始后创建的数据。
您还可以为 Database Migration Service 提供自己的转储文件。 请注意,在您创建 转储文件后添加到数据库的任何数据都不会被迁移。 系统仍会建立与数据库的网络连接以进行 一致性检查。
- 完整转储阶段结束后,Database Migration Service 会自动 提升目标数据库并完成迁移。 届时,您可以切换应用以使用新的 目标数据库。
持续迁移
-
创建迁移作业时,Database Migration Service 会创建一个临时 编排实例来管理复制,并将目标 Cloud SQL 转换为 Cloud SQL 副本。 此编排实例不会产生额外费用。
图 2. Google Cloud 控制台中临时编排实例 下显示的目标实例。
启动迁移作业后,Database Migration Service 会开始 完整转储阶段。
在完整转储期间,Database Migration Service 会连接到源 实例,读取您选择要迁移的数据库的内容, 然后将数据加载到目标实例。
您还可以为 Database Migration Service 提供自己的转储文件。 请注意,在您创建 转储文件后添加到数据库的任何数据都不会被迁移。 系统仍会建立与数据库的网络连接以进行 一致性检查。
-
对于持续迁移,完整转储阶段结束后, Database Migration Service 会切换到 CDC 阶段。在 CDC 期间, Database Migration Service 会持续监控源数据库的更改, 然后持续将这些更改复制到目标实例。
在 CDC 阶段,Database Migration Service 不会从源表 复制实际数据,而是读取从数据库日志文件中提取的信息,以复制目标中的更改。 当您想要 切换应用以使其将目标实例 用作生产数据库时,可以停止正在进行的复制并提升迁移作业。