---
title: "命令行选项 - 导数工具 V4.3.5 | OceanBase 文档中心"
description: 命令行选项 OBDUMPER 通过命令行选项指定导出所需要的信息，更多选项描述和使用示例，请参考 选项列表 与 使用示例 。 选项介绍 选项风格 OBDUMPER 参数设计采用 Unix 和 GNU 两种风格方式。 Unix 风格的参数前加单破折线，选项为单字符，例如： ps -e ；该风格的选项和参数之间可以不加空…
---
切换语言

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

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

# 命令行选项

更新时间：2026-04-07 14:35:46

[编辑](https://github.com/oceanbase/obdumper-loader-doc/edit/V4.3.5/zh-CN/600.OBDUMPER/200.obdumper-command-line-options.md)  

OBDUMPER 通过命令行选项指定导出所需要的信息，更多选项描述和使用示例，请参考 **选项列表** 与 [使用示例](https://www.oceanbase.com/docs/common-oceanbase-dumper-loader-1000000004997300)。

## 选项介绍

### 选项风格

OBDUMPER 参数设计采用 Unix 和 GNU 两种风格方式。

- Unix 风格的参数前加单破折线，选项为单字符，例如：`ps -e`；该风格的选项和参数之间可以不加空格，例如：`-p******`。
 - GNU 风格的长参数前加双破折线，选项为单字符或者字符串，例如：`ps --version`；要求选项和参数之间有空格，例如：`--table 'test'`。

### 选项分类

OBDUMPER 命令行选项分为基础选项和高级选项。

- 基础选项：OBDUMPER 常用选项，包括连接选项（连接数据库模式）、功能选项（文件格式、数据库对象类型、存储路径）和其他选项。
 - 高级选项：包括功能选项（时间戳格式、表/列黑白名单筛选、错误处理）和性能选项。

### 必选选项

使用 OBDUMPER 导出数据时，需要至少包含连接选项、格式选项、数据库对象类型选项、存储路径选项。

示例语句：

```shell
$./obdumper -h xx.x.x.x -P 2883 -u test@mysql#cluster_a -p ****** -D USERA --csv --table '*' -f /output

```

其中，`-h`、`-P`、`-u`、`-p` 和 `-D` 为连接选项；`--csv` 为文件格式选项；`--table` 为数据库对象类型选项；`-f` 为存储路径。

## 基础选项

### 连接选项

OBDUMPER 命令需连接 OceanBase 数据库才可读写数据。用户指定以下选项可以连接到 OceanBase 数据库。

#### 导出类型

| **导出类型** | **相关命令行选项** |
| --- | --- |
| OceanBase 数据库 | - -h ***host_name***, --host= ***host_name***     用于连接 OceanBase 物理节点的主机地址。如果主机地址为 IPv6 地址，请使用中括号（[]）包裹。例如，`[2001:0db8:85a3:xxxx:xxxx:8a2e:0370:7334]`。     #### 说明      OBDUMPER V4.2.6 及之后的版本支持填入多个 IP 或者域名，以逗号分隔。 - -P ***port_num***, --port= ***port_num***     用于连接 OceanBase 物理节点的主机端口。     #### 说明       - OBDUMPER V4.2.6 及之后的版本支持填入一个或者多个端口，以逗号分隔。     - 仅填入一个端口时，表示所有 Host 的端口相同。 - -c ***cluster_name***, --cluster= ***cluster_name***     用于连接给定的 OceanBase 集群。命令行未指定该选项时，表示当前连接的是数据库的物理节点，相关的选项（例如：`-h`/`-P`）指定的是数据库物理节点的主机地址和端口；命令行指定该选项时，表示当前连接的是 ODP 服务，相关的选项（例如：`-h`/`-P`）指定的是 ODP 服务的主机地址和端口。 - -u,--user      用于连接目标数据库的用户名、[租户名](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000639712)和集群名。格式：`<user>@<tenant>#<cluster>`，示例：`-u user@tenant#cluster`。      - 如果指定的用户名错误，则 OBDUMPER 无法连接到数据库。     - 命令行未指定集群名时，表示当前连接的是数据库的物理节点，相关的选项（例如：`-h`/`-P`）指定的是数据库物理节点的主机地址和端口；命令行指定集群名时，表示当前连接的是 ODP 服务，相关的选项（例如：`-h`/`-P`）指定的是 ODP 服务的主机地址和端口。 - -D database_name, --database= database_name     该选项表示从指定的数据库中导出数据库对象定义和表数据。 - -p '***password***', --password='***password***'      用于连接 OceanBase 数据库的账号密码。命令行未指定该选项时，表示当前的数据库账户未设置密码；命令行指定该选项时，需要在参数值前后加上单引号。例如：`-p'******'`。     #### 说明      在 Windows 操作系统上，需在参数值前后加上双引号。其他选项的参数值是字符串时也同样需要加双引号。 - --sys-user ***sys_username***     用于连接 sys 租户下具备特定权限的用户。例如：root 用户或者 proxyro 用户。OBDUMPER 需要 sys 租户下的特殊用户查询系统表中的元数据。默认值：root。OceanBase 数据库 V4.0.0 及之后的版本无需指定该选项。 - --sys-password '***sys_password***'     用于连接 sys 租户下具备特定权限的账户密码。与 `--sys-user` 选项搭配使用，默认情况下表示 sys 租户下 root 用户密码为空。命令行指定该选项时，需要在参数值前后加上单引号，例如：`--sys-password '******'`。OceanBase 数据库 V4.0.0 及之后的版本无需指定该选项。     #### 说明      如果未指定该选项，OBDUMPER 无法查询系统表中的元数据，导出功能和导出性能可能会受到较大的影响。 - --no-sys     用于标识 OceanBase 数据库环境下用户无法提供 sys 租户的密码，将 OceanBase 数据库部署的 OceanBase 集群中的数据库对象或者表数据导出到文件中。该选项与 `--public-cloud` 选项的区别：使用 `--no-sys` 选项时命令行需要指定租户名连接选项（`-u <user>@<tenant>`），连接 ODP 服务时还需要加上集群选项（`-u <user>@<tenant>#<cluster>`）。在 OceanBase 数据库 V4.0.0 及之前的版本中，如果用户未指定 `--public-cloud` 或者 `--no-sys` 选项，OBDUMPER 必须指定 `--sys-user` 和 `--sys-password` 选项。 |
| 云数据库 OceanBase | --public-cloud   用于标识将云数据库 OceanBase 部署的 OceanBase 集群中的数据库对象或者表数据导出到文件中。如果命令行指定该选项时则无需指定租户名和集群名连接选项（`-u <user>@<tenant>#<cluster>`），同时导出程序默认会打开 `--no-sys` 选项。关于 `--no-sys` 选项请参考对应的选项说明。 |
| ODP (Sharding) 逻辑库 | - -h ***host_name***, --host= ***host_name***     用于连接 ODP 主机地址。如果主机地址为 IPv6 地址，请使用中括号（[]）包裹。例如，`[2001:0db8:85a3:xxxx:xxxx:8a2e:0370:7334]`。 - -P ***port_num***, --port= ***port_num***     用于连接 ODP 主机端口。 - -c ***cluster_name***, --cluster= ***cluster_name***     用于连接给定的 OceanBase 集群。 - --logical-database     用于标识连接 ODP (Sharding) 逻辑库进行导出。命令行中指定 `--logical-database` 选项时，导出的是随机的一个物理分库分表的定义，不可以直接导入到数据库中。用户需要将导出的物理库表结构手动改成逻辑库表结构，才可以导入到数据库中被业务使用。     #### 说明      命令行中指定 `--logical-database` 选项时，导出的是随机的一个物理分库分表的定义，不可以直接导入到数据库中。用户需要将导出的物理库表结构手动改成逻辑库表结构，才可以导入到数据库中被业务使用。 |

### 功能选项

#### 文件格式

| **格式（命令行选项）** | **相关命令行选项** | **适用场景** |
| --- | --- | --- |
| --csv     用于标识导出 CSV 格式的数据文件。 | - --skip-header     取值为 BOOLEAN 类型，用于标识是否忽略 CSV 格式文件头，即第一行字段头数据。 - --column-delimiter '***column_delimiter_char***'     用于指定列定界符，默认值为英文单引号（'）。该选项与 `--column-quote` 同义，不支持两者同时指定。     #### 说明      `--column-delimiter` 为过时参数，可能在之后版本删除，推荐您使用 `--column-quote`。 - --column-quote '***column_quote_char***'     用于指定列包围符，默认值为英文单引号（'）。该选项与 `--column-delimiter` 同义，不支持两者同时指定。 - --line-separator '***line_separator_string***'     指定行分隔字符串。 - --escape-character '***escape_char***'     用于指定转义字符。 - --column-separator '***column_separator_char***'      用于 CSV 格式指定列分隔符。 - --with-trim     用于删除数据左右的空格字符。 - --character-set '***character_set_string***'     用于指定创建数据库连接时的字符集。 - --null-string '***null_replacer_string***'     用于标识当前列值为 NULL 时，该列值会替换为指定的字符串。例如，数据库中的列值为 NULL，如果使用命令 `--null-string test`，则该列会被导出为 test。 - --file-encoding '***encode_name***'     用于表示导出数据文件时使用的文件编码，该编码不是数据库编码。 - --flashback-scn '***scn_number***'      用于导出 SCN 事务点之后的数据。 | 适用于几乎所有的业务场景。 |
| --cut     用于标识导出 CUT 格式的数据文件。 | - --column-splitter '***split_string***'     用于 CUT 格式指定列分隔字符串。 - --trail-delimiter     用于标识导出的数据行是否以分隔符结尾。 - --line-separator '***line_separator_string***'     指定行分隔字符串。 - --with-trim     用于删除数据左右的空格字符。 - --character-set '***character_set_string***'     用于指定创建数据库连接时的字符集。 - --null-string '***null_replacer_string***'     用于标识当前列值为 NULL 时，该列值会替换为指定的字符串。例如，数据库中的列值为 NULL，如果使用命令 `--null-string test`，则该列会被导出为 test。 - --escape-character '***escape_char***'     用于指定转义字符。 - --file-encoding '***encode_name***'     用于表示导出数据文件时使用的文件编码，该编码不是数据库编码。 - --flashback-scn '***scn_number***'      用于导出 SCN 事务点之后的数据。 | 参考 CSV。一般建议导出为 CSV 格式。 |
| POS（--cut）   POS 格式即 Fixed-Length （固定长度）格式。与 CSV 格式不同，它使用固定长度的字段来存储数据，每个字段的长度是预定义的。   #### 注意    其命令行选项仍为 CUT。在使用时，需要设置列分隔符（--column-splitter）为空字符，并通过控制文件来设置列的长度。 | - --column-splitter '***split_string***'     用于 CUT 格式指定列分隔字符串。 - --line-separator '***line_separator_string***'     指定行分隔字符串。 - --escape-character '***escape_char***'     用于指定转义字符。 - --file-encoding '***encode_name***'     用于表示导出数据文件时使用的文件编码，该编码不是数据库编码。 - --trail-delimiter     用于标识导出的数据行是否以分隔符结尾。 | 与某些仅支持定长格式的卸数平台进行交互。 |
| --sql   用于标识导出 SQL 格式的数据文件。 | - --line-separator '***line_separator_string***'     指定行分隔字符串。 - --character-set '***character_set_string***'     用于指定创建数据库连接时的字符集。 - --null-string '***null_replacer_string***'     用于标识当前列值为 NULL 时，该列值会替换为指定的字符串。例如，数据库中的列值为 NULL，如果使用命令 `--null-string test`，则该列会被导出为 test。 - --file-encoding '***encode_name***'     用于表示导出数据文件时使用的文件编码，该编码不是数据库编码。 - --flashback-scn '***scn_number***'      用于导出 SCN 事务点之后的数据。 | 适用于几乎所有的业务场景。 |
| --par   用于标识导出 Parquet 格式的数据文件。 | - --character-set '***character_set_string***'     用于指定创建数据库连接时的字符集。 - --file-encoding '***encode_name***'     用于表示导出数据文件时使用的文件编码，该编码不是数据库编码。 - --flashback-scn '***scn_number***'      用于导出 SCN 事务点之后的数据。 | 需要兼顾数据压缩和导出性能的备份场景。   导入导出性能基本等同于 CSV。压缩率较高。   #### 说明    在实验环境下，压缩率的期望值在 20% 左右，数据的分布特征会极大程度地影响压缩率。例如：重复率较高的数据压缩率更高。建议开启并行写入，以达到最佳性能。 |
| --orc   用于标识导出 ORC 格式的数据文件。 | - --character-set '***character_set_string***'     用于指定创建数据库连接时的字符集。 - --file-encoding '***encode_name***'     用于表示导出数据文件时使用的文件编码，该编码不是数据库编码。 - --flashback-scn '***scn_number***'      用于导出 SCN 事务点之后的数据。 | 需要极致数据压缩的场景。   导入导出性能稍差于 CSV，由于第三方组件（Apache ORCWriter）的已知问题，导出时需要的内存可能较高。压缩率一般高于 Parquet。但仍取决于数据分布。建议开启并行写入，以达到最佳性能。 |
| --ddl   用于导出 DDL 文件。 | - --character-set '***character_set_string***'     用于指定创建数据库连接时的字符集。 - --file-encoding '***encode_name***'     用于表示导出数据文件时使用的文件编码，该编码不是数据库编码。 - --drop-object     用于标识导出 DDL 文件时，在数据库对象创建语句前插入 DROP 语句。 - --flashback-scn '***scn_number***'      用于导出 SCN 事务点之后的数据。 | 逻辑备份。 |
| --avro    用于标识导出 Avro 格式的数据文件。 | - --character-set '***character_set_string***'     用于指定创建数据库连接时的字符集。 - --file-encoding '***encode_name***'     用于表示导出数据文件时使用的文件编码，该编码不是数据库编码。 - --flashback-scn '***scn_number***'      用于导出 SCN 事务点之后的数据。 | 多适用于大数据领域，支持 AP 业务离线迁移以及其他场景。 |

#### 说明

命令行选项详情请参见本篇**选项列表**。

#### 压缩导出

导数工具 V4.3.0 及之后版本，支持压缩导出 CSV、CUT、POS 和 SQL 等可读文件格式，您可以通过下述命令行选项进行相关配置。

- --compress

  布尔值，用于标识导出时是否进行压缩。
 - --compression-algo

  字符串，用于指定压缩格式。可选值包括 zstd、zlib、gzip 和 snappy，默认值为 zstd。
 - --compression-level

  整型，用于指定对应压缩格式的压缩等级。各类压缩格式支持的压缩等级如下：

     - zstd 支持 1 ~ 22，默认值为 3。
     - zlib 支持 -1 ~ 9，默认值为 -1。
     - gzip 和 snappy 不支持指定压缩等级。

#### 数据库对象类型

- --all

  用于标识导出所有的数据库对象定义和表数据，是 `--trigger`、`--view` 等数据库对象类型的集合，使用限制等事项以具体的数据库对象类型为准。

     - 该选项与 `--ddl` 搭配使用时，表示导出所有的数据库对象定义。对于 `--trigger` 等仅适用于 OceanBase 数据库 Oracle 兼容模式的数据库对象类型，OceanBase 数据库 MySQL 兼容模式设置 `--all --ddl` 后，同样无法导出 trigger 的 DDL。
     - 该选项与 `--csv`、`--sql` 或 `--cut` 任意一种数据格式选项搭配使用时，表示按照对应的格式导出所有表中的数据。如果需要导出所有的数据库对象定义和表数据，您可以指定 `--all`, `--ddl` 选项再搭配任意一种数据格式选项。  

  #### 注意

  `--all` 选项与任意的数据库对象选项之间都是互斥的，不可同时指定；如果同时指定 `--all` 选项与任意的数据库对象选项，则会优先执行 `--all` 选项命令。
 - --table-group *'**table_group_name [,table_group_name...]**'* | --table-group '*****'

  用于标识导出 ***表组*** 定义。除了不支持导出数据外，其他描述同 `--table` 选项。
 - --table *'**table_name [,table_name...]**'* | --table '*****'

  用于标识导出表定义或者表数据。该选项与 `--ddl` 搭配使用时，表示仅导出表定义；该选项与任意一种数据格式选项搭配使用时，表示仅导出表数据。指定多个表时，表名用逗号分隔（,）。导出 OceanBase 数据库 Oracle 兼容模式租户的表名默认按照大写处理，导出 OceanBase 数据库 MySQL 兼容模式租户的表名默认按照小写处理；例如：OceanBase 数据库 Oracle 兼容模式下，`--table 'test'` 和 `--table 'TEST'` 均表示 TEST 表；OceanBase 数据库 MySQL 兼容模式下，`--table 'test'` 和 `--table 'TEST'` 均表示 test 表。如果需要区分大小写，请将表名放入中括号内（[ ]）。例如：`--table '[test]'` 表示 test 表，`--table '[TEST]'` 表示 TEST 表。如果表名指定为星号（*），表示导出所有的表定义或者表数据。

  #### 说明

     - OBDUMPER 不支持导出 OceanBase 数据库内部表或内部视图数据。
     - OBDUMPER V4.1.0 及之后的版本支持导出 OceanBase 数据库 Oracle 兼容模式下的临时表定义。
 - --view *'**view_name [, view_name...]**'* | --view '***** '

  用于标识导出 ***视图*** 定义。除了不支持导出数据外，其他描述同 `--table` 选项。
 - --trigger *'**trigger_name [, trigger_name...]**'* | --trigger '*****'

  用于标识导出 ***触发器*** 定义。除了不支持导出数据外，其他描述同 `--table` 选项。目前仅适用于 OceanBase 数据库 Oracle 兼容模式。
 - --obj-user 'user_name [, user_name...]' | --obj-user '*'

  用于表示导出 **用户** 定义。除了不支持导出数据外，其他描述同 `--table` 选项。

  #### 注意

     - `--public-cloud` 模式下，不支持使用 `--obj-user` 选项。
     - OceanBase 数据库 Oracle 兼容模式用户导出的权限不包含 `BECOME USER`，默认跳过。  
     - 用户要求：OceanBase 数据库 Oracle 兼容模式登录用户为管理员或具备 `dba_users` 权限的普通用户；OceanBase 数据库 MySQL 兼容模式登录用户为管理员或具备 `mysql.user` 表权限的普通用户。
     - 导出用户默认忽略以下用户

           - OceanBase 数据库 MySQL 兼容模式：`root`、`proxyro`、`standbyro`、`ORAAUDITOR` 和 `__oceanbase_inner_drc_user`。
           - OceanBase 数据库 Oracle 兼容模式：`SYS`、`proxyro`、`standbyro`、`PUBLIC`、`ORAAUDITOR`、`LBACSYS` 和 `__OCEANBASE_INNER_DRC_USER`。
 - --role 'role_name [, role_name...]' | --role '*'

  用于标识导出 **角色** 定义。除了不支持导出数据外，其他描述同 `--table` 选项。

  #### 注意

  `--public-cloud` 模式下，不支持使用 `--role` 选项。

     - 用户要求：目前仅适用于 OceanBase 数据库 Oracle 兼容模式，要求登录用户为管理员或具备 `dba_users` 权限的普通用户。
     - 导出角色默认忽略以下角色：`CONNECT`、`RESOURCE`、`DBA`、`PUBLIC` 和 `STANDBY_REPLICATION`。
 - --sequence *'**sequence_name [, sequence_name...]**'* | --sequence '*****'

  用于标识导出 ***序列*** 定义。除了不支持导出数据外，其他描述同 `--table` 选项。

  #### 注意

  OBDUMPER V4.0.0 及之前的版本仅适用于 OceanBase 数据库 Oracle 兼容模式；OBDUMPER V4.1.0 及之后的版本适用于 OceanBase 数据库 MySQL 兼容模式和 OceanBase 数据库 Oracle 兼容模式。

  `--sequence-policy` 选项，可选值包括 `restart` 和 `preserve`，默认值为 `preserve`。

     - 默认或指定 `preserve`，导出时 Start Value 将被指定为序列的当前值。
     - 指定 `restart`，导出时 Start Value 将保持序列的原有定义，将原样导出。
 - --synonym *'**synonym_name [, synonym_name...]**'* | --synonym '*****'

  用于标识导出 ***同义词*** 定义。除了不支持导出数据外，其他描述同 `--table` 选项。目前仅适用于 OceanBase 数据库 Oracle 兼容模式。
 - --type *'**type_name [, type_name...]**'* | --type '*****'

  用于标识导出 ***类型*** 定义。除了不支持导出数据外，其他描述同 `--table` 选项。仅适用于 OceanBase 数据库 Oracle 兼容模式。

  #### 说明

  仅 OceanBase 数据库 Oracle 兼容模式 V2.2.77 及之后版本支持导出类型定义。
 - --type-body *'**typebody_name [, typebody_name...]**'* | --type-body '***** '

  用于标识导出 ***类型体*** 定义。除了不支持导出数据外，其他描述同 `--table` 选项。仅适用于 OceanBase 数据库 Oracle 兼容模式。

  #### 说明

  该选项必须与 `--type` 搭配使用，导出的类型体文件保存在类型文件中。
 - --package *'**package_name [, package_name...]**'* | --package '*****'

  用于标识导出 ***包*** 定义。除了不支持导出数据外，其他描述同 `--table` 选项。仅适用于 OceanBase 数据库 Oracle 兼容模式。
 - --package-body *'**packagebody_name [, packagebody_name...]**'* | --package-body '*****'

  用于标识导出 ***包体*** 定义。除了不支持导出数据外，其他描述同 `--table` 选项。仅适用于 OceanBase 数据库 Oracle 兼容模式。
 - --function *'**function_name [, function_name...]**'* | --function '*****'

  用于标识导出 ***函数*** 定义。除了不支持导出数据外，其他描述同 `--table` 选项。

  #### 说明

  OceanBase 数据库 Oracle 兼容模式所有版本均支持导出函数定义；OceanBase 数据库 MySQL 兼容模式 V2.2.30 及之后版本支持导出函数定义。
 - --procedure *'**procedure_name [, procedure_name...]**'* | --procedure '*****'

  用于标识导出 ***存储过程*** 定义。除了不支持导出数据外，其他描述同 `--table` 选项。

  #### 说明

  OceanBase 数据库 Oracle 兼容模式所有版本均支持导出存储过程定义；OceanBase 数据库 MySQL 兼容模式 V2.2.30 及之后版本支持导出存储过程定义。

#### 存储路径

- -f '***file_path***', --file-path= '***file_path***'

  用于指定数据文件存放在本地磁盘的绝对路径。

  #### 说明

  OBDUMPER V4.2.7 及之后的版本，导出单个文件时支持指定 `-f` 为具体的文件名。

     - 指定 `--query-sql` 时，会替换默认的文件名 `CUSTOM_SQL`。
     - `log` 目录会被生成在 `-f` 指定路径的父目录。

  OBDUMPER 支持将数据库对象定义和表数据导出至本地磁盘、Aliyun OSS、Amazon S3、Tencent COS 和 Huawei OBS。语法格式如下：

  ```shell
  [scheme://host]path[?parameters]

  parameters: key[=value]&...

  ```

  | **组成部分** | **说明** |
  | --- | --- |
  | scheme | 支持的存储类型，包括 [Aliyun OSS](https://help.aliyun.com/document_detail/31817.html?spm=5176.8465980.help.dexternal.4e701450fT87ve)、[Amazon S3](https://docs.aws.amazon.com/zh_cn/s3/index.html)、Tencent COS 和 Huawei OBS。    如果指定的 scheme 不是当前支持的 OSS、S3、COS 和 OBS，则会报错。 |
  | host | 指定存储空间的名称。   导出数据至 OSS、S3、COS 和 OBS 时，host 指代存储桶，详情请参见 [OSS Bucket](https://help.aliyun.com/document_detail/31827.html#section-yxy-jmt-tdb)。 |
  | path | 指定存储空间的资源路径。路径**必须**以 `/` 开头。 |
  | parameters | 指定请求所需要的参数。   parameters 可为单个 key 或者 key-value。 |

  支持的参数：

  | **参数** | **是否需要 value** | **说明** | **支持的存储类型** | **导数工具开始支持的版本** |
  | --- | --- | --- | --- | --- |
  | endpoint | 是 | - 用于指定 host 所在地域的 Endpoint。   - 用于通过域名 Endpoint 访问 OSS/S3/COS/OBS。示例：`oss://ssmp-xxxx-xxxx/test?endpoint=oss-cn-shenzhen-internal.aliyuncs.com`。 | [OSS](https://help.aliyun.com/zh/oss/user-guide/regions-and-endpoints)/[S3](https://docs.aws.amazon.com/general/latest/gr/s3.html)/[COS](https://www.tencentcloud.com/document/product/436/6224)/[OBS](https://support.huaweicloud.com/productdesc-obs/obs_03_0152.html) | - OSS：V4.2.0   - S3：V4.2.5   - COS/OBS：V4.3.0 |
  | region | 是 | 用于指定终端节点，为 Bucket 所在的物理位置。 | OSS/S3/COS/OBS | - OSS/S3：V4.2.0   - COS/OBS：V4.3.0 |
  | storage-class | 是 | 用于指定 Amazon S3 存储类。 | S3 | 4.2.0 |
  | access-key | 是 | 用于指定存储的访问账号。 | OSS/S3/COS/OBS | - OSS/S3：V4.2.0   - COS/OBS：V4.3.0 |
  | secret-key | 是 | 用于指定存储的访问密钥。 | OSS/S3/COS/OBS | - OSS/S3：V4.2.0   - COS/OBS：V4.3.0 |

  示例如下：

     - 导出数据至本地磁盘

      ```shell
      -f '/home/admin/foo/bar'

      ```
     - 导出数据至 S3

      ```shell
      -f 's3://bucket/path?region={region}&access-key={accessKey}&secret-key={secretKey}'

      ```
     - 导出数据至 OSS

      ```shell
      -f 'oss://mybucket/foo/bar?endpoint=myendpoint&access-key=myak&secret-key=mysk'

      ```
     - 导出数据至 COS

      ```shell
      -f 'cos://mybucket/foo?region=ap-shanghai&access-key=myak&secret-key=mysk'
      -f 'cos://mybucket/foo?endpoint=yourendpoint&access-key=myak&secret-key=mysk'

      ```
     - 导出数据至 OBS

      ```shell
      -f 'obs://mybucket/foo?region=cn-north-1&access-key=myak&secret-key=mysk'
      -f 'obs://mybucket/foo?endpoint=yourendpoint&access-key=myak&secret-key=mysk'

      ```
 - --ctl-path '***control_path***'

  用于指定控制文件存放在本地磁盘的绝对路径。控制文件中可配置内置的处理函数，数据导出前根据配置的函数对数据进行预处理。例如：大小写转换、判空等。有关控制文件的使用，请参考 [数据处理](https://www.oceanbase.com/docs/common-oceanbase-dumper-loader-1000000004997318) 章节。命令行指定该选项时，需要在参数值前后加上单引号。例如：`--ctl-path '/home/controls/'`。
 - --log-path '***log_path***'

  指定 OBDUMPER 运行日志的输出目录。命令行未指定该选项时，OBDUMPER 运行日志默认会输出到 `-f` 选项指定的目录。没有特殊要求的情况下，无需使用重定向来输出日志。
 - --no-nested-dir

  用于导出扁平的目录结构，所有文件都会导出至 `-f` 指定的目录下，不会生成任何子目录层级。
 - 工具使用 Multipart-Upload 方式导出至对象存储，默认使用本地文件系统作为临时目录（也可以使用 `--tmp-path` 指定），以存放临时文件分块。您可以在 OBDUMPER 运行脚本中修改以下参数来适应实际的导数环境。

     - upload.buffer.type

      用于指定 buffer 类型，可选值包括 `disk` 和 `bytebuffer`。其中 `disk` 为默认值，使用磁盘来存储分块，将受到磁盘的最大可用空间限制。`bytebuffer` 使用内存来存储分块，性能较好但是会占用大量 JVM 堆内存。
     - upload.buffer.size

      用于指定每个分块的大小，以字节数表示，默认值为 64 MB。
     - upload.active.blocks

      用于指定每个写线程最多可以同时存在的分块（可能在上传中，也可能在队列中等待上传），默认值为 2。当超过该值时，程序会阻塞，直到某一个分块上传完成被移出等待队列。

      由于 `--thread` 会限制写线程的最大数量，您可以通过公式 `thread * active.blocks * buffer.size` 来估算程序运行时 buffer 可能会占用的空间。

### 其他选项

- -H, --help

  用于查看命令行工具的使用帮助。
 - -V, --version

  用于查看当前发行的工具版本号。

## 高级选项

### 功能选项

#### 时间戳格式

- --flashback-timestamp '***timestamp_string***'

  用于导出闪回时间点的数据。该选项仅与任意一种数据格式选项搭配使用，不可与 `--query-sql` 选项搭配使用。仅适用于 OceanBase 数据库 Oracle 兼容模式。
 - --nls-date-format '***date-format-string***'

  用于设置 OceanBase 数据库 Oracle 兼容模式下的 nls_date_format 会话变量，其不代表将 DATE 类型的数据按照该选项指定的格式导出。默认值：YYYY-MM-DD HH24:MI:SS。
 - --nls-timestamp-format '***timestamp-format-string***'

  用于设置 OceanBase 数据库 Oracle 兼容模式下的 nls_timestamp_format 会话变量，其不代表将 TIMESTAMP 类型的数据按照该选项指定的格式导出。默认值：YYYY-MM-DD HH24:MI:SS:FF9。
 - --nls-timestamp-tz-format '***timestamp-tz-format-string***'

  用于设置 OceanBase 数据库 Oracle 兼容模式下的 nls_timestamp_tz_format 会话变量，其不代表将 TIMESTAMP WITH TIME ZONE 类型的数据按照该选项指定的格式导出。默认值：YYYY-MM-DD HH24:MI:SS:FF9 TZR。
 - --date-value-format

  用于设置 DATE 类型的导出格式。OceanBase 数据库 MySQL 兼容模式下，DATE 类型的默认格式：yyyy-MM-dd，OceanBase 数据库 Oracle 兼容模式下的默认格式：yyyy-MM-dd HH:mm:ss。

  #### 说明

     - 该选项仅与 `--csv` 或者 `--cut` 选项搭配使用。
     - OceanBase 数据库 MySQL 兼容模式下，DATE 为零值时，该选项不支持设置 DATE 类型的格式。
 - --time-value-format

  用于设置 TIME 类型的导出格式。OceanBase 数据库 MySQL 兼容模式下，TIME 类型的默认格式：HH:mm:ss，精度值与表定义中的精度值一致。

  #### 说明

     - 该选项仅与 `--csv` 或者 `--cut` 选项搭配使用。
     - OceanBase 数据库 MySQL 兼容模式下，TIME 为零值时，该选项不支持设置 TIME 类型的格式。
 - --datetime-value-format

  用于设置 DATETIME 类型的导出格式。OceanBase 数据库 MySQL 兼容模式下，DATETIME 类型的默认格式：yyyy-MM-dd HH:mm:ss，精度值与表定义中的精度值一致。

  #### 说明

     - 该选项仅与 `--csv` 或者 `--cut` 选项搭配使用。
     - OceanBase 数据库 MySQL 兼容模式下，DATETIME 为零值时，该选项不支持设置 DATETIME 类型的格式。
 - --timestamp-value-format

  用于设置 TIMESTAMP 类型的导出格式。OceanBase 数据库 MySQL/Oracle 兼容模式下，TIMESTAMP 类型的默认格式：yyyy-MM-dd HH:mm:ss.SSSSSS，精度值与表定义中的精度值一致。

  #### 说明

     - 该选项仅与 `--csv` 或者 `--cut` 选项搭配使用。
     - OceanBase 数据库 MySQL 兼容模式下，TIMESTAMP 为零值时，该选项不支持设置 TIMESTAMP 类型的格式。
 - --timestamp-tz-value-format

  用于设置 TIMESTAMP WITH TIME ZONE 类型的导出格式。OceanBase 数据库 Oracle 兼容模式下，TIMESTAMP WITH TIME ZONE 类型的默认格式：yyyy-MM-dd HH:mm:ss.SSSSSS，精度值与表定义中的精度值一致。

  #### 说明

  该选项仅与 `--csv` 或者 `--cut` 选项搭配使用。
 - --timestamp-ltz-value-format

  用于设置 TIMESTAMP WITH LOCAL TIME ZONE 类型的导出格式。OceanBase 数据库 Oracle 兼容模式下，TIMESTAMP WITH LOCAL TIME ZONE 类型的默认格式：yyyy-MM-dd HH:mm:ss，精度值与表定义中的精度值一致。

  #### 说明

  该选项仅与 `--csv` 或者 `--cut` 选项搭配使用。
 - --preserve-zero-datetime

  用于在导出时保留日期与时间类型零值的原始格式。指定该选项时，会将非空约束下的日期与时间类型列值 `NULL` 导出为 `0`；可空列值 `NULL` 仍导出为 `NULL`。 该选项支持设置 MySQL 兼容模式下的 DATE、DATETIME 和 TIMESTAMP 类型。

#### 黑白名单筛选

- 表黑白名单筛选

     - --exclude-table *'**table_name [, table_name...]**'*

      用于表示导出表定义或者表数据时排除指定的表。表名支持模糊匹配。

      使用示例：`--exclude-table 'test1,test*,*test,te*st'`

      上述参数表示导出表定义或者表数据时排除的表包括：

           - test1
           - 所有的表名以 test 开头的表
           - 所有的表名以 test 结尾的表
           - 所有的表名以 te 开头以 st 结尾的表
     - --exclude-data-types *'**datatype [, datatype...]**'*

      用于表示导出数据时排除指定的数据类型。
     - --add-extra-message

      用于标识导出表定义中包含的额外信息。例如：命令行指定 `--add-extra-message` 选项导出表定义时，程序会导出每张表所属的表组名。默认 OBDUMPER 不会导出表定义中包含的额外信息。

      #### 注意

      指定 `--add-extra-message` 命令行选项导出表定义时，程序会导出每张表所属的表组名。该选项依赖 sys 租户权限。如果 OBDUMPER 运行时缺少 sys 租户的权限，请勿指定该选项。
     - --retain-empty-files

      用于表示特定场景进行导出时生成空文件。命令行在指定 `--partition` 选项进行特定分区导出，或指定了 `--where` 进行条件查询导出时，同时指定 `--retain-empty-file` 可以在分区为空或条件查询结果集为空时生成空文件。
 - 列黑白名单筛选

     - --include-column-names *'**column_name [, column_name...]**'*

      用于根据指定的列名导出数据。
     - --exclude-column-names *'**column_name [, column_name...]**'*

      用于表示导出数据时排除指定的列。列名不支持模糊匹配。

      #### 注意

           - 指定的列名需要与表定义中的列名大小写保持一致。
           - 控制文件不能和 `--exclude-column-names` 一起生效，控制文件包含 `--exclude-column-names` 的功能。
     - --where *'**where_condition_string**'*

      用于标识导出满足指定条件的数据。该选项仅与任意一种数据格式选项搭配使用，不可搭配 `--query-sql` 选项使用。

      如果您在指定了 `--where` 进行条件查询导出时，同时指定 `--retain-empty-file`，则可以在条件查询结果集为空时生成空文件。
     - --partition *'**partition_name [, partition_name...]**'*

      用于标识导出指定分区的数据。该选项的参数值是分区名，多个分区名用逗号分隔。该选项仅与任意一种数据格式选项搭配使用，不可搭配 `--query-sql` 选项使用。

      #### 注意

           - 指定分区导出时，对于二级分区表需要指定二级分区名，无法按照一级分区名导出。如果是模版二级分区，对应的分区名为：一级分区名+s+二级分区名。
           - 命令行指定 `--partition` 选项导出分区内的数据时，对于组合分区表需要指定二级分区名，OBDUMPER 无法导出一级分区内的数据。如果指定的分区名不存在，OBDUMPER 会报错提示。
           - 如果您在指定 `--partition` 选项进行特定分区导出时，同时指定 `--retain-empty-file`，则可以在分区为空时生成空文件。
     - --query-sql

           - 直接指定查询语句 `--query-sql '<select_statement>'`。例如，`--query-sql 'select c1,c2 from test where c1 is not null'`。

            用于标识导出自定义查询语句的结果数据。该选项不与 `--partition` 或 `--where` 选项搭配使用。用户需要保证自定义查询语句的正确性和查询性能。如果导出大查询语句的结果集，可能等待数据库的响应时间比较长。如果导出数据时需要利用控制文件进行数据预处理，则需要使用 `--table` 选项和 `--ctl-path` 选项，并且 `--table` 选项指定的表名需要与 `--ctl-path` 选项指定的文件名保持大小写一致。如果不需要进行预处理操作，则 `--table` 选项可指定为任意的表名。
           - 指定查询语句所存放的文件 `--query-sql 'file://xxxx'`。例如，`--query-sql 'file:///home/admin/t1.sql'`。

            导数工具识别 `file://` 协议头，直接从文件中读取查询 SQL 语句。用于支持单条超长 SQL 语句，不支持在一个文件中写多条 SQL 语句。
     - --exclude-virtual-columns

      用于标识不导出生成列的数据（默认导出生成列数据）。
     - --enable-hidden-pk

      用于无主键的表使用隐藏主键 `__pk_increment`，以提升导出速度。OceanBase 数据库 V4.0.0 之前的版本指定该选项时需要使用特殊用户进行导出。示例：

      ```yaml
      # OceanBase 数据库 MySQL 兼容模式下，使用 root 用户创建一个特殊用户并授权
      create user '__oceanbase_inner_drc_user'@'%' IDENTIFIED BY 'u*******';
      grant ALL on *.* to '__oceanbase_inner_drc_user' WITH GRANT OPTION;

      # OceanBase 数据库 Oracle 兼容模式下，使用 SYS 用户创建一个特殊用户并授权
      create user '__OCEANBASE_INNER_DRC_USER'@'%' IDENTIFIED BY u*******;
      grant ALL to '__OCEANBASE_INNER_DRC_USER';

      ```

      #### 注意

      使用 OceanBase 数据库 V3.x 的分区表时，建议设置 LOCAL 索引。语法格式：``create index "your index" on `your table` ("__pk_increment") local;``
     - --fetch-size '***int_num***'

      用于标识 OceanBase 数据库 Oracle 兼容模式下从数据库游标中读取的行数。默认值：1000。具体配置请参考 [OceanBase FetchSize](https://www.oceanbase.com/docs/common-oceanbase-connector-j-cn-1000000002499736)。

      #### 说明

      此选项需要安装 [OceanBase JDBC](https://www.oceanbase.com/docs/common-oceanbase-connector-j-cn-1000000002499716) 驱动程序。

#### 错误处理

- --retry

  用于从上一次导出失败位置继续导出任务。

  #### 注意

  dump.ckpt 文件是工具运行时生成的保存点文件，路径位于 `-f` 指定的目录中。如果 dump.ckpt 文件不存在，无法使用该选项。
 - --weak-read

  用于标识从备副本导出数据。关于弱一致性读的更多信息，请参见 [弱一致性读](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001574699)。
 - --max-file-size ***int_num***

  用于设置进程可以导出的数据量上限。导出的数据超过该选项值时停止导出。
 - --skip-check-dir

  用于标识跳过检查导出的数据目录是否为空。导出目录非空时，程序停止导出。

  #### 说明

     - 不指定该选项时，OBDUMPER 会检查目录是否为空，如果导出目录非空，OBDUMPER 会报错并退出。
     - 指定该选项时，OBDUMPER 会跳过检查目录是否为空，但是导出的文件可能会覆盖目录中同名文件的数据。
 - --remove-newline

  用于标识导出数据时程序会强制删除数据中的回车符或者换行符。例如：***`\r`***, ***`\n`***, ***`\r\n`***。其只会对读取到内存中的数据进行修改，并不会直接修改源表中的数据。该选项仅与 `--cut` 选项搭配使用。

  #### 注意

  源表中的数据包含回车符或者换行符时，指定该选项导出的数据和源表中的数据是不一致的。使用前请确认删除 `\r`, `\n`, `\r\n` 字符不会对业务造成影响。用户不需要删除数据中的回车符或者换行符时，请勿在命令行中指定该选项，避免造成业务数据不一致的问题。
 - --snapshot

  用于标识导出历史版本数据。该选项仅与任意一种数据格式选项搭配使用。导出历史版本数据旨在保证导出数据的全局一致性。如果命令行未指定该选项，则导出内存中的实时数据可能不是全局一致的数据快照。

### 性能选项

- --page-size ***int_num***

  OBDUMPER V4.0.0 之后的版本用于指定任务分页的大小，即每次查询限定多少行记录，默认值为 1000000。例如，每次查询 100 万行。
 - --thread ***int_num***

  用于标识并发线程数。该选项直接对应导出线程数。默认值为 `CPU 乘以 2`，如果 CPU 大于 16，则默认上限为 32。导出多个数据库对象定义时，建议 `--thread` 选项的参数值不要超过 4。并发数太大会影响工具访问 sys 租户下的系统表，导出时会出现超时错误。
 - --block-size

  用于标识文件块的切分阈值，支持 LONG 和 STRING 数据类型。如果导出的数据文件超过该阈值，则依次生成其他逻辑子文件。指定该选项时无需显式标注单位，默认单位为 MB，默认值为 0（表示无限大，一个对象仅生成一个文件）。该选项对于 ORC 和 Parquet 格式不生效。

  OBDUMPER V4.1.0 及之后的版本支持根据行数进行切分。`--block-size` 的值为数字单位，MB 为存储大小，ROW 为行数大小。例如，`--block-size 256ROW` 表示单个文件大小不超过 256 行；`--block-size 1024` 或 `--block-size 1024MB` 表示单个文件大小不超过 1024MB，不支持 1024M、1GB 等格式。

  #### 注意

  使用 `--block-size` 时，`-f` 必须指定为 **路径地址**。
 - --parallel-macro ***int_num***

  用于标识一个线程可以处理的宏块数。默认值：8。
 - --mem

  OBDUMPER V4.3.2 及之后版本支持该参数，用于标识 JVM 的内存大小配置。支持的单位包括 K、M、G 或 T，默认值为 4G。

### 其他选项

- --session-config

  用于指定 [连接配置](https://www.oceanbase.com/docs/common-oceanbase-dumper-loader-1000000004997289) 文件。配置文件目录中已为您提供一份默认的配置文件：`<工具根目录>/conf/session.config.json`，您无需配置即可生效。建议仅当您需要使用同一份配置文件目录加载多份连接配置时指定该选项。
 - --retain-schema

  用于对导出的表、同义词保留 Schema 信息。默认情况下，导出的 DDL 不包含 Schema 信息，仅包含表名。通过 `--retain-schema` 参数，您可以保留 `schema.table` 的名称。

## 选项列表

| 选项 | 是否必选 | 说明 | 引入版本 | 是否过时 |
| --- | --- | --- | --- | --- |
| -h(--host) | 是 | 连接 ODP 或者 OceanBase 物理节点的主机地址。   如果主机地址为 IPv6 地址，请使用中括号（[]）包裹。例如，`[2001:0db8:85a3:xxxx:xxxx:8a2e:0370:7334]`。 |  | |
| -P(--port) | 是 | 连接 ODP 或者 OceanBase 物理节点的主机端口。 |  | |
| -u(--user) | 是 | 指定数据库用户名、集群的租户名、集群名。 格式：`<user>@<tenant>#<cluster>`。 |  | |
| -p(--password) | 否 | 数据库密码。 |  | |
| -D(--database) | 是 | 数据库名。 |  | |
| -f(--file-path) | 是 | 指定数据的导出目录。 |  | |
| --no-nested-dir | 否 | 标识导出无任何层级的目录。 | V4.2.7 | |
| --sys-user | 否 | 指定 sys 租户下用户名。 |  | |
| --sys-password | 否 | 指定 sys 租户下特定用户的密码。 |  | |
| -t | 否 | 该参数搭配 `--public-cloud` 使用，指定连接 OceanBase 数据库的租户名。   #### 注意    云上旁路导入时，您需要搭配 `--public-cloud -t           ` 使用。 |  | |
| --public-cloud | 否 | 用于标识从云数据库 OceanBase 部署的 OceanBase 集群中导入数据库对象或者表数据。   #### 注意    云上旁路导入时，您需要搭配 `--public-cloud -t           ` 使用。 |  | |
| --log-path | 否 | 指定日志文件的输出目录。 |  | |
| --ddl | 否 | 导出 DDL 文件。    DDL 文件是指导出的数据库对象定义文件，文件的命名规范为 ***对象名-schema.sql*** 。命令行指定该选项时，表示仅导出数据库对象定义，不会导出数据。导出多个表对象定义时，建议 `--thread` 选项的参数值不超过 4。并发数太大会影响访问 sys 租户下的内部视图，导出时会出现超时错误。 |  | |
| --csv | 否 | 导出 CSV 格式的数据文件。（推荐）    CSV 文件是指数据按照标准的 CSV 格式存储，文件的命名规范为 ***表名.csv*** 。有关 CSV 格式规范，请参考 RFC 4180 中的定义。CSV 格式最容易出错的是定界符，通常使用的定界符是单引号或者双引号。如果数据中存在定界符，必须做转义处理，即指定转义符，请参考 CSV 格式相关的符号选项。强烈建议使用 CSV 格式。建议该选项搭配 `--table` 选项使用。如果搭配 `--all` 选项时，OBDUMPER 只会导出表中的数据，不会导出数据库对象定义。 |  | |
| --sql | 否 | 导出 SQL 格式的数据文件。（区别于 DDL 文件）    SQL 文件是指数据按照 INSERT 语句格式存储，文件的命名规范为 ***表名.sql*** 。文件的内容是每一行表数据对应一条可执行的 INSERT 语句。SQL 文件在内容格式上明显区别于 DDL 文件。建议该选项搭配 `--table` 选项使用。如果搭配 `--all` 选项时，OBDUMPER 只会导出表中的数据，不会导出数据库对象定义。 |  | |
| --orc | 否 | 导出 ORC 格式的数据文件。   ORC 文件是指数据按照列格式进行存储，文件的命名规范为 ***表名.orc*** 。请参考 [Apache ORC](https://orc.apache.org/specification/ORCv1/) 格式定义。 | V4.0.0 | |
| --par | 否 | 导出 Parquet 格式的数据文件。   Parquet 文件是指数据按照列格式进行存储，文件的命名规范为 ***表名.parquet*** 。请参考 [Apache Parquet](https://parquet.apache.org/docs/file-format/) 格式定义。 | V4.0.0 | |
| --cut | 否 | 导出 CUT 格式的数据文件。     CUT 文件是指数据使用字符串进行分隔的格式，文件的命名规范为 ***表名.dat*** 。建议该选项搭配 `--table` 选项使用。如果搭配 `--all` 选项时，OBDUMPER 只会导出表中的数据，不会导出数据库对象定义。   #### 注意    CUT 格式要求数据整行存放。如果字段分隔符是单个字符时，数据中出现分隔符、回车或者换行等特殊字符，OBDUMPER 会将数据中的特殊字符进行转义。例如：数据为 `abc\|def`，分隔符为 `\|`，则导出的数据为 `abc\\|def`。 |  | |
| --all | 否 | 导出所有已支持的数据库对象定义和表数据。 |  | |
| --table-group | 否 | 导出 ***表组*** 定义。 | V3.1.0 | |
| --table | 否 | 导出 ***表*** 定义或者 ***表*** 数据。 |  | |
| --view | 否 | 导出 ***视图*** 定义。 |  | |
| --function | 否 | 导出 ***函数*** 定义。 |  | |
| --procedure | 否 | 导出 ***存储过程*** 定义。 |  | |
| --trigger | 否 | 导出 ***触发器*** 定义。 |  | |
| --obj-user | 否 | 导出 **用户** 定义。 |  | |
| --role | 否 | 导出 **角色** 定义。 |  | |
| --sequence | 否 | 导出 ***序列*** 定义。 |  | |
| --synonym | 否 | 导出 ***同义词*** 定义。（暂不支持 MySQL 兼容模式） |  | |
| --type | 否 | 导出 ***类型*** 定义。 | V4.0.0 | |
| --type-body | 否 | 导出 ***类型体*** 定义。 |  | |
| --package | 否 | 导出 ***程序包*** 定义。 |  | |
| --package-body | 否 | 导出 ***程序包体*** 定义。 |  | |
| --drop-object | 否 | 导出 DDL 时，前置追加 `DROP` 语句。 该选项仅与 `--ddl` 选项搭配使用。 |  | |
| --distinct | 否 | 导出表中非重复的数据。 |  | 是 |
| --with-trim | 否 | 删除数据左右的空格字符。 | V4.2.0 | |
| --weak-read | 否 | 导出备副本中的表数据。（区别于备集群） |  | |
| --query-sql | 否 | 导出自定义的查询 SQL 语句的结果集。 |  | |
| --snapshot | 否 | 导出最近一次合并版本的数据。 |  | |
| --where | 否 | 导出满足条件的数据。 |  | |
| --partition | 否 | 导出指定的分区内的数据。 |  | |
| --skip-header | 否 | 取值为 BOOLEAN 类型，用于标识是否忽略 CSV 格式文件头，即第一行字段头数据。 |  | |
| --trail-delimiter | 否 | 删除行尾最后一个列分隔符。 |  | |
| --null-string | 否 | 用于标识当前列值为 NULL 时，该列值会替换为指定的字符串。默认值：\N。该选项仅与 `--csv` 或者 `--cut` 选项搭配使用。   #### 注意    `,,` 和 `,"",` 均会被解析为空字符串，仅内容为 \N 时才会被解析为空值 NULL。 |  | |
| --line-separator | 否 | 指定行分隔符。    导出 CSV、CUT、POS 和 SQL 格式文件时支持自定义数据文件换行符。该选项的默认值与系统平台相关，仅包括：***\r***, ***\n***, ***\r\n*** 三种可选的值。 |  | |
| --file-encoding | 否 | 指定文件编码。（区别于数据库编码）     命令行指定该选项时，需要在参数值前后加上单引号。例如：`--file-encoding 'GBK'`。默认值：***UTF-8*** 。 |  | |
| --column-separator | 否 | 用于 CSV 格式指定列分隔符，区别于 CUT 格式中的列分隔字符串。该选项仅与 `--csv` 选项搭配使用。默认值为英文逗号（,）。   #### 注意    该选项在 OBDUMPER V4.3.5 之前版本仅支持单字符。 |  | |
| --escape-character | 否 | 指定转义字符。该选项仅支持单字符，仅与 `--csv` 或者 `--cut` 选项搭配使用。   - 与 `--csv` 选项搭配时，默认值为 null。 - 与 `--cut` 选项搭配时，默认值为 \。    #### 说明    如果需要指定该选项为特殊（不可见）字符时，请使用 HEX 表示（即使用该字符在编码表的十六进制数来指定不可见或控制字符）。例如，您可以使用 '\x09' 表示不可见的 Tab 字符。 |  | |
| --column-delimiter | 否 | 指定列定界符，默认值为英文单引号（'）。该选项与 `--column-quote` 同义，不支持两者同时指定。并且该选项仅支持单字符，仅与 `--csv` 选项搭配使用。   #### 说明    `--column-delimiter` 为过时参数，可能在之后版本删除，推荐您使用 `--column-quote`。 |  | |
| --column-quote | 否 | 指定列包围符，默认值为英文单引号（'）。该选项与 `--column-delimiter` 同义，不支持两者同时指定。并且该选项仅支持单字符，仅与 `--csv` 选项搭配使用。 | V4.3.5 | |
| --column-quote-mode | 否 | 指定列包围符模式选项，默认值为 `non_numeric`，不区分大小写。该选项支持指定的模式和行为如下。   #### 注意    NULL 字段除 `all` 外，均不加包围符。如果指定为 `none`，则导出的 CSV 文件的内容可能是非法的，无法被原样导入。    - `all`：表示所有字段均加包围符。 - `all_not_null`：表示非 NULL 字段加包围符。 - `minimal`：表示字段包含分隔符、包围符或行分隔符任一字符时，才加包围符。 - `non_numeric`：表示非数字字段加包围符。 - `none`：表示从不加包围符。如果数据中出现分隔符则需要转义，否则按照格式非法报错。 | V4.3.5 | |
| --column-splitter | 否 | 用于 CUT 格式指定列分隔字符串，区别于 CSV 格式中的列分隔符。 |  | |
| --flashback-scn | 否 | 指定导出闪回事务点之后的数据。   该选项仅与任意一种数据格式选项搭配使用，不可与 `--query-sql` 选项搭配使用。 |  | |
| --flashback-timestamp | 否 | 指定导出闪回时间点之后的数据。（仅支持 OceanBase 数据库 Oracle 兼容模式 V2.2.70 及之后版本） |  | |
| --nls-date-format | 否 | 设置会话级别的日期时间格式。（仅支持 OceanBase 数据库 Oracle 兼容模式） |  | |
| --nls-timestamp-format | 否 | 设置会话级别的时间戳格式。（仅支持 OceanBase 数据库 Oracle 兼容模式） |  | |
| --nls-timestamp-tz-format | 否 | 设置会话级别带时区的时间戳格式。（仅支持 OceanBase Oracle模式） |  | |
| --retry | 否 | 从最近一次的保存点重新导出。 |  | |
| --ctl-path | 否 | 指定控制文件所在的目录。 |  | |
| --exclude-table | 否 | 排除导出指定的表定义和表数据。 |  | |
| --include-column-names | 否 | 根据指定的列名导出数据。 |  | |
| --exclude-column-names | 否 | 排除导出指定的列名所对应的数据。 |  | |
| --exclude-data-types | 否 | 排除导出指定的数据类型所对应的数据。 |  | |
| --remove-newline | 否 | 强制删除数据中的换行符或者回车符。（仅适用于 CUT 格式） |  | |
| --max-file-size | 否 | 设置进程可以导出的数据量上限。单位：Byte。 |  | |
| --skip-check-dir | 否 | 跳过检查数据的导出目录是否为空。（要求导出目录必须为空） |  | |
| --retain-empty-files | 否 | 导出空表时默认生成一个空文件。 |  | |
| --add-extra-message | 否 | 导出建表语句中的表组等额外信息。 |  | |
| --page-size | 否 | 导出查询语句的分页大小。默认值：1000000。 |  | |
| --thread | 否 | 导出任务的并发数。 |  | |
| --block-size | 否 | 指定文件的分隔大小。默认值：1024MB。 |  | |
| --parallel-macro | 否 | 指定每一个导出线程处理的宏块数。 |  | |
| --fetch-size | 否 | 标识 OceanBase 数据库 Oracle 兼容模式下每次从数据库游标中读取的行数。 | V4.2.0 | |
| -V(--version) | 否 | 查看 OBDUMPER 工具的版本号。 |  | |
| --date-value-format | 否 | 设置 DATE 类型的导出格式。 | V3.2.0 | |
| --time-value-format | 否 | 设置 OceanBase 数据库 MySQL 兼容模式下 TIME 类型的导出格式。 | V3.2.0 | |
| --datetime-value-format | 否 | 设置 OceanBase 数据库 MySQL 兼容模式下 DATETIME 类型的导出格式。 | V3.2.0 | |
| --timestamp-value-format | 否 | 设置 OceanBase 数据库 MySQL/Oracle 兼容模式下 TIMESTAMP 类型的导出格式。 | V3.2.0 | |
| --timestamp-tz-value-format | 否 | 设置 OceanBase 数据库 Oracle 兼容模式下 TIMESTAMP WITH TIME ZONE 类型的导出格式。 | V3.2.0 | |
| --timestamp-ltz-value-format | 否 | 设置 OceanBase 数据库 Oracle 兼容模式下 TIMESTAMP WITH LOCAL TIME ZONE 类型的导出格式。 | V3.2.0 | |
| --exclude-virtual-columns | 否 | 标识不导出生成列的数据（默认导出生成列数据）。 | V3.2.0 | |
| --no-sys | 否 | 标识 OceanBase 数据库环境下无法提供 sys 租户密码。 | 3.3.0 | |
| --logical-database | 否 | 标识连接 ODP (Sharding) 逻辑库进行导出。 | V3.3.0 | |
| --character-set | 否 | 标识创建数据库连接时的字符集。    默认值：`session.properties` 文件中[会话变量](https://www.oceanbase.com/docs/common-oceanbase-dumper-loader-1000000004997289)`jdbc.url.character.encoding` 设置的值。`--character-set` 选项指定字符集会覆盖 `jdbc.url.character.encoding` 值。该选项支持指定的[字符集](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000643965)包括：binary、gbk、gb18030、utf16 和 utf8mb4。 | V4.2.4 | |
| --preserve-zero-datetime | 否 | 标识导出时保留时间类型零值的原始格式。 | V4.2.4 | |
| --enable-hidden-pk | 否 | 无主键的表使用隐藏主键。 | V4.2.5 |
| --session-config | 否 | 用于指定 [连接配置](https://www.oceanbase.com/docs/common-oceanbase-dumper-loader-1000000004997289) 文件。 | V4.2.6 | |
| --retain-schema | 否 | 对导出的表、同义词保留 Schema 信息。 |  | |
| -H(--help) | 否 | 查看 OBDUMPER 命令行工具的使用帮助。 |  | |

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