迁移准确度

将架构、数据和元数据从源数据库迁移到目标数据库时,您需要确保所有这些信息都准确迁移。Database Migration Service 提供了一种高保真迁移方式,可将数据库对象(包括架构、数据和元数据)从一个数据库迁移到另一个数据库。

在数据库迁移过程中,系统会迁移以下所有数据、架构和元数据组件:

数据

  • 所有表和架构,不包括以下系统数据库:sys、mysql、performance_schema 和 information_schema。

架构

  • 命名

  • 主键

  • 数据类型

  • 序数位置

  • 默认值

  • 是否可为 null

  • 自动递增属性

  • 二级索引

元数据

  • 存储过程

  • 函数

  • 触发器

  • 视图

  • 外键限制条件

持续迁移

在持续迁移期间,系统会更新对前面列出的所有数据、架构和元数据的数据操纵语言 (DML) 和数据定义语言 (DDL) 更改。

哪些内容不会迁移

  • 如需迁移加密数据库,您需要向 Database Migration Service 提供加密密钥。Database Migration Service 支持从加密的 Amazon Aurora 或 Amazon RDS 数据库迁移数据,因为这些数据库会在其服务中以透明方式处理解密。如需了解详情,请参阅加密 Amazon Aurora 资源、加密 Amazon RDS 资源和配置客户管理的加密密钥 (CMEK)。

  • 用户账号和登录信息不会迁移。

    MySQL 系统数据库(mysql、performance_schema、information_schema 和 sys)不会迁移。这些数据库包含有关用户账号、登录信息和权限的信息。用户账号登录信息必须直接在 Cloud SQL 目标数据库实例中进行管理。

    如果元数据对象(例如存储过程、函数、视图、事件和触发器)使用 DEFINER 子句引用目标实例上不存在的用户账号,则在新的 Cloud SQL 目标实例上调用这些对象时会失败。您必须在目标实例上创建相应的用户账号,或在迁移前更新 DEFINER 子句。如需了解详情,请参阅使用 DEFINER 子句验证元数据。

    如需将用户添加到 Cloud SQL 目标实例,请前往该实例,然后从用户标签页添加用户,或从 MySQL 客户端添加用户。如需详细了解如何在 Cloud SQL for MySQL 中创建和管理数据库用户,请参阅 Cloud SQL 文档中的创建和管理用户。

  • 非默认标志设置不会迁移到 Cloud SQL 目标实例。在将架构、数据和元数据迁移到目标数据库之前,请在源数据库上运行 SHOW VARIABLES,然后在 Cloud SQL 数据库上再次运行该命令。根据需要更新 Cloud SQL 数据库的标志设置,以复制来源设置。