不使用超级用户权限从 Amazon RDS MySQL 迁移

如果 Amazon RDS MySQL 源或源不允许授予 SUPERUSER 权限,则成功创建和运行迁移作业可能需要执行一些额外的步骤。

创建 Amazon RDS MySQL 迁移作业

  1. MySQL 将源主机名定义限制为 60 个字符。Amazon RDS 数据库主机名通常会超过 60 个字符。如果您的迁移数据库属于这种情况,请配置 DNS 重定向,以创建将您的域名与 Amazon RDS 数据库实例的域名相关联的 CNAME 记录。如需详细了解如何设置 DNS CNAME,请参阅 Cloud DNS 文档AWS Route53 文档

  2. 二进制日志必须存储在标准块存储中,而不能存储在 Amazon S3 中。

  3. 使用手动提供的转储创建持续迁移作业需要启用 GTIDGTID_MODE 必须为 ONOFFOFF_PERMISSIVE。不支持将 GTID_MODE 值设为 ON_PERMISSIVE

运行迁移作业

无论是对于 MySQL Amazon RDS 还是对于没有 SUPERUSER 权限的源,为了执行初始完全转储,都应在源处停止写入大约 20 秒。

您可以通过从读取副本进行迁移或直接在源数据库上停止写入来停止写入。

如需从读取副本进行迁移,请执行以下操作:

  1. 在 Amazon Web Services (AWS) 中创建读取副本。

  2. 使用 AWS 读取副本的连接信息配置 Database Migration Service 源连接配置文件。

  3. 在迁移作业的状态变为正在启动 | 等待源写入操作停止后,请在 AWS 主实例及其读取副本之间停用复制大约 20 秒。

  4. 在迁移作业的状态变为正在运行 | 正在进行完全转储 后,请在 AWS 中重新启用对读取副本的复制。

除了通过从 AWS 中的读取副本进行迁移来停止写入之外,您还可以直接在源数据库上停止写入。您可以使用 脚本来验证对源数据库的所有写入操作是否已停止。

迁移作业的状态和子状态会指示何时停止和恢复写入。您可以在 API、控制台中或直接在 Cloud Monitoring 中跟踪状态变化:

  1. 在状态变为正在启动 | 等待源写入操作停止后, 应停止对源数据库的写入。Database Migration Service 会识别出写入已停止,并将状态更改为正在运行 | 正在准备转储

  2. 在状态变为正在运行 | 正在进行完全转储 后,您可以安全地 恢复对源数据库的写入。

Database Migration Service 会尝试执行初始转储大约 20 分钟。如果写入操作尚未停止,或者在状态更新之前恢复了写入操作,则该过程会失败并返回一个错误,其中描述了失败的原因。