首批通过分布式安全可靠测评,为关键业务系统打造
数据归档
更新时间:2026-04-13 15:30:53
本文档旨在介绍如何通过提交数据归档工单实现归档数据。
背景信息
ODC 支持定时将源数据库中的表数据归档至其它目标数据库中,以解决因线上数据增多影响查询性能与业务运作的问题。
本文档以新建数据归档为例,介绍如何在 ODC 中将同一项目的数据库 odc_test 中的表 employee 和 order 归档到数据库 test2 中。
说明
文中所使用的均为示例数据,您可根据实际情况对数据进行替换。
原理介绍

注意事项
前置条件:
归档链路支持:
OceanBase MySQL 、MySQL 到 OceanBase MySQL。
OceanBase Oracle 、Oracle 到 OceanBase Oracle。
OceanBase MySQL、MySQL 到 MySQL。
OceanBase Oracle 、Oracle 到 Oracle。
PostgreSQL 到 OceanBase MySQL。
OceanBase MySQL、OceanBase Oracle、MySQL、Oracle、PostgreSQL 到对象存储(OSS、COS、OBS、S3)。
以下情况不支持归档:
OceanBase MySQL 数据源若表中包含 XMLTYPE 字段类型,不支持进行归档。
OceanBase Oracle 数据源若表中包含 JSON、XMLTYPE 字段类型,不支持归档。
PostgreSQL 数据源若表定义中包含数组类型、复合类型、枚举类型、几何类型、XML 类型、HSTORE 类型、全文检索,不支持归档。
若归档条件中包含 LIMIT 语句,不支持归档。
若表中包含外键,不支持归档。
支持自动建表链路
- OceanBase Oracle 到 OceanBase Oracle。
- OceanBase MySQL 到 OceanBase MySQL。
- MySQL 到 MySQL(MySQL 5.7 之前的版本除外)。
支持表结构同步链路
- OceanBase MySQL 到 OceanBase MySQL。
新建数据归档
在 SQL 窗口中,编辑 SQL 语句以创建表 employee 和 order。
CREATE TABLE `employee` ( `emp_no` int(120) NOT NULL COMMENT 'employee number', `birthday` date DEFAULT NULL COMMENT 'employee birthday', `name` varchar(120) DEFAULT NULL COMMENT 'employee name', `time` date NOT NULL COMMENT 'time' COMMENT 'create time', PRIMARY KEY (`time`) ) partition by range columns(time) ( partition p2023_01 values less than ('2023-01-01'), partition p2023_02 values less than ('2023-02-01') ); CREATE TABLE `order` ( `time` date NOT NULL, `parti_key` int(11), `name` varchar(120) DEFAULT NULL, PRIMARY KEY (`time`, parti_key) ) partition by range columns(time, parti_key) (partition p2023_01 values less than ('2023-01-01', 20230101), partition p2023_02 values less than ('2023-02-01', 20230201));在数据库列表中右键数据库名称,选择 定时任务 > 数据归档,打开新建数据归档页面。您也可以通过左侧导航栏 工单 > 数据归档 > 新建数据归档 进行该操作。

在 新建数据归档 页面中,输入以下信息。

信息项 说明 源端数据库 选择表所属的数据库。 说明
ODC V4.2.2 及之后的版本支持选择 MySQL 数据库,以将 MySQL 中的数据归档到 OceanBase 数据库中。
目标数据库 选择表归档的数据库。 说明
ODC V4.2.2 及之后的版本支持选择 MySQL 数据库,以将 OceanBase 中的数据归档到 MySQL 数据库中。
归档范围 - 部分归档:通过过滤条件归档源端数据库中部分表。
- 可使用常量或者引用变量配置中定义的变量来配置过滤条件。例如:
time<'${create_time}',其中create_time为变量配置中的变量名,time为归档表中的字段。说明
在过滤条件设置中可以进行关联表条件的配置。
- 勾选 指定分区,支持根据指定的分区归档数据。
- 单击 +添加,支持添加一个归档表,将该表归档到目标数据库中。
- 单击 +批量添加,支持批量添加多个归档表,同时将多个表归档到目标库中。
- 可使用常量或者引用变量配置中定义的变量来配置过滤条件。例如:
- 整库归档:归档源端数据库中所有表。
自定义变量 可选项。通过定义变量和设置时间偏移量筛选表中符合条件的行进行归档。 执行方式 选择 立即执行 / 定时执行 / 周期执行 设置任务执行方式。 任务设置 - 清理源端已归档数据:勾选后根据设置条件进行源端数据清理,默认立即清理且不做备份;清理任务完成后支持回滚。
- 指定任务时长:任务启动指定时长后,若未完成则会暂停调度,等待下一次调度。
- 开启目标表结构同步:任务调度前进行一次表结构比对,若源端和目标端表结构不一致,将跳过该表。
- 插入策略:执行数据归档时,忽略重复数据/更新重复数据。
- 搜索策略:支持全表扫描和条件匹配。
- 限流策略:配置行限流和数据大小限流。
描述 可在描述文本框中输入不超过 200 个字符的描述信息。 - 部分归档:通过过滤条件归档源端数据库中部分表。
单击 新建 后,预览归档 SQL 语句并单击 确定,完成新建数据归档。

任务生成后可以在 工单 > 数据归档 列表中查看/删除任务信息。

查看数据归档任务
任务信息
在 工单 的数据归档列表中,单击操作列中的 查看 按钮。

在弹出的任务详情面板中,单击 任务信息 页签查看任务类型、源数据库、目标数据库、变量配置、归档范围和执行方式等信息。

单击右下角的 再次发起,ODC 会将创建的数据归档信息复制到 新建数据归档 面板中,以快速创建数据归档任务。
执行记录
在任务详情面板中,单击 执行记录 页签查看任务状态和执行详情等操作。

操作记录
在任务详情面板中,单击 操作记录 页签查看任务的审批状态和变更记录。
