---
title: "OBDUMPER 概述 | OceanBase 文档中心"
description: OBDUMPER 概述 产品功能 OBDUMPER 主要具备以下功能特性： 支持导出数据库对象定义的语句。 支持将表中的数据按照 CSV, SQL, CUT, ORC，Parquet 格式导出到文件中。 支持指定分区名，导出指定表分区内的数据。 支持指定全局的过滤条件，仅导出满足条件的数据。 支持配置数据预处理规则，…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*eAudSaxX8P0AAAAAAAAAAAAADiGDAQ/original) 导数工具V 4.0.0 企业版

# OBDUMPER 概述

更新时间：2023-06-30 21:27:56

## 产品功能

OBDUMPER 主要具备以下功能特性：

- 支持导出数据库对象定义的语句。
 - 支持将表中的数据按照 CSV, SQL, CUT, ORC，Parquet 格式导出到文件中。
 - 支持指定分区名，导出指定表分区内的数据。
 - 支持指定全局的过滤条件，仅导出满足条件的数据。
 - 支持配置数据预处理规则，导出前对数据进行转换处理。
 - 支持基于 SCN/TIMESTAMP 闪回查询，导出任意事务点或者时间点的数据。
 - 支持将导出数据上传到 OSS 云存储服务。
 - 支持从 OceanBase 的备副本中导出数据。（区别于备集群）
 - 支持将自定义查询的结果集按照 CSV, SQL, CUT, ORC，Parquet 格式导出到文件中。
 - 支持通过读取快照版本以不锁表的方式导出全局一致的数据。

## 注意事项

- 标准的 CSV 格式请参考 [RFC 4180](http://mirrors.nju.edu.cn/rfc/inline-errata/rfc4180.html) 规范，建议导出严格遵从 RFC 4180 规范。
 - 导出大量数据时，请在运行的脚本中修改虚拟机的内存参数。
 - 命令行参数指定的对象名、数据文件名、控制规则文件名要求大小写一致。Oracle 默认大写，MySQL 默认小写。如果需要区分大小写，请将表名放入中括号内（[ ]）。例如：`--table '[test]'` 表示 test 表，文件名格式为 test.group.sequence.suffix； `--table '[TEST]'` 表示 TEST 表，文件名格式为 TEST.group.sequence.suffix。
 - 导出的数据文件的命名规范是 table.group.sequence.suffix。
 - 外键中包含多列，导出时无法保证列的顺序。例如：FOREIGN KEY(c1,c2) REFERENCE (c1,c2)。
 - OceanBase MySQL 1.4.72 不支持导出唯一前缀索引的定义。例如：UNIQUE(c1(10)) 。
 - OceanBase MySQL 1.4.x 不支持导出生成列的定义。例如：GENERATED ALWAYS AS (expr)。
 - OceanBase MySQL 2.2.7x 不支持导出垂直分区。例如：partition by column。
 - OceanBase MySQL 2.2.7x 不支持导出 SYNONYM 对象定义。
 - OceanBase MySQL 2.2.7x 不支持导出索引的存储列。例如：storing(column_list)。
 - OceanBase Oracle 模式下不支持导出 interval day(2) to second(0) 类型的数据。
 - Windows 系统不能使用 ！作为分隔符。数据库的对象名不能包含 \ / : * ? " < > | 等特殊符号，否则数据库对象定义和表数据都无法正常导出。
 - 导出表数据中包含生成列时默认会导出生成列的数据，可以使用 `--exclude-virtual-columns` 选项标识不导出生成列的数据。
 - 使用 `--date-value-format`, `--time-value-format`, `--datetime-value-format`, `--timestamp-value-format`, `--timestamp-tz-value-format`, `--timestamp-ltz-value-format` 选项时，请指定正确的时间格式，否则导出会报错。
 - 导出 CUT 格式文件时，如果字段内容中出现指定的字段分隔符，会对字段中的分隔符字符进行转义。例如：字段内容为 `abc|def`，指定分隔符为 | （`--column-splitter "|"`），则导出的字段内容会转换为 `abc\|def`。
 - `--no-sys` 选项用于标识私有云环境下用户无法提供 sys 租户的密码。导数工具 3.3.0 及之后版本对公共云环境和私有云环境进行了区分，`--public-cloud` 选项仅用于公共云环境，`--no-sys` 选项仅用于私有云环境。
 - OceanBase 3.2.4.0 及之后版本使用 OBDUMPER 前，请将系统配置项 `open_cursors` 设置为较大的值，否则导出可能会出现错误。数据导出结束后，请将该系统配置项重置成初始值。例如：`ALTER SYSTEM SET open_cursors = 65535；`
 - OceanBase 4.0.0.0 及之后版本中表结构发生过任意的变更操作，无法使用 OBDUMPER 导出该表最近一次成功合并的基线数据（即一致性快照数据），用户可以手动发起一次合并以后，再重新导出最近一次成功合并的基线数据。

## 闪回导出

使用 FLASHBACK 导出数据时，需要设置合理的 `undo_retention` 系统变量。

假设 t1 为撤回（Undo）操作的时间点，且 t2 = t1 + 900s，则在 t2 时间点可以查询到 [t1,t2] 区间内的数据。设置 `undo_retention` 后，当前的会话仅对 t1 之后的时间点的数据有效，对 t1 时间点之前的数据无效。该参数默认单位：秒，默认值：0。设置 `undo_retention` 变量语句如下：

```sql
SET global undo_retention=900;

```

- 目前只能在 sys 租户下查询 `v$ob_timestamp_service` 视图获取有效的 OceanBase SCN。
 - 可通过固定时间点查询最近一次版本合并的数据。例如：t1 时间点发起合并，最早可查询到 t1 时间点的数据。
 - 如果所查询的表已被删除且放置在回收站，则需要先将该表从回收站中恢复。
 - 闪回查询受限于转储，如果发生转储且 `undo_retention` 变量未设置，则无法查询。
 - 设置 `undo_retention` 变量后，可查询 t1（转储时间点）+ `undo_retention` 变量设置的时间范围内的数据。

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
