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

前提条件

  • 支持的数据库类型:RDS MySQL、PolarDB MySQL和ECS自建MySQL。
    说明 来源库和目标库的数据库类型需要相同。
  • 来源库和目标库的管控模式为安全协同。更多信息,请参见查看管控模式
  • 来源库已停止写入数据。

背景信息

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

优势

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

  • 集成DMS的安全管控能力,包括权限管理和流程管控。
  • 集成DTS的数据迁移功能,可提供高性能并发服务。更多信息,请参见高性能
  • 通过产品化解决方案的封装,实现从迁移、校验到清理的闭环逻辑。后续还可结合租户路由配置的更新、服务联动,打通应用侧的整体SaaS迁移链路。

功能限制

  • 支持迁移数据库中所有的表,不支持迁移部分表。
  • 支持全量数据迁移,暂不支持增量数据迁移。
  • 目前迁移对象仅支持Table对象。

费用说明

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

操作步骤

  1. 登录数据管理DMS 5.0
  2. 在顶部菜单栏中,选择解决方案 > 数据库迁移
  3. 新建数据库迁移工单页面,配置数据库迁移任务工单。
    配置项 描述
    任务名称 输入明确、清晰的任务名称,以减少沟通成本。
    业务背景 简单介绍该任务的业务背景。
    相关人员 选择工单协作人员。
    来源实例 选择要迁移的数据库所在的实例。
    目标实例 选择来源数据库要迁移到的目标实例。
    说明 来源实例和目标实例的数据库类型需要相同。
    来源数据库 选择要迁移的数据库。
    说明
    • 如果选择多个来源数据库,多个来源数据库的Owner需要相同。
    • 拥有来源数据库的导出与变更权限。申请权限,请参见申请权限
    目标数据库 目标数据库的名称默认与来源数据库相同。您可以单击目标数据库右侧的编辑,编辑目标数据库名称。
    迁移对象 选中要迁移的对象,可以多选。
    • 库表结构迁移:迁移来源数据库中的表结构。
    • 全量数据迁移:迁移来源数据库中的表数据。
    一致性校验 迁移完成后,对迁移前后的数据进行对比,以确定迁移后的数据与源数据相同。
    • 不校验:不校验迁移后的数据是否与源数据相同。
    • 迁移完成,自动校验:迁移完成后,自动开始校验迁移后的数据是否与源数据相同。

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

    • 手工按需触发:迁移完成后,您可以选择跳过检验或立即校验一致性。
    清理与释放 迁移完成后,清理来源实例中已迁移的数据库。
    • 不清理:不清理来源实例中已迁移的数据库。
    • 手工按需触发:完成一致性校验后,您可以选择延时清理或立即清理源数据。
    • 迁移完成,自动清理:源数据清理属于高危操作,暂不支持自动触发。
  4. 单击提交申请,系统自动进行预检查。
    您可以在预检查区域查看预检查结果。如果预检查不通过,您可以根据提示信息进行操作。
    • 来源库权限检查:工单提交者必须拥有来源数据库的导出与变更权限,否则提示您申请权限。
    • 目标库权限检查:
      • 如果目标数据库存在,工单提交者必须拥有目标数据库的变更权限,否则提示您申请权限。
      • 如果目标数据库不存在,工单提交者的用户角色需要为管理员、DBA或实例Owner,否则返回错误信息。
    • RAM权限检查:判断主账号是否拥有AliyunDMSDefaultRole角色,用于后续迁移使用。没有该角色则提示您申请角色。
    • 目标实例剩余空间检查:
      • 如果目标实例为RDS MySQL、PolarDB MySQL,则检查目标实例剩余容量是否能够满足迁移数据库所需容量。
      • 如果目标实例为ECS自建数据库,预检查返回结果为错误,提示您自行检查目标实例剩余空间。
    • 同名对象的检查:
      • 如果进行结构迁移,目标实例中不能存在库级别的同名对象。
      • 如果只进行全量数据迁移,来源数据库和目标数据库中必须存在同名对象且同名对象的DDL语句相同,DDL语句不同则提示错误,如果同名对象表中存在历史数据,则提示Warn。
    • 白名单检查:
      • 如果目标实例为RDS MySQL、PolarDB MySQL,检查来源实例、目标实例的白名单中是否包含DTS所需的白名单,如果不完全包含,则返回来源实例、目标实例中缺少的白名单,提示用户进行配置。
      • 如果目标实例为ECS自建数据库,则返回所有DTS需要的白名单。
  5. 预检查通过后,单击提交审批
  6. 待审批通过后,单击立即开始定时执行
    • 立即开始:立即执行迁移任务。
    • 定时执行:在定时设置对话框中,选择开始执行迁移任务的日期和时间。
    任务执行期间,您可以在工单详情页的执行区域,数据库迁移配置向导中查看数据库迁移进度和日志。
  7. 可选:数据库迁移完成后,单击下一步一致性校验,进行数据一致性校验。
    • 跳过校验:跳过数据一致性校验。
    • 立即开始:在参数配置对话框中,设置单表最大差异上限、无主键表单标数据校验上限,单击确认
    • 定时执行:在定时设置对话框中,设置单表最大差异上限、无主键表单标数据校验上限,选择一致性校验开始的时间,单击确认
    说明 如果存在不一致数据,可单击查看详情查看不一致的概览信息,在概览信息对话框中单击详情查看不一致的具体数据:
    • 如果数据量比较少,可以通过手动修改的方式同步数据,
    • 如果数据量比较大,查明数据不一致的原因,清理目标数据库后重新进行数据库迁移。
  8. 可选:一致性校验完成后,单击下一步数据清理,进行源数据清理。
    • 完成:数据库迁移工单完成。
    • 立即清理:立即执行会实时删除已迁移的表,请谨慎操作。
    • 延时清理:在延时清理对话框中,指定延时清理时间间隔,可输入时间间隔为1~30天。在延时时间区间内,如果需要恢复,可通过一键回滚功能恢复来源数据库中的数据。