数据归档

数据管理DMS的数据归档功能定时将大表的数据归档至其他数据库,解决线上数据越来越多影响查询性能与业务运作的问题,同时支持源表数据删除、表空间整理回收等,可以提高数据库查询性能,降低在线存储成本。本文介绍将历史数据归档的方法。

前提条件

  • 源数据库为:RDS MySQLPolarDB MySQL版PolarDB分布式版RDS PostgreSQL、AnalyticDB MySQL 3.0PolarDB PostgreSQL版MongoDB 3.6版本及以上

    说明
    • 物理库和逻辑库均支持。

      • 物理库:具体的某个数据库。

      • 逻辑库:由单个或多个物理库配置而成,可便捷地进行分库分表的操作。更多信息,请参见逻辑库

    • MySQL数据库账号必须具有REPLICATION CLIENT权限。

  • 目标数据库为:OSSLindorm宽表引擎2.2.17及以上版本、AnalyticDB MySQL 3.0、AnalyticDB PostgreSQL版DBS内置OSS、专属存储

    说明
    • 创建存放归档数据的Lindorm实例,请参见创建实例

    • 创建存放归档数据的AnalyticDB MySQL版集群,请参见创建集群

  • 源库和目标库已录入DMS中。具体操作,请参见云数据库录入

    说明

    录入Lindorm实例时,数据库类型选择Lindorm-SQL。

  • 需要归档的源表必须存在主键或者唯一键。

    说明

    源表中最好有业务修改时间的字段,以便将业务修改时间作为归档的过滤条件。

注意事项

  • 源库和目标库的管控模式均为安全协同,才可执行周期归档任务,否则归档任务可能会失败。变更管控模式的操作,请参见变更管控模式

  • 若您仅需要单次执行归档任务,则不限制数据库的管控模式。

操作步骤

  1. 登录数据管理DMS 5.0
  2. 在顶部菜单栏中,选择解决方案 > 数据归档
  3. 在页面右上角,单击数据归档

  4. 新建数据归档工单页面,配置工单信息。

    配置项

    说明

    任务名

    输入任务名称,方便后续查询。

    归档目标

    选中目标库的类型。

    说明

    如果归档目标为DBS内置OSS,归档方法,请参见数据归档至DBS内置OSS

    目标实例

    选择存放归档数据的目标实例。

    说明
    • 如果归档目标为Lindorm,需要使用Lindorm宽表引擎2.2.17及以上版本。

    • 系统会自动在目标实例上创建与源库同名的数据库。如果目标实例上已存在与源库同名的数据库,则源表直接归档到该数据库中。

    数据库

    搜索并选择源库。

    归档配置

    1. 选择需要归档数据的源表。

    2. 可选:输入归档数据的过滤条件。

      image..png
      说明

      例如归档数据库中2个月前的数据,则需要输入过滤条件gmt_create <= '${2_month_ago}'

    3. 可选:单击添加,添加多个源表。

    归档表映射

    您可以单击表名操作列中的编辑,编辑源表归档到目标库后的表名、列信息、分库键和分区键。

    变量配置

    配置时间变量,请参见配置时间变量

    例如,配置变量名为2_month_ago,时间格式为yyyy-MM-dd,偏移量设置为-2月。如果当前日期为2023-06-06,则变量${2_month_ago}的值为2023-04-05。

    后置行为

    选择是否清理源表已归档数据。

    • 不清理:归档后不清理源表数据。

    • 清理:归档完成后,自动用无锁的方式清理源表数据。

    运行方式

    • 单次执行:工单审核通过后,仅单次运行归档任务。

    • 周期调度:工单审核通过后,可根据部署的周期调度执行归档任务。具体配置,请参见周期调度

  5. 单击提交申请

    工单审批通过后,自动执行数据归档任务。

    说明

    数据归档功能将以0时区进行数据归档与后置行为(与数据库实际时区无关)。

  6. 可选:查看已归档的数据。

    1. 在顶部菜单栏中,单击首页

    2. 可选:在页面左侧的实例列表中,找到目标实例,右键单击目标实例,选择刷新/同步字典

      说明

      如果您是第一次查看已归档数据,需要先刷新同步字典。

    3. 右键单击目标库,选择查询,在目标库的SQL窗口查询与管理已归档的数据。

  7. 可选:数据归档成功且确认无误后,您可以进行源表已归档数据删除和空间优化。

    1. 清理源表已归档数据。

      • 如果您开启了后置行为,源表已归档数据被清理,同时在源库中生成备份临时表。

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

        说明

        在数据归档工单详情页的最下方,单击点击查看临时表drop SQL,复制清理备份临时表的SQL语句。

      • 如果您没有开启后置行为,需要手动清理源表已归档数据。

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

    2. 优化源表空间:通过新建无锁变更工单,完成源表空间优化。新建无锁变更工单,请参见通过无锁变更工单实现无锁结构变更

      说明

      在数据归档工单详情页的最下方,单击点击查看源表空间优化SQL,复制源表空间优化的SQL语句。

周期调度

表 1. 调度周期配置表

配置项

说明

调度周期

选择调度任务的周期:

  • 小时:按设定的小时执行任务调度,需要配置定时调度。

  • :按每日一次的频率执行任务调度,需要配置每日调度的具体时间。

  • :以周为周期,每个指定天执行一次任务调度,需要配置指定时间和具体时间。

  • :以月为周期,每个指定天执行一次任务调度,需要配置指定时间和具体时间。

定时调度

提供了2种定时调度的方式:

  • 固定间隔时间调度:

    • 开始时间:执行任务的开始时间。

    • 间隔时间:执行任务的间隔时间,单位为小时。

    • 结束时间:执行任务的结束时间。

    例如,配置开始时间为00:00、间隔时间为6小时、结束时间为20:59,系统将在0点、6点、12点、18点执行任务。

  • 指定时间调度:选择执行任务的目标时间点。

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

指定时间

  • 如果调度周期为周,选择星期几执行任务,支持多选。

  • 如果调度周期为月,选择每月几号执行任务,支持多选。

具体时间

设置执行任务流的具体时间。

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

cron表达式

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

常见问题

Q:如果在数据归档过程中选择了清理源表数据,历史的业务数据还能查询到嘛?

A:可以。数据归档功能定时将大表的数据归档至其他数据库,可通过查询归档的历史实例来查询归档的历史业务数据。

若您还有其他数据归档的问题,请通过钉钉搜索群号19040023327,加入钉钉群进行反馈。

阿里云首页 数据管理 相关技术圈