---
title: "快速入门 - 导数工具 V4.2.6 | OceanBase 文档中心"
description: 快速入门 本文档旨在指导用户如何快速使用导数工具。 步骤 1：下载软件 说明 导数工具 4.2.1 及之后的版本不再区分企业版和社区版。用户可以从社区下载中心获取软件包。 下载 最新版本的导数工具软件包并解压： $ unzip ob-loader-dumper-4.2.x-RELEASE.zip $ cd ob-lo…
---
切换语言

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

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

# 快速入门

更新时间：2026-04-13 14:00:52

[编辑](https://github.com/oceanbase/obdumper-loader-doc/edit/V4.2.6/zh-CN/600.OBDUMPER/100.obdumper-quick-start.md)  

本文档旨在指导用户如何快速使用导数工具。

## 步骤 1：下载软件

#### 说明

导数工具 4.2.1 及之后的版本不再区分企业版和社区版。用户可以从社区下载中心获取软件包。

[下载](https://www.oceanbase.com/softwarecenter?_gl=1*nejld*_ga*NDQ5MTc4NTEuMTY3NTIzOTgyOA..*_ga_T35KTM57DZ*MTY4Mzg1ODgwNC44MC4xLjE2ODM4NTg4NTYuOC4wLjA.)最新版本的导数工具软件包并解压：

```shell
$ unzip ob-loader-dumper-4.2.x-RELEASE.zip
$ cd ob-loader-dumper-4.2.x-RELEASE

```

## 步骤 2：配置运行环境

#### 说明

用户的本地环境中必须安装 Java 8+ 并配置 `JAVA_HOME` 环境变量。强烈建议安装 JDK 1.8.0_3xx 及之后的版本。环境配置详情请参考 [准备环境](https://www.oceanbase.com/docs/common-oceanbase-dumper-loader-1000000000246583)。

本步骤旨在修改 JVM 参数。

JVM 内存太小可能会影响导入导出的性能，甚至影响导入导出功能的稳定性。例如：Full GC 或者 GC Crash。强烈建议将 JVM 内存 (默认：-Xms4G -Xmx4G) 修改为机器可用内存的 60%。擅长 Java 性能调优的用户可以按需调整 `JAVA_OPTS` 选项中的 JVM 参数。

1. 编辑 `JAVA_OPTS` 选项所在的文件。

      - Linux 操作系统下，编辑 `{ob-loader-dumper}/bin/` 目录下的 `obloader` 和 `obdumper` 脚本。
      - Windows 操作系统下，编辑 `{ob-loader-dumper}/bin/windows/` 目录下的 `obloader.bat` 和 `obdumper.bat` 脚本。
 2. 修改 JVM 参数。

   ```shell
   JAVA_OPTS="$JAVA_OPTS -server -Xms4G -Xmx4G -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=128M -Xss352K"
   JAVA_OPTS="$JAVA_OPTS -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -Xnoclassgc -XX:+DisableExplicitGC

   ```

## 步骤 3：准备数据

#### 注意

使用 OBDUMPER 导出功能时，用户无需准备任何数据，可以直接跳转到**步骤 4**。

使用 OBLOADER 导入功能时，用户可以使用已有的数据文件，或者使用 TPC-H 工具临时生成数据文件。导入的文件内容格式需要符合规范，请参考[《准备好您的数据了吗？》](https://open.oceanbase.com/blog/1100272)识别文件中的数据格式。

## 步骤 4：创建数据库

#### 注意

使用 OBDUMPER 导出功能时，用户需要在创建数据库以后，继续创建表并插入数据。

1. 使用 OCP 管控平台或者 OBD 命令行工具搭建 OceanBase 集群。
 2. 创建测试数据库。
 3. 创建测试表并插入数据。（导入时可选）

## 步骤 5：查看配置文件

导数工具配置文件包括连接配置文件（`session.config.json`）和运行日志文件（`log4j2.xml`）。

### 连接配置文件

连接配置文件（`{ob-loader-dumper}/conf/session.config.json`）用于配置数据库连接参数。连接数据库时，导数工具会通过连接配置文件中的 JDBC 参数构建 JDBC URL，并在新建的连接下按顺序执行初始化 SQL 语句。您可以在连接配置文件中修改 JDBC 参数和初始化 SQL 语句。连接配置的默认值适用于大多数场景，但在某些特殊情况下，您可能需要手动修改此类参数以适应不同的 OBServer 版本和 ETL 场景。连接配置文件详情请参见 [连接配置](https://www.oceanbase.com/docs/common-oceanbase-dumper-loader-1000000000246577)。

### 日志配置文件

日志配置文件（`{ob-loader-dumper}/conf/log4j2.xml`）用于查看日志输出路径/日志格式，以及[问题自查](https://www.oceanbase.com/docs/common-oceanbase-dumper-loader-1000000000246571)时调整日志级别。具体配置方法请参见 [如何自定义导出作业日志文件名](https://www.oceanbase.com/docs/common-oceanbase-dumper-loader-1000000000246580)。

## 步骤 6：导出数据

```shell
./obdumper -h 'IP地址' -P'端口' -u'用户' -t'租户' -c'集群' -p'密码' -D'库名' --table '表名' --csv -f '文件路径' --sys-password '系统租户密码' --skip-check-dir

```

#### 说明

本示例仅导出数据不包含模式。更多详情请参考 [OBDUMPER 命令行选项](https://www.oceanbase.com/docs/common-oceanbase-dumper-loader-1000000000246578)。

下表为示例中使用的数据库信息：

| **数据库信息** | **示例值** |
| --- | --- |
| 集群名 | cluster_a |
| OceanBase DataBase Proxy (ODP) 主机地址 | xx.x.x.x |
| OceanBase DataBase Proxy (ODP) 端口号 | 2883 |
| 集群的租户名 | mysql |
| sys 租户下 root/proxyro 用户名 | **u*** |
| sys 租户下 root/proxyro 用户的密码 | ****** |
| 业务租户下的用户账号（要求读写权限） | test |
| 业务租户下的用户密码 | ****** |
| Schema 名称 | USERA |

### 导出 DDL 定义文件

**场景描述**：将 Schema USERA 中所有已支持的对象定义语句导出到 `/output` 目录中（OceanBase 4.0.0 之前的版本要求提供 sys 租户的密码）。

**示例语句**：

```shell
$./obdumper -h xx.x.x.x -P 2883 -u test -p ****** --sys-user **u*** --sys-password ****** -c cluster_a -t mysql -D USERA --ddl --all -f /output

```

#### 说明

`--sys-user` 选项用于连接 sys 租户下拥有特定权限的用户。导出时如果未指定 `--sys-user` 选项，默认指定的是 `--sys-user root`。

**任务结果示例**：

```shell
...
All Dump Tasks Finished:
---------------------------------------------------
|  No.#  | Type   | Name     | Count   | Status   |  
---------------------------------------------------
|  1     | TABLE  | table    | 1->1    | SUCCESS  |
---------------------------------------------------

Total Count: 4          End Time: 2023-04-28 15:32:49
...

```

**导出内容示例**：

在 `{ob-loader-dumper}/output/data/chz/TABLE` 目录下查看 `table-schema.sql` 表。

```shell
[xxx@xxx /ob-loader-dumper-4.2.0-RELEASE/bin]
$cat /home/admin/obloaderobdumper/output/data/chz/TABLE/table-schema.sql
create table if not exists `table` (
        `id` int(11) comment 'table id',
        `name` varchar(120) comment 'table name',
        `type` varchar(128) not null default 'COLLABORATION' comment 'organization type, enum values: COLLABORATION, PRIVACY'
)
default charset=gbk
default collate=gbk_chinese_ci;

```

### 导出 CSV 数据文件

**场景描述**：将 Schema USERA 中所有表中的数据按照 CSV 格式导出到 `/output` 目录中（OceanBase 4.0.0 之前的版本要求提供 sys 租户的密码）。CSV 数据文件（后缀名 .csv）请参考 [RFC 4180](http://mirrors.nju.edu.cn/rfc/inline-errata/rfc4180.html) 规范，CSV 数据文件以纯文本形式存储，可通过文本编辑器或者 Excel 等工具直接打开。

**示例语句**：

```shell
$./obdumper -h xx.x.x.x -P 2883 -u test -p ****** --sys-user **u*** --sys-password ****** -c cluster_a -t mysql -D USERA --csv --table '*' -f /output

```

```shell
...
All Dump Tasks Finished:
----------------------------------------------------
|  No.#  | Type   | Name       | Count  | Status   |
----------------------------------------------------
|  1     | TABLE  | table      | 4      | SUCCESS  |
----------------------------------------------------

```

在 `{ob-loader-dumper}/output/data/chz/TABLE` 目录下查看 `table.1.0.csv` 表。

```shell
[xxx@xxx /ob-loader-dumper-4.2.0-RELEASE/bin]
$cat table.1.0.csv
'id','name','type'
1001,'xiaoning','COLLABORATION'
1002,'xiaohong','COLLABORATION'
1001,'xiaoning','COLLABORATION'
1002,'xiaohong','COLLABORATION'

```

### 导出 SQL 数据文件

**场景描述**：将 Schema USERA 中所有表中的数据按照 SQL 格式导出到 `/output` 目录中（OceanBase 4.0.0 之前的版本要求提供 sys 租户的密码）。SQL 数据文件（后缀名 .sql）存储的是 Insert SQL 语句，可通过文本编辑器或者 SQL 编辑器等工具直接打开。

**示例语句**：

```shell
$./obdumper -h xx.x.x.x -P 2883 -u test -p ****** --sys-user **u*** --sys-password ****** -c cluster_a -t mysql -D USERA --sql --table '*' -f /output

```

```

在 `{ob-loader-dumper}/output/data/chz/TABLE` 目录下查看 `table.1.0.sql` 表。

```shell
[xxx@xxx /ob-loader-dumper-4.2.0-RELEASE/bin]
$cat table.1.0.sql
INSERT INTO `chz`.`table` (`id`,`name`,`type`) VALUES (1001,'xiaoning','COLLABORATION');
INSERT INTO `chz`.`table` (`id`,`name`,`type`) VALUES (1002,'xiaohong','COLLABORATION');
INSERT INTO `chz`.`table` (`id`,`name`,`type`) VALUES (1001,'xiaoning','COLLABORATION');
INSERT INTO `chz`.`table` (`id`,`name`,`type`) VALUES (1002,'xiaohong','COLLABORATION');

```

### 导出 CUT 数据文件

**场景描述**： 将 Schema USERA 中所有表中的数据按照 CUT 格式导出到 `/output` 目录中（OceanBase 4.0.0 之前的版本要求提供 sys 租户的密码）。同时指定导出数据的列分隔字符串为 `|@|`。CUT 数据文件（后缀名 .dat）中的数据是以单个字符或者字符串分隔，可通过文本编辑器等工具直接打开。

**示例语句**：

```shell
$./obdumper -h xx.x.x.x -P 2883 -u test -p ****** --sys-user **u*** --sys-password ****** -c cluster_a -t mysql -D USERA --table '*' -f /output --cut --column-splitter '|@|' --trail-delimiter

```

```

在 `{ob-loader-dumper}/output/data/chz/TABLE` 目录下查看 `table.1.0.dat` 表。

```shell
[xxx@xxx /ob-loader-dumper-4.2.0-RELEASE/bin]
$cat table.1.0.dat
1001|xiaoning|COLLABORATION|
1002|xiaohong|COLLABORATION|
1001|xiaoning|COLLABORATION|
1002|xiaohong|COLLABORATION|

```

### 导出数据文件到 Amazon S3

**场景描述**： 将 Schema USERA 中所有表中的数据按照 CSV 格式导出到 Amazon S3 云存储空间中。

**示例语句**：

```shell
$./obdumper -h xx.x.x.x -P 2883 -u test -p ****** --sys-user **u*** --sys-password ****** -c cluster_a -t mysql -D USERA --csv --table '*' --skip-check-dir --upload-behavior 'FAST' -f /output --storage-uri 's3://obloaderdumper/obdumper?region=cn-north-1&access-key=******&secret-key=******'

```

`--storage-uri 's3://obloaderdumper/obdumper?region=cn-north-1&access-key=******&secret-key=******'` 选项为存储的统一资源定位符，其组成部分包括：

| **组成部分** | **说明** |
| --- | --- |
| `s3` | [S3](https://docs.aws.amazon.com/zh_cn/s3/index.html) 云存储类型。 |
| `obloaderdumper` | S3 存储空间的名称。 |
| `/obdumper` | S3 存储空间的资源路径。 |
| `region=cn-north-1&access-key=******&secret-key=******` | 指定请求所需的参数。   - `region=cn-north-1`：S3 bucket 所在的物理位置。 - `access-key=******`：S3 的访问账号。 - `secret-key=******`：S3 的访问密钥。 |

```shell
...
All Dump Tasks Finished:

----------------------------------------------------
|  No.#  | Type   | Name       | Count  | Status   |
----------------------------------------------------
|  1     | TABLE  | table      | 3      | SUCCESS  |
----------------------------------------------------

Total Count: 3          End Time: 2023-05-10 18:46:26
...

```

#### 说明

`--storage-uri` 必须与 `-f` 选项搭配使用。  
OBDUMPER 首先需要导出 OceanBase 数据库对象定义和表数据到指定的 `-f` 路径下，再将其上传到 `--storage-uri` 指定的 S3 存储空间中，上传完成后，`-f` 路径下的数据会被自动删除。

### 导出数据文件到 Aliyun OSS

**场景描述**： 将 Schema USERA 中所有表中的数据按照 CSV 格式导出到 Aliyun OSS 云存储空间中。

**示例语句**：

```shell
$./obdumper -h xx.x.x.x -P 2883 -u test -p ****** --sys-user **u*** --sys-password ****** -c cluster_a -t mysql -D USERA --csv --table '*' --skip-check-dir --upload-behavior 'FAST' -f /output --storage-uri 'oss://antsys-oceanbasebackup/backup_obloader_obdumper/obdumper?endpoint=https://cn-hangzhou-alipay-b.oss-cdn.aliyun-inc.com&access-key=******&secret-key=******'

```

`--storage-uri 'oss://antsys-oceanbasebackup/backup_obloader_obdumper/obdumper?endpoint=https://cn-hangzhou-alipay-b.oss-cdn.aliyun-inc.com&access-key=******&secret-key=******'` 选项为存储的统一资源定位符，其组成部分包括：

| **组成部分** | **说明** |
| --- | --- |
| `oss` | OSS 云存储类型。 |
| `antsys-oceanbasebackup` | OSS 存储空间的名称。 |
| `/backup_obloader_obdumper/obdumper` | OSS 存储空间的资源路径。 |
| `endpoint=https://cn-hangzhou-alipay-b.oss-cdn.aliyun-inc.com&access-key=******&secret-key=******` | 指定请求所需的参数。   - `endpoint=https://cn-hangzhou-alipay-b.oss-cdn.aliyun-inc.com`：OSS host 所在地域的 Endpoint。 - `access-key=******`：OSS 的访问账号。 - `secret-key=******`：OSS 的访问密钥。 |

Total Count: 3          End Time: 2023-05-10 18:40:48
...

```

#### 说明

`--storage-uri` 必须与 `-f` 选项搭配使用。  
OBDUMPER 首先需要导出 OceanBase 数据库对象定义和表数据到指定的 `-f` 路径下，再将其上传到 `--storage-uri` 指定的 OSS 存储空间中，上传完成后，`-f` 路径下的数据会被自动删除。

### 自定义导出文件名

**场景描述**： 将 Schema USERA 中 table 表的数据按照 CSV 格式导出到 `/output` 目录中（OceanBase 4.0.0 之前的版本要求提供 sys 租户的密码）。同时指定导出的文件名称为 filetest。

**示例语句**：

```shell
$./obdumper -h xx.x.x.x -P 2883 -u test -p ****** --sys-user **u*** --sys-password ****** -c cluster_a -t mysql -D USERA --csv --table 'table' --file-name 'filetest.txt' -f /output

```

```

在 `{ob-loader-dumper}/output/data/chz/TABLE` 目录下查看 `filetest.txt` 表。

```shell
[xxx@xxx /ob-loader-dumper-4.2.0-RELEASE/bin]
$cat filetest.txt
1001,'xiaoning','COLLABORATION'
1002,'xiaohong','COLLABORATION'
1001,'xiaoning','COLLABORATION'
1002,'xiaohong','COLLABORATION'

```

### 导出数据时使用控制文件

**场景描述**： 将 Schema USERA 中 table 表的数据按照 CSV 格式导出到 `/output` 目录中（OceanBase 4.0.0 之前的版本要求提供 sys 租户的密码）。同时指定控制文件的路径为 `/output`，为导出的数据进行预处理。

**示例语句**：

```shell
$./obdumper -h xx.x.x.x -P 2883 -u test -p ****** --sys-user **u*** --sys-password ****** -c cluster_a -t mysql -D USERA --table'table' -f /output --csv --ctl-path /output

```

#### 说明

要求数据库中定义的表名与其对应的控制文件名大小写一致，否则 OBLOADER 无法识别控制文件。控制文件的定义规则可参考 [预处理函数](https://www.oceanbase.com/docs/common-oceanbase-dumper-loader-1000000000246599)。

### 导出表中指定列的数据

**场景描述**： 将 Schema USERA 中 table 表的数据按照 CSV 格式导出到 `/output` 目录中（OceanBase 4.0.0 之前的版本要求提供 sys 租户的密码）。同时指定 `--exclude-column-names` 选项忽略表中不需要被导出的列。

**示例语句**：

```shell
$./obdumper -h xx.x.x.x -P 2883 -u test -p ****** --sys-user **u*** --sys-password ****** -c cluster_a -t mysql -D USERA -f /output --table'table' --csv --exclude-column-names 'deptno'

```

### 导出自定义查询结果集

**场景描述**： 将 `--query-sql` 选项指定的查询语句执行的结果集按照 CSV 格式导出到 `/output` 目录中（OceanBase 4.0.0 之前的版本要求提供 sys 租户的密码）。

**示例语句**：

```shell
$./obdumper -h xx.x.x.x -P 2883 -u test -p ****** --sys-user **u*** --sys-password ****** -c cluster_a -t mysql -D USERA -f /output --csv --query-sql 'select deptno,dname from dept where deptno<3000'

```

#### 说明

用户需要保证 SQL 查询语句的语法正确性以及查询性能。

### 云数据库 OceanBase 导出模式和数据

**场景描述**：***用户无法提供 sys 租户密码时***，将云数据库 OceanBase Schema USERA 中所有已定义的数据库对象和表数据导出到 `/output` 目录中。

**示例语句**：

```shell
$./obdumper -h xx.x.x.x -P 2883 -u test -p ****** -D USERA --ddl --csv --public-cloud --all -f /output

```

### OceanBase 数据库导出模式和数据

**场景描述**：***用户无法提供 sys 租户密码时***，将 OceanBase 数据库 Schema USERA 中所有已定义的数据库对象和表数据导出到 `/output` 目录中。

**示例语句**：

```shell
$./obdumper -h xx.x.x.x -P 2883 -u test -p ****** -c cluster_a -t mysql -D USERA --ddl --csv --no-sys --all -f /output

```

#### 注意

在云数据库 OceanBase 或者 OceanBase 数据库环境中无法提供 sys 租户密码时，导出数据库对象定义功能可能存在缺陷。例如：MySQL 租户无法导出序列定义；OceanBase 2.2.70 之前的版本，无法导出表组定义和唯一索引的分区信息；OceanBase Oracle 2.2.30 及之前的版本，无法导出索引定义；OceanBase Oracle 2.2.70 (含) ~ 4.0.0.0 的版本，无法导出分区表的唯一索引定义。

## 步骤 7：恭喜！

您已成功完成导数工具的快速使用！！！

如需了解更多信息，请参考以下步骤进行学习：

- 阅读产品简介，了解导数工具的原理，主要功能，及与其它工具的差异。想要更详细地理解导数工具，请参考官方文档[《OceanBase 导数工具》](https://www.oceanbase.com/docs/oceanbase-dumper-loader-cn)。
 - 欢迎加入 [OceanBase 社区](https://open.oceanbase.com/?_gl=1*dqbsdn*_ga*NDQ5MTc4NTEuMTY3NTIzOTgyOA..*_ga_T35KTM57DZ*MTY4Mzg1ODgwNC44MC4xLjE2ODM4NTg4ODUuNjAuMC4w)，我们一起和 OceanBase 的研发人员在线上讨论导入导出的问题、需求，以及对于未来的规划。

 上一篇 下一篇 ![有帮助](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) 咨询热线
