数据库迁移

数据库迁移功能通过产品化解决方案的封装,实现数据库迁移、校验和清理的闭环操作。本文介绍如何通过创建工单实现数据库迁移。

前提条件

  • 支持的数据库类型:RDS MySQLPolarDB MySQL版和ECS自建MySQL。

    说明

    来源库和目标库的数据库类型需要相同。

  • 来源库和目标库的管控模式为安全协同。更多信息,请参见查看管控模式

  • 来源库已停止写入数据。

背景信息

随着业务的发展,数据库会出现升降配、数据库整体迁移的需求,为支持此类业务场景,DMS推出数据库迁移功能,支持对多种数据库的结构、数据进行同构迁移,同时支持库名称修改、迁移前预校验、迁移后数据一致性校验及来源数据库的清理,保证数据库迁移整个生命周期的完整性,可以为SaaS厂商提供便捷的多租户管理能力。

优势

目前数据迁移工具较多,但均以运维侧使用为主,无权限管控流程。DMS数据库迁移方案优势:

  • 集成DMS的安全管控能力,包括权限管理和流程管控。

  • 集成DTS的数据迁移功能,可提供高性能并发服务。更多信息,请参见高性能

  • 通过产品化解决方案的封装,实现从迁移、校验到清理的闭环逻辑。后续还可结合租户路由配置的更新、服务联动,打通应用侧的整体SaaS迁移链路。

功能限制

  • 支持迁移数据库中所有的表,不支持迁移部分表。

  • 支持全量数据迁移,暂不支持增量数据迁移。

  • 目前迁移对象仅支持Table对象。

费用说明

现阶段您可以免费使用数据库迁移功能。

操作步骤

  1. 登录数据管理DMS 5.0
  2. 在顶部菜单栏中,选择解决方案 > 数据库迁移

    说明

    若您使用的是极简模式的控制台,请单击控制台左上角的2023-01-28_15-57-17.png图标,选择全部功能 > 解决方案 > 数据库迁移

  3. 新建数据库迁移工单页面,配置数据库迁移任务工单。

    配置项

    描述

    任务名称

    输入明确、清晰的任务名称,以减少沟通成本。

    业务背景

    简单介绍该任务的业务背景。

    相关人员

    选择工单协作人员。

    来源实例

    选择要迁移的数据库所在的实例。

    目标实例

    选择来源数据库要迁移到的目标实例。

    说明

    来源实例和目标实例的数据库类型需要相同。

    来源数据库

    选择要迁移的数据库。

    说明
    • 如果选择多个来源数据库,多个来源数据库的Owner需要相同。

    • 拥有来源数据库的导出与变更权限。申请权限,请参见管理访问控制权限

    目标数据库

    目标数据库的名称默认与来源数据库相同。您可以单击目标数据库右侧的编辑,编辑目标数据库名称。

    迁移对象

    选中要迁移的对象,可以多选。

    • 库表结构迁移:迁移来源数据库中的表结构。

    • 全量数据迁移:迁移来源数据库中的表数据。

    一致性校验

    迁移完成后,对迁移前后的数据进行对比,以确定迁移后的数据与源数据相同。

    • 不校验:不校验迁移后的数据是否与源数据相同。

    • 迁移完成,自动校验:迁移完成后,自动开始校验迁移后的数据是否与源数据相同。

      选中迁移完成,自动校验后,在参数配置对话框中,设置单表最大差异上限、无主键表单标数据校验上限,单击确认

    • 手工按需触发:迁移完成后,您可以选择跳过检验或立即校验一致性。

    清理与释放

    迁移完成后,清理来源实例中已迁移的数据库。

    • 不清理:不清理来源实例中已迁移的数据库。

    • 手工按需触发:完成一致性校验后,您可以选择延时清理或立即清理源数据。

    • 迁移完成,自动清理(暂不支持):源数据清理属于高危操作,暂不支持自动触发。

  4. 单击提交申请,系统自动进行预检查。

    您可以在预检查区域查看预检查结果。如果预检查不通过,您可以根据提示信息进行操作。

    • 来源库权限检查:工单提交者必须拥有来源数据库的导出与变更权限,否则提示您申请权限。

    • 目标库权限检查:

      • 如果目标数据库存在,工单提交者必须拥有目标数据库的变更权限,否则提示您申请权限。

      • 如果目标数据库不存在,工单提交者的用户角色需要为管理员、DBA或实例Owner,否则返回错误信息。

    • RAM权限检查:判断主账号是否拥有AliyunDMSDefaultRole角色,用于后续迁移使用。没有该角色则提示您申请角色。

    • 目标实例剩余空间检查:

      • 如果目标实例为RDS MySQLPolarDB MySQL版,则检查目标实例剩余容量是否能够满足迁移数据库所需容量。

      • 如果目标实例为ECS自建数据库,预检查返回结果为错误,提示您自行检查目标实例剩余空间。

    • 同名对象的检查:

      • 如果进行结构迁移,目标实例中不能存在库级别的同名对象。

      • 如果只进行全量数据迁移,来源数据库和目标数据库中必须存在同名对象且同名对象的DDL语句相同,DDL语句不同则提示错误,如果同名对象表中存在历史数据,则提示Warn。

    • 白名单检查:

      • 如果目标实例为RDS MySQLPolarDB MySQL版,检查来源实例、目标实例的白名单中是否包含DTS所需的白名单,如果不完全包含,则返回来源实例、目标实例中缺少的白名单,提示用户进行配置。

      • 如果目标实例为ECS自建数据库,则返回所有DTS需要的白名单。

  5. 预检查通过后,单击提交审批

  6. 待审批通过后,单击立即开始定时执行

    • 立即开始:立即执行迁移任务。

    • 定时执行:在定时设置对话框中,选择开始执行迁移任务的日期和时间。

    任务执行期间,您可以在工单详情页的执行区域,数据库迁移配置向导中查看数据库迁移进度和日志。

  7. 可选:数据库迁移完成后,单击下一步一致性校验,进行数据一致性校验。

    • 跳过校验:跳过数据一致性校验。

    • 立即开始:在参数配置对话框中,设置单表最大差异上限、无主键表单标数据校验上限,单击确认

    • 定时执行:在定时设置对话框中,设置单表最大差异上限、无主键表单标数据校验上限,选择一致性校验开始的时间,单击确认

    说明

    如果存在不一致数据,可单击查看详情查看不一致的概览信息,在概览信息对话框中单击详情查看不一致的具体数据:

    • 如果数据量比较少,可以通过手动修改的方式同步数据,

    • 如果数据量比较大,查明数据不一致的原因,清理目标数据库后重新进行数据库迁移。

  8. 可选:一致性校验完成后,单击下一步数据清理,进行源数据清理。

    • 完成:数据库迁移工单完成。

    • 立即清理:立即执行会实时删除已迁移的表,请谨慎操作。

    • 延时清理:在延时清理对话框中,指定延时清理时间间隔,可输入时间间隔为1~30天。在延时时间区间内,如果需要恢复,可通过一键回滚功能恢复来源数据库中的数据。