数据归档至用户OSS

本文为您介绍如何将数据归档用户OSS(您开通的阿里云OSS服务),以及恢复已归档数据至源库。

前提条件

  • 源数据库类型如下:

    • MySQL类型:RDS MySQLPolarDB MySQL版AnalyticDB MySQL 3.0

    • PostgreSQL类型:RDS PostgreSQLPolarDB PostgreSQL版

    • MongoDB3.6版本及以上。

    • PolarDB-X 2.0。

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

    • 目前MongoDB作为源库进行数据归档正在公测中。

  • 源和目标数据库的管控模式均为稳定变更或安全协同。

    说明

    若实例的管控模式均为稳定变更,在进行周期归档前,建议您为实例开启安全托管或变更管控模式为安全协同,以免由于实例登录失效导致任务执行失败。具体操作,请参见开启安全托管变更管控模式

  • 已开通并购买标准存储或低频访问类型的用户OSS。具体操作,请参见开通OSS服务

  • 用户OSS需要录入DMS。具体操作,请参见云数据库录入

    重要
    • 请录入用户OSS至DMS时使用公网地址。若使用的内网地址,则无法进行数据归档。若您有任何疑问,请使用钉钉搜索钉钉群号19040023327,加入钉钉群反馈。

    • 录入OSS前,请您准备好您当前阿里云账号下创建的AccessKey IDAccessKey Secret,以成功完成登录验证。获取AccessKey操作,请参见获取AccessKey

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

    说明

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

注意事项

如果待归档的源表中存在三个列联合主键(即三个相互关联的列共同构成该表的主键)或三个及以上的唯一键,可能会出现归档失败的情况。建议您在归档前对拥有三个列联合主键的源表进行充分测试,或者考虑使用DBS备份等其他归档方式。

数据归档

  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语句。

  7. 查询归档至用户OSS的数据

恢复已归档数据至源库

费用说明

该功能免费使用。

使用限制

  • 恢复到源库的任务每次只能恢复一个,必须等待当前恢复完成后,才能执行下一个任务。

  • 仅源数据库类型为RDS MySQLPolarDB MySQL版AnalyticDB MySQL 3.0可使用此功能。

操作步骤

  1. 进入数据归档工单列表页面,视图选择工单视图

  2. 单击目标工单视图行操作列下的详情

  3. 数据归档工单列表页的执行区域,单击操作列下的恢复到源库

  4. 在对话框中,单击确认

    此时归档的任务下会增加一个恢复的任务。系统自动执行此任务,您需要等待任务状态从正在执行变为执行成功,此过程耗时长短与您恢复的数据量有关。

    重要

    执行归档数据恢复到源库操作后,系统会自动在源库中创建临时表,可能会造成源库空间不足,请您谨慎操作。

  5. 查看已恢复的数据。

    1. 在该工单详情页的基本信息区域,单击变更库名称,在弹出的提示框上单击查询

    2. 双击目标表名称,单击执行

      您可在SQL Console页面下方的执行结果区域,查看已恢复的数据。