数据管理DMS提供数据归档功能,当线上数据越来越多影响数据库查询性能与业务运作时,可以使用此功能定时将源数据库的大表数据归档至用户OSS(您开通的阿里云OSS服务),并自动清理源表已归档数据,降低在线存储成本。

前提条件

  • 源数据库类型如下:
    • RDS MySQL
    • PolarDB MySQL版
    • PolarDB分布式版
    • AnalyticDB MySQL 3.0
    • RDS PostgreSQL
    • PolarDB PostgreSQL版
    • 云数据库MongoDB版
    说明
    • 当前云数据库MongoDB版作为源库进行数据归档正在公测中。
    • 物理库和逻辑库均支持。
      • 物理库:具体的某个数据库。
      • 逻辑库:由单个或多个物理库配置而成,可便捷的进行分库分表的操作。更多信息,请参见逻辑库
    • MySQL数据库账号必须具有REPLICATION CLIENT权限。
  • 目标OSS为标准存储或低频访问类型的用户OSS。
  • 源数据库和用户OSS已录入DMS。具体操作,请参见实例录入
  • 需要归档的源表必须存在主键或者唯一键。
    说明 建议源表中配置有业务修改时间的字段,以便将业务修改时间作为归档的过滤条件。

注意事项

  • 源库和目标库的管控模式均为安全协同,才可执行周期归档任务,否则归档任务可能会失败。变更管控模式的操作,请参见变更管控模式
  • 若您仅需要单次执行归档任务,则不限制数据库的管控模式。

数据归档

  1. 登录数据管理DMS 5.0
  2. 在顶部菜单栏中,选择解决方案 > 数据归档
  3. 在页面右上角,单击数据归档
  4. 新建数据归档工单页面,配置以下信息:
    配置项说明
    任务名请输入明确、清晰的任务名,方便后续查询。
    归档目标选中OSS
    OSS实例选择存放归档数据的目标实例。
    说明 请选择标准存储或低频访问类型的用户OSS实例。
    OSS BUCKET选择实例下的OSS Bucket。
    重要
    • 若选择的OSS实例下没有您所需要的OSS Bucket,请在DMS控制台登录此实例,具体操作请参见录入对象存储OSS
    • 归档后数据会存储在此Bucket下的archive文件夹中,请勿删除。
    数据库搜索并选择待归档的业务数据库。
    归档配置
    选择需要归档数据的表。
    • 可选:输入归档数据的过滤条件。
      说明 如果您需要使用时间变量,例如,归档6个月前的数据,可以先进行变量配置
    • 可选:单击添加,添加多个源表。
    归档表映射您可以单击操作列下的编辑,配置归档表信息。
    变量配置(可选)配置该变量可以在配置归档过滤条件时使用。例如,时间变量为6_month_ago,时间格式为yyyy-MM-dd,偏移量设置为-6月。如果当前日期为2021-8-12,则变量${6_month_ago}的值为2021-02-11。配置时间变量的更多信息,请参见配置时间变量
    后置行为
    • 选择是否清理源表已归档数据:
      • 不清理:归档后不清理源表数据。
      • 清理:归档完成后,自动用无锁的方式清理源表数据。
    • 选择是否校验归档数据:
      • 不校验:不校验归档后的数据。
      • 校验:归档数据与原库数据进行比对,展示差异信息与归档信息。

        校验时间随数据量增长。

    运行方式选择运行方式,当前支持:
    • 单次执行:工单审核通过后,仅单次运行归档任务。
    • 周期调度:工单审核通过后,可根据部署的周期调度执行归档任务。具体配置,请参见配置周期调度
  5. 单击提交申请
    工单审批通过后,自动执行数据归档任务。
    说明 数据归档功能将以0时区进行数据归档与后置行为(与数据库实际时区无关)。
  6. 可选:数据归档成功且确认无误后,您可以删除已归档的源表数据并优化源表空间。
    1. 清理源表已归档数据。
      • 如果您开启了后置行为,源表已归档数据会被清理,同时在源数据库中生成备份临时表。

        清理备份临时表:通过新建普通数据变更工单,清理数据库中的备份临时表。新建普通数据变更工单,请参见普通数据变更

        说明 在数据归档工单详情页的最下方,单击点击查看临时表drop SQL,复制清理备份临时表的SQL语句。
      • 如果您没有开启后置行为,需要手动清理源表已归档数据。

        清理源表已归档数据:通过新建普通数据变更工单,清理源数据库中已归档数据。

    2. 优化源表空间:通过新建无锁变更工单,完成源表空间优化。新建无锁变更工单,请参见通过无锁变更工单实现无锁结构变更
      说明 在数据归档工单详情页的最下方,单击点击查看源表空间优化SQL,复制源表空间优化的SQL语句。

查询已归档的OSS数据

  1. 登录数据管理DMS 5.0
  2. 在顶部菜单栏中,选择解决方案 > 数据归档
  3. 进入数据归档工单列表页面,视图选择归档视图
  4. 搜索目标数据归档工单。您可在搜索框中输入工单号、库名或表名等信息,单击搜索,快速获取目标工单。
  5. 单击目标归档视图工单行操作列下的查询
    重要 若OSS归档实例是首次作为归档目标进行归档查询,则需要登录,您需要提前准备好OSS归档实例的AccessKey IDAccessKey Secret。获取AccessKey,请参见如何获取AccessKey
  6. 可选:输入OSS归档实例的数据库账号数据库密码,单击确认
    重要 确保输入的数据库账号数据库密码,与归档OSS实例的AccessKey IDAccessKey Secret一致,否则会出现无法查询的情况。
    输入
  7. 系统自动跳转至逻辑数仓页面,且在命令执行区域自动填充查询SQL。
    说明 若系统自动跳转至空白页,则说明您当前没有逻辑数仓的权限。请使用钉钉搜索钉钉群号24005004020,并加入钉钉群申请权限。
  8. 单击执行,查询结果会在页面下方的执行结果区域展示。
    重要 系统默认限制返回20条查询的数据,您可根据业务需求修改限制条件,返回更多数据。

查询已归档OSS数据的更多信息,请参见查询用户OSS数据归档

恢复已归档数据至源库

费用说明

该功能免费使用。

使用限制

仅源数据库类型为RDS MySQLAnalyticDB MySQL 3.0可使用此功能。

操作步骤

  1. 登录数据管理DMS 5.0
  2. 在顶部菜单栏中,选择解决方案 > 数据归档
  3. 进入数据归档工单列表页面,视图选择工单视图
  4. 单击目标工单视图行操作列下的详情
  5. 数据归档工单列表页的执行区域,单击操作列下的恢复到源库
  6. 在对话框中,单击确认
    此时归档的任务下会增加一个恢复的任务。系统自动执行此任务,您需要等待任务状态从正在执行变为执行成功,此过程耗时长短与您恢复的数据量有关。任务执行
    重要 执行归档数据恢复到源库操作后,系统会自动在源库中创建临时表,可能会造成源库空间不足,请您谨慎操作。
  7. 查看已恢复的数据。
    1. 在该工单详情页的基本信息区域,单击变更库名称,在弹出的提示框上单击查询
    2. 双击目标表名称,单击执行
      您可在SQL Console页面下方的执行结果区域,查看已恢复的数据。

配置周期调度

运行方式周期调度时,请根据实际情况配置如下参数:

表 1. 调度周期配置表
配置项说明
调度周期选择调度任务的周期:
  • 小时:按设定的小时执行任务调度,需要配置定时调度
  • :按每日一次的频率执行任务调度,需要配置每日调度具体时间
  • :以周为周期,每个指定天执行一次任务调度,需要配置指定时间具体时间
  • :以月为周期,每个指定天执行一次任务调度,需要配置指定时间具体时间
定时调度提供了2种定时调度的方式:
  • 固定间隔时间调度:
    • 开始时间:执行任务的开始时间。
    • 间隔时间:执行任务的间隔时间,单位为小时。
    • 结束时间:执行任务的结束时间。
    例如,配置开始时间为00:00、间隔时间为6小时、结束时间为20:59,系统将在0点、6点、12点、18点执行任务。
  • 指定时间调度:选择执行任务的目标时间点。

    例如选择和0小时和5小时,系统将在0点和5点执行任务。

指定时间
  • 如果调度周期为周,选择星期几执行任务,支持多选。
  • 如果调度周期为月,选择每月几号执行任务,支持多选。
具体时间设置执行任务流的具体时间。

例如配置02:55,系统将在指定天的02时55分执行任务。

cron表达式不需要手动配置,系统会根据您配置的周期、具体时间自动展现。