将架构、数据和元数据从源数据库迁移到目标数据库时,您需要确保所有这些信息都准确迁移。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 数据库上更新标志设置,以复制来源设置。