概览
在选择将数据库迁移到 Cloud SQL 之前,请务必考虑此迁移场景的已知限制。
将 MySQL 数据库用作来源的已知限制包括:
不支持使用 Percona XtraBackup 物理备份文件迁移到 MySQL 5.6 或 MySQL 8.4。
在跨主要 MySQL 版本迁移时(例如,从 MySQL 8.0 迁移到 MySQL 8.4),您需要解决可能的兼容性问题,以确保顺利迁移且不会出现数据一致性问题。
在准备跨版本迁移时,请查看 Cloud SQL for MySQL 支持的功能以及目标主要版本的版本说明,以确定您需要解决哪些不兼容问题。
在完整数据转储阶段,请勿执行任何数据定义语言 (DDL) 更改,例如修改表定义。在迁移作业进入 CDC 阶段之前执行的 DDL 更改可能会导致迁移作业失败。如需了解详情,请参阅诊断问题:
Table definition has changed
错误。如果来源是 Amazon RDS MySQL、Amazon Aurora MySQL 或不授予 SUPERUSER 权限的来源,则需要执行其他步骤才能成功迁移,包括在来源上停止写入一小段时间。如需了解详情,请参阅 Amazon RDS 专用和 Amazon Aurora 专用部分。
Database Migration Service 无法从 MySQL 数据库集群的 Amazon Aurora 只读副本实例迁移数据,因为无法从该实例检索二进制日志文件。如需了解详情,请参阅 Amazon Aurora 专用部分。
MySQL 系统数据库不会在服务器迁移过程中迁移,这意味着不会包含用户角色相关信息。
使用 Database Migration Service 进行迁移时,您无法选择特定的数据库对象(例如数据库、表或架构)。系统会迁移所有数据库和架构中的所有表,但以下系统架构除外:
mysql
、performance_schema
、information_schema
和sys
。在开始迁移之前,请确保源数据库不包含引用这些架构中表的对象。否则,迁移可能会失败并显示ERROR 1109 (42S02): Unknown table in <schema name here>
消息。请参阅配置源数据库和诊断问题。如果加密数据库需要使用客户管理的加密密钥来解密数据库中的信息,而 Database Migration Service 无权访问这些密钥,则无法迁移这些数据库。
Database Migration Service 支持从加密的 Amazon Aurora 或 Amazon RDS 数据库迁移数据,因为这些数据库会在其服务中透明地处理解密。如需了解详情,请参阅对 Amazon Aurora 资源进行加密和对 Amazon RDS 资源进行加密。
在迁移期间,目标 Cloud SQL 数据库处于只读模式,以防止对数据库进行修改,这可能会破坏迁移过程或数据完整性。目标位置提升后,便可写入。
目前,Database Migration Service 不兼容 MariaDB。
您必须将二进制日志格式设置为
ROW
。将二进制日志配置为任何其他格式(例如STATEMENT
或MIXED
)可能会导致复制失败。例如,使用LOAD DATA IN FILE
语句。如果您使用自己的转储文件创建持续迁移作业,请勿使用 MySQL 版本 5.7.36 中的
mysqldump
实用程序。如需了解详情,请参阅 MySQL 文档中的bug #105761。InnoDB 是 Cloud SQL 唯一支持的存储引擎。使用 MyISAM 进行迁移可能会导致数据不一致且需要验证数据。如需有关将表从 MyISAM 转换为 InnoDB 方面的帮助,请参阅 MySQL 文档。
数据转储并行处理注意事项
借助数据转储并行处理,您可以使用高性能转储机制从 MySQL 数据库迁移,从而显著提高迁移速度。使用数据转储并行性时,请考虑以下事项:
数据转储并行处理功能目前仅在迁移到 MySQL 5.7 或 8 时可用。
在数据转储开始时,Database Migration Service 会短暂锁定您的源数据库,使其暂时无法写入。锁定时长取决于源数据库中表的数量:
表数 大致锁定时间 100 1 秒 10 万位 9 秒 5 万 49 秒
迁移到现有目标实例的限制
- 现有目标实例必须为空,或者仅包含系统配置数据。不支持迁移到包含用户数据(例如表)的现有目标实例。
如果您因现有目标实例中存在额外数据而遇到问题,请清除目标实例中的数据库,然后重试迁移作业。 请参阅从现有目标实例中清除额外数据。
- 每个目标实例只能配置一个迁移作业。
- 您只能迁移到独立的 Cloud SQL 实例。不支持迁移到外部服务器副本。
- 不支持将数据迁移到启用了 Private Service Connect 的 Cloud SQL 实例。
- 如需迁移到具有读取副本的 Cloud SQL 实例,您需要确保源实例已启用全局事务 ID (GTID) 日志记录。
- 对于 Terraform 用户:Database Migration Service 会修改目标实例的备份和恢复设置。这可能会导致目标实例设置与您用于预配的 Terraform 配置不同。如果您遇到此问题,请按照诊断问题中的指南操作。
配额
- 在任何给定时间,最多可以存在 2000 个连接配置文件和 1000 个迁移作业。如需为更多任务腾出空间,可以删除一些迁移作业(包括已完成的作业)和连接配置文件。