数据归档至RDS MySQL

本文为您介绍如何将MySQLPostgreSQL数据库的数据归档至RDS MySQL

支持归档至RDS MySQL的数据库

  • MySQL类型:RDS MySQLPolarDB MySQLAnalyticDB MySQL 3.0、PolarDB-X 2.0。

    说明

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

  • PostgreSQL类型:RDS PostgreSQLPolarDB PostgreSQL

注意事项

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

    说明

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

  • 若在数据归档过程中选择了自动清理源库表数据,请注意源库表空间的预留情况,避免由于空间不足导致归档过程中出现异常。

  • 源库和目标库的管控模式均为安全协同或稳定变更,才可执行周期归档任务。若您仅需要单次执行归档任务,则不限制数据库的管控模式。

    说明

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

费用说明

DMS数据归档功能不收费。DMS的计费项信息,请参见计费项

示例表数据

本文示例待归档的表为orders_test01,该表中包含业务修改的时间字段gmt_modified。

单击此处可以查看创建示例表及插入数据的SQL语句。

/*创建表*/
CREATE TABLE `orders_test01` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
  `gmt_create` datetime NOT NULL COMMENT '创建时间',
  `gmt_modified` datetime NOT NULL COMMENT '修改时间',
  `buyer_name` varchar(128) NOT NULL COMMENT '买家',
  `seller_name` varchar(128) NOT NULL COMMENT '卖家',
  `item_id` varchar(128) NOT NULL COMMENT '商品id',
  `city` varchar(128) NOT NULL COMMENT '所在城市',
  `zone` varchar(128) DEFAULT NULL COMMENT '购买大区',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1000001 DEFAULT CHARSET=utf8mb4 COMMENT='测试订单表';

/*插入数据*/
INSERT INTO orders_test01(id,gmt_create,gmt_modified,buyer_name,seller_name,item_id,city,zone) VALUES 
(1,'2022-08-11 13:41:11','2022-08-11 13:41:12','小明','A集团','IPhone9','杭州市','浙江省'),
(2,'2022-08-11 13:41:12','2023-08-11 13:41:13','小红','B集团','小米8','杭州市','浙江省'),
(3,'2022-08-11 13:41:13','2023-08-11 13:41:14','小黑','C集团','三星G1','杭州市','浙江省'),
(4,'2022-08-11 13:41:14','2022-08-11 13:41:15','小蓝','D集团','Oppo V3','杭州市','浙江省'),
(5,'2022-10-11 13:41:11','2024-07-12 13:41:12','小明','A集团','IPhone9','杭州市','浙江省'),
(6,'2022-11-11 13:41:12','2025-01-11 13:41:13','小红','B集团','小米8','杭州市','浙江省'),
(7,'2022-12-01 13:41:13','2023-02-11 13:41:14','小黑','C集团','三星G1','杭州市','浙江省'),
(8,'2022-12-01 13:41:13','2022-08-11 13:41:14','小黑','C集团','三星G1','杭州市','浙江省'),
(9,'2022-12-01 13:41:13','2023-08-11 13:41:14','小黑','C集团','三星G1','杭州市','浙江省'),
(10,'2022-12-01 13:41:13','2024-08-11 13:41:14','小黑','C集团','三星G1','杭州市','浙江省'),
(11,'2022-12-01 13:41:13','2024-06-11 13:41:14','小黑','C集团','三星G1','杭州市','浙江省'),
(12,'2022-12-01 13:41:13','2024-08-11 13:41:14','小黑','C集团','三星G1','杭州市','浙江省'),
(13,'2022-12-01 13:41:13','2023-08-11 13:41:14','小黑','C集团','三星G1','杭州市','浙江省'),
(14,'2022-12-11 13:41:14','2024-01-11 13:41:15','小蓝','D集团','Oppo V3','杭州市','浙江省');

数据归档

  1. 登录数据管理DMS 5.0
  2. 单击控制台左上角的2023-01-28_15-57-17.png图标,选择全部功能 > 解决方案 > 数据归档

    说明

    若您使用的是非极简模式的控制台,在顶部菜单栏中,选择解决方案 > 数据归档

  3. 在页面右上角,单击数据归档

  4. 在新建数据归档工单页面配置工单信息,配置完成后,单击提交申请

    本文以RDS MySQL实例间的数据归档举例,将源表orders_test016个月前的数据归档到目标实例的数据库中。

    image

    配置项

    是否必填

    说明

    任务名

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

    归档目标

    选中RDS MySQL

    RDS实例

    搜索并选择目标RDS MySQL实例。

    源数据库

    搜索并选择源数据库。

    归档配置

    选择需要归档的源表,您可单击添加,添加多个源表。如果您仅需要归档部分指定数据,请配置过滤条件。

    例如,归档6个月前的数据,需要先配置一个时间变量6_month_ago,再配置过滤条件gmt_modified <= '${6_month_ago}'

    image

    归档表映射

    映射在目标库中的表,默认与源库中的表名一致。

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

    变量配置

    配置该变量可以在配置归档过滤条件时使用。例如,时间变量为6_month_ago,时间格式为yyyy-MM-dd,偏移量设置为-6月。如果当前日期为2021-8-12,则变量${6_month_ago}的值为2021-02-11。配置时间变量的更多信息,请参见配置时间变量

    后置行为

    • 若您选中清理原表已归档数据(delete-无锁),则在归档完成后,系统将自动执行归档后的源表数据删除操作,可以通过无锁数据变更的DELETE语句完成。但删除源表的同时,源库中会生成存储此次归档数据的备份临时表,请保证源库空间充足,避免空间容量不足引发实例不可用问题。

      清理备份临时表:您可以在确认数据归档完成且数据无误后,通过新建普通数据变更工单,清理源库中的备份临时表。

    • 若您未选中清理原表已归档数据(delete-无锁),则需要在数据归档成功后,手动进行源表数据删除和空间优化。

      1. 清理源表数据:通过新建普通数据变更工单清理数据库中已归档的数据。新建普通数据变更工单,请参见普通数据变更

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

    运行方式

    选择运行方式,当前支持:

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

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

  5. 审批工单。

    工单审批通过后,系统将自动执行数据归档任务,等待归档任务执行完成。若任务执行失败,您可在工单的执行区域,单击操作列下的详情,以查看归档任务日志。若是由于网络或数据库连接失败等偶然发生的问题,您也可以单击断点重试,尝试重新执行。

    说明

    归档后的数据以表形式存储在数据库中。

  6. 可选:归档后查询数据

归档后查询数据

  1. 数据归档任务执行成功后,您可在当前工单详情页的基本信息区域,单击目标库右侧的查看

  2. 进入SQL Console页面后,在左侧表列表区域,选择并双击目标表名,再单击执行,查看已归档的数据。

    说明

    系统会自动根据源数据库的库表名称在归档实例上生成库和表,所以此处的目标数据库名称与源库名称相同。

    归档后的表会新增四列数据,不影响表原始数据的使用:

    • 归档信息(工单号和归档时间)

    • 数据库名称

    • 表名称

    • 实例ID(DMS录入实例时赋予的ID,与实例真实ID对应)

常见问题

Q:在工单配置时未指定目标数据库,源数据库的数据会归档到目标实例的哪个数据库中?

A:在归档过程中,DMS会自动在目标实例中创建一个与源库名称相同的数据库,并将源表数据归档至目标数据库中。