---
title: "命令行选项 | OceanBase 文档中心"
description: 命令行选项 OBDUMPER 通过命令行选项指定导出所需要的信息，更多选项描述和使用示例，请参考 选项列表 与 使用示例 。 选项列表 选项 是否必选 说明 引入版本 是否废弃 -h(--host) 是 连接 ODP 或者 OceanBase 物理节点的主机地址。 -P(--port) 是 连接 ODP 或者 Oce…
---
切换语言

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

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

# 命令行选项

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

OBDUMPER 通过命令行选项指定导出所需要的信息，更多选项描述和使用示例，请参考 **选项列表** 与 **使用示例**。

## 选项列表

| 选项 | 是否必选 | 说明 | **引入版本** | **是否废弃** |
| --- | --- | --- | --- | --- |
| -h(--host) | 是 | 连接 ODP 或者 OceanBase 物理节点的主机地址。 |  | |
| -P(--port) | 是 | 连接 ODP 或者 OceanBase 物理节点的主机端口。 |  | |
| -c(--cluster) | 否 | 数据库的集群名。 |  | |
| -t(--tenant) | 否 | 集群的租户名。 |  | |
| -u(--user) | 是 | 数据库用户名。 |  | |
| -p(--password) | 否 | 数据库密码。 |  | |
| -D(--database) | 是 | 数据库名。 |  | |
| -f(--file-path) | 是 | 指定数据的导出目录。 |  | |
| --sys-user | 否 | 指定 sys 租户下用户名。 |  | |
| --sys-password | 否 | 指定 sys 租户下特定用户的密码。 |  | |
| --public-cloud | 否 | 指定公共云运行环境。 |  | |
| --log-path | 否 | 指定日志文件的输出目录。 |  | |
| --ddl | 否 | 导出 DDL 文件。 |  | |
| --csv | 否 | 导出 CSV 格式的数据文件。（推荐） |  | |
| --sql | 否 | 导出 SQL 格式的数据文件。（区别于 DDL 文件） |  | |
| --orc | 否 | 导出 ORC 格式的数据文件。 | 4.0.0 | |
| --par | 否 | 导出 Parquet 格式的数据文件。 | 4.0.0 | |
| --cut | 否 | 导出 CUT 格式的数据文件。 |  | |
| --all | 否 | 导出所有已支持的数据库对象定义和表数据。 |  | |
| --table-group | 否 | 导出 ***表组*** 定义。 | 3.1.0 | |
| --table | 否 | 导出 ***表*** 定义或者 ***表*** 数据。 |  | |
| --view | 否 | 导出 ***视图*** 定义。 |  | |
| --function | 否 | 导出 ***函数*** 定义。 |  | |
| --procedure | 否 | 导出 ***存储过程*** 定义。 |  | |
| --trigger | 否 | 导出 ***触发器*** 定义。 |  | |
| --sequence | 否 | 导出 ***序列*** 定义。 |  | |
| --synonym | 否 | 导出 ***同义词*** 定义。（暂不支持 MySQL 租户） |  | |
| --type | 否 | 导出 ***类型*** 定义。 | 4.0.0 | |
| --type-body | 否 | 导出 ***类型体*** 定义。 |  | |
| --package | 否 | 导出 ***程序包*** 定义。 |  | |
| --package-body | 否 | 导出 ***程序包体*** 定义。 |  | |
| --drop-object | 否 | 导出 DDL 时，前置追加 `DROP` 语句。 |  | |
| --distinct | 否 | 导出表中非重复的数据。 |  | 是 |
| --weak-read | 否 | 导出备副本中的表数据。（区别于备集群） |  | |
| --query-sql | 否 | 导出自定义的查询 SQL 语句的结果集。 |  | |
| --snapshot | 否 | 导出最近一次合并版本的数据。 |  | |
| --where | 否 | 导出满足条件的数据。 |  | |
| --partition | 否 | 导出指定的分区内的数据。 |  | |
| --skip-header | 否 | CSV 格式忽略导出表中的字段。 |  | |
| --trail-delimiter | 否 | 删除行尾最后一个列分隔符。 |  | |
| --null-string | 否 | `NULL` 替换为指定字符。默认值：\N 。 |  | |
| --empty-string | 否 | 空字符（' '）替换为指定字符。值默认：\E 。 |  | |
| --line-separator | 否 | 自定义行分隔符。默认值：\n 。 |  | |
| --file-encoding | 否 | 指定文件编码。（区别于数据库编码） |  | |
| --column-separator | 否 | 指定列分隔符。（区别于 CUT 格式中的列分隔字符串） |  | |
| --escape-character | 否 | 指定转义字符。默认值：\ 。 |  | |
| --column-delimiter | 否 | 指定列定界符。默认值：' 。 |  | |
| --column-splitter | 否 | 指定列分隔字符串。（区别于 CSV 格式中的列分隔符） |  | |
| --flashback-scn | 否 | 指定导出闪回事务点之后的数据。（仅支持 OceanBase Oracle 2.2.70 及之后版本） |  | |
| --flashback-timestamp | 否 | 指定导出闪回时间点之后的数据。（仅支持 OceanBase Oracle 2.2.70 及之后版本） |  | |
| --nls-date-format | 否 | 设定会话级别的日期时间格式。（仅支持 OceanBase Oracle模式） |  | |
| --nls-timestamp-format | 否 | 设定会话级别的时间戳格式。（仅支持 OceanBase Oracle模式） |  | |
| --nls-timestamp-tz-format | 否 | 设定会话级别带时区的时间戳格式。（仅支持 OceanBase Oracle模式） |  | |
| --retry | 否 | 从最近一次的保存点重新导出。 |  | |
| --ctl-path | 否 | 指定控制文件所在的目录。 |  | |
| --exclude-table | 否 | 排除导出指定的表定义和表数据。 |  | |
| --exclude-column-names | 否 | 排除导出指定的列名所对应的数据。 |  | |
| --exclude-data-types | 否 | 排除导出指定的数据类型所对应的数据。 |  | |
| --include-column-names | 否 | 根据指定的字段顺序导出数据。 |  | |
| --oss-point | 否 | 指定 OSS Bucket 所在地域的 Endpoint。 |  | |
| --access-key | 否 | 指定 OSS 云存储的访问账号。 |  | |
| --secret-key | 否 | 指定 OSS 云存储的访问密钥。 |  | |
| --bucket-uri | 否 | 指定 OSS 云存储的资源路径。 |  | |
| --file-name | 否 | 将每一张表导出的子文件分别合并成一个大文件。 |  | |
| --remove-newline | 否 | 强制删除数据中的换行符或者回车符。（仅适用于 CUT 格式） |  | |
| --max-file-size | 否 | 设置每张表最多导出的数据量。默认单位：MB。 |  | |
| --skip-check-dir | 否 | 跳过检查数据的导出目录是否为空。（要求导出目录必须为空） |  | |
| --retain-empty-files | 否 | 导出空表时默认生成一个空文件。 |  | |
| --add-extra-message | 否 | 导出建表语句中的表组等额外信息。 |  | |
| --page-size | 否 | 导出查询语句的分页大小。默认值：1000000。 |  | |
| --thread | 否 | 导出任务的并发数。 |  | |
| --block-size | 否 | 指定文件的分隔大小。默认值：1GB。 |  | |
| --parallel-macro | 否 | 指定每一个导出线程处理的宏块数。 |  | |
| -V(--version) | 否 | 查看 OBDUMPER 工具的版本号。 |  | |
| --date-value-format | 否 | 控制 Date 类型的导出格式。 | 3.2.0 | |
| --time-value-format | 否 | 控制 MySQL 模式下 Time 类型的导出格式。 | 3.2.0 | |
| --datetime-value-format | 否 | 控制 MySQL 模式下 Datetime 类型的导出格式。 | 3.2.0 | |
| --timestamp-value-format | 否 | 控制 MySQL/Oracle 模式下 Timestamp 类型的导出格式。 | 3.2.0 | |
| --timestamp-tz-value-format | 否 | 控制 Oracle 模式下 timestamp with time zone 类型的导出格式。 | 3.2.0 | |
| --timestamp-ltz-value-format | 否 | 控制 Oracle 模式下 timestamp with local time zone 类型的导出格式。 | 3.2.0 | |
| --exclude-virtual-columns | 否 | 标识不导出生成列的数据（默认导出生成列数据）。 | 3.2.0 | |
| --no-sys | 否 | 标识私有云环境下无法提供 sys 租户密码。 | 3.3.0 | |
| --logical-database | 否 | 标识连接 ODP (Sharding) 逻辑库进行导出。 | 3.3.0 | |

## 连接选项

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

- -h ***host_name*** , --host= ***host_name***

  用于连接 ODP 或者 OceanBase 物理节点的主机地址。
 - -P ***port_num*** , --port= ***port_num***

  用于连接 ODP 或者 OceanBase 物理节点的主机端口。
 - -c ***cluster_name*** , --cluster= ***cluster_name***

  用于连接给定的 OceanBase 集群。命令行未指定该选项时，表示当前连接的是数据库的物理节点，相关的选项（例如：`-h`/`-P`）指定的是数据库物理节点的主机地址和端口；命令行指定该选项时，表示当前连接的是 ODP 服务，相关的选项（例如：`-h`/`-P`）指定的是 ODP 服务的主机地址和端口。
 - -t ***tenant_name*** , --tenant= ***tenant_name***

  用于连接 OceanBase 数据库中给定的租户。有关"租户"的概念，请参考 OceanBase 官方文档。
 - -u ***user_name*** , --user= ***user_name***

  用于连接目标数据库的用户名。如果指定的用户名错误，则 OBDUMPER 无法连接到数据库。
 - -p ' ***password'*** , --password=' ***password'***

  用于连接 OceanBase 数据库的账号密码。命令行未指定该选项时，表示当前的数据库账户未设置密码；命令行指定该选项时，需要在参数值前后加上单引号。例如：`-p'******'`。

  > **说明**
  >  在 Windows 操作系统上，需在参数值前后加上双引号。其它选项的参数值是字符串时也同样需要加双引号。
 - -D ***database_name*** , --database= ***database_name***

  该选项表示从指定的数据库中导出数据库对象定义和表数据。
 - --sys-user ***sys_username***

  用于连接 sys 租户下拥有特定权限的用户。例如：root 用户或者 proxyro 用户。OBDUMPER 需要 sys 租户下的特殊用户查询系统表中的元数据。默认值：root。OceanBase 4.0.0.0 及之后的版本无需指定该选项。
 - --sys-password '***sys_password'***

  用于连接 sys 租户下拥有特定权限的账户密码。与 `--sys-user` 选项搭配使用，默认情况下表示 sys 租户下 root 用户密码为空。命令行指定该选项时，需要在参数值前后加上单引号，例如：`--sys-password '******'`。OceanBase 4.0.0.0 及之后的版本无需指定该选项。

  > **说明**
  >  如果未指定该选项，OBDUMPER 无法查询系统表中的元数据，导出功能和导出性能可能会受到较大的影响。
 - --public-cloud

  用于标识将公共云部署的 OceanBase 集群中的数据库对象或者表数据导出到文件中。如果命令行指定该选项时则无需指定 `-t`, `-c` 连接选项，同时导出程序默认会打开 `--no-sys` 选项。关于 `--no-sys` 选项请参考对应的选项说明。
 - --no-sys

  用于标识私有云环境下用户无法提供 sys 租户的密码，将私有云部署的 OceanBase 集群中的数据库对象或者表数据导出到文件中。该选项与 `--public-cloud` 选项的区别：使用 `--no-sys` 选项时命令行需要指定 `-t` 连接选项，连接 ODP 服务时还需要加上 `-c` 选项。在 OceanBase 4.0.0.0 及之前的版本中，如果用户未指定 `--public-cloud` 或者 `--no-sys` 选项，OBDUMPER 必须指定 `--sys-user` 和 `--sys-password` 选项。
 - --logical-database

  用于标识连接 ODP (Sharding) 逻辑库进行导出。命令行中指定 `--logical-database` 选项时，导出的是随机的一个物理分库分表的定义，不可以直接导入到数据库中。用户需要将导出的物理库表结构手动改成逻辑库表结构，才可以导入到数据库中被业务使用。

## 功能选项

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

  用于指定数据文件存放在本地磁盘的绝对路径。
 - --file-encoding **'** ***encode_name*** **'**

  用于表示导出数据文件时使用的文件编码，该编码不是数据库编码。命令行指定该选项时，需要在参数值前后加上单引号。例如：`--file-encoding 'GBK'`。默认值： ***UTF-8*** 。
 - --ctl-path ' ***control_path*** **'**

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

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

  用于标识导出 DDL 文件。DDL 文件是指导出的数据库对象定义文件，文件的命名规范为 ***对象名-schema.sql*** 。命令行指定该选项时，表示仅导出数据库对象定义，不会导出数据。导出多个表对象定义时，建议 `--thread` 选项的参数值不超过 4。并发数太大会影响访问 sys 租户下的内部视图，导出时会出现超时错误。
 - --sql

  用于标识导出 SQL 格式的数据文件。SQL 文件是指数据按照 INSERT 语句格式存储，文件的命名规范为 ***表名.sql*** 。文件的内容是每一行表数据对应一条可执行的 INSERT 语句。SQL 文件在内容格式上明显区别于 DDL 文件。建议该选项搭配 `--table` 选项使用。如果搭配 `--all` 选项时，OBDUMPER 只会导出表中的数据，不会导出数据库对象定义。
 - --orc

  用于标识导出 ORC 格式的数据文件。ORC 文件是指数据按照列格式进行存储，文件的命名规范为 ***表名.orc*** 。请参考 [Apache ORC](https://orc.apache.org/specification/ORCv1/) 格式定义。ORC 格式默认全部使用 `String` 类型压缩存储。
 - --par

  用于标识导出 Parquet 格式的数据文件。Parquet 文件是指数据按照列格式进行存储，文件的命名规范为 ***表名.par*** 。请参考 [Apache Parquet](https://parquet.apache.org/docs/file-format/) 格式定义。Parquet 格式默认全部使用 `String` 类型压缩存储。
 - --csv

  用于标识导出 CSV 格式的数据文件。CSV 文件是指数据按照标准的 CSV 格式存储，文件的命名规范为 ***表名.csv*** 。有关 CSV 格式规范，请参考 RFC 4180 中的定义。CSV 格式最容易出错的是定界符，通常使用的定界符是单引号或者双引号。如果数据中存在定界符，必须做转义处理，即指定转义符，请参考 CSV 格式相关的符号选项。强烈建议使用 CSV 格式。建议该选项搭配 `--table` 选项使用。如果搭配 `--all` 选项时，OBDUMPER 只会导出表中的数据，不会导出数据库对象定义。
 - --cut

  用于标识导出 CUT 格式的数据文件。CUT 文件是指数据使用字符串进行分隔的格式，文件的命名规范为 ***表名.dat*** 。建议该选项搭配 `--table` 选项使用。如果搭配 `--all` 选项时，OBDUMPER 只会导出表中的数据，不会导出数据库对象定义。

  > **注意**
  >  CUT 格式要求数据整行存放。如果字段分隔符是单个字符时，数据中出现分隔符、回车或者换行等特殊字符，OBDUMPER 会将数据中的特殊字符进行转义。例如：数据为 `abc|def`，分隔符为 `|`，则导出的数据为 `abc\|def`。
 - --table-group '***table_group_name [,table_group_name...]***'|--table-group '*****'

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

  用于标识导出所有的数据库对象定义和表数据。该选项与 `--ddl` 搭配使用时，表示导出所有的数据库对象定义；该选项与 `--csv`, `--sql`, `--cut` 任意一种数据格式选项搭配使用时，表示按照对应的格式导出所有表中的数据。如果需要导出所有的数据库对象定义和表数据，可指定 `--all`, `--ddl` 选项再搭配任意一种数据格式选项。

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

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

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

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

  用于标识导出 ***序列*** 定义。除了不支持导出数据外，其它描述同 `--table` 选项。目前仅适用于 OceanBase Oracle 模式。
 - --synonym ' ***synonym_name [, synonym_name...]*** ' | --synonym ' ***** '

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

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

  > **说明**
  >  仅 OceanBase Oracle 2.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 2.2.30 及之后版本支持导出函数定义。
 - --procedure ' ***procedure_name [, procedure_name...]*** ' | --procedure ' ***** '

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

  > **说明**
  >  OceanBase Oracle 所有版本均支持导出存储过程定义；OceanBase MySQL 2.2.30 及之后版本支持导出存储过程定义。
 - --drop-object

  用于标识导出 DDL 文件时，在数据库对象创建语句前插入 DROP 语句。该选项仅与 `--ddl` 选项搭配使用。
 - --snapshot

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

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

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

  > **注意**
  >  指定分区导出时，对于二级分区表需要指定二级分区名，无法按照一级分区名导出。如果是模版二级分区，对应的分区名为：一级分区名+s+二级分区名。
 - --query-sql **'** ***select_statement*** **'**

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

  用于导出 SCN 事务点之后的数据。该选项仅与任意一种数据格式选项搭配使用，不可与 `--query-sql` 选项搭配使用。仅适用于 OceanBase Oracle 模式。
 - --flashback-timestamp **'** ***timestamp_string*** **'**

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

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

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

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

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

  > **注意**
  >  CHECKPOINT.bin 文件是工具运行时生成的保存点文件，路径位于`-f`指定的目录中。如果 CHECKPOINT.bin 文件不存在，无法使用该选项。
 - --distinct

  用于过滤表中的重复数据，仅与 `--cut` 选项搭配使用。

  > **注意**
  >  该选项已废弃，请勿使用。
 - --weak-read

  用于标识从备副本导出数据。OBDUMPER 3.1.0 之前版本仅与 ODP 3.1.2 及之后版本搭配使用。OBDUMPER 3.1.0 及之后版本需要修改 conf/session.properties 文件中的参数 `ob.proxy.route.policy=follower_first`。关于 session.properties 文件的使用方法，请参考 OBDUMPER **使用示例** 中的 **设置会话级别变量** 。
 - --file-name **'** ***file_name*** **'**

  用于导出数据时将每一张表对应的子文件分别合并成一个大文件。

  #### 说明

     - 指定该选项时，文件名中支持包含后缀名。例如：--file-name `test.txt`。
     - 指定该选项为自定义路径时，导出的数据无法通过 OBLOADER 导入整个目录，因指定自定义路径会改变 OBDUMPER 生成的目录结构，OBLOADER 不能识别。  

  示例如下：

  | **用法** | **说明** | **示例** |
  | --- | --- | --- |
  | --file-name {file_name} | 仅在导出单表时使用，或在导出单个 Schema 时使用。   合并单表导出的子文件为 1 个文件，文件名由 file_name 指定；不会移动 Schema 与 Record 的导出路径。 | 满足以下条件：    - -f='/home/admin/foo'   - --file-path='custom.dat'   - --table='t_origin'任务结果：表 't_origin' 的所有记录文件被合并到 '/home/admin/foo/data/{schema}/TABLE/custom.dat'。 |
  | --file-name {*} | 导出单表多表均可使用。   按照表名合并导出的子文件为 n 个文件，n 等于导出表的数量，文件名与表名相同；不会移动 Schema 与 Record 的导出路径。 | 满足以下条件：    - -f='/home/admin/foo'   - --file-path='*'   - --table='*'任务结果：所有记录文件被按表名分组合并到 '/home/admin/foo/data/{database}/TABLE' 路径下；所有 Schema 文件保持原始位置。   > **注意**   > 不建议 `--file-name '*'` 与 `--skip-check-dir` 选项搭配使用，因指定 `--skip-check-dir` 选项会合并该路径下已有的同表名数据文件导致数据重复等问题。 |
  | --file-name {file_path} | 仅在导出单表，或在导出单个 Schema 时使用；可以为相对或绝对路径；仅在没有指定 --ddl 时使用；区分导出 Schema 与 Record 的场景：    1. 合并单表导出的子文件为 1 个文件，并移动该文件到 file_path 指定的文件路径。   2. 如果单独指定 --ddl 但未指定任何的数据格式，则仅将导出的 Schema 文件移动到 file_path 指定的文件路径。 | - 导出 Schema，满足以下条件：          - --table='custom'         - -f='/home/admin/foo'         - --file-name='/home/admin/bar/custom.ddl'任务结果：表 'custom' 的 DDL 语句被导出到'/home/admin/bar/custom.ddl'。   - 导出 Record，满足以下条件：          - --table='custom'         - -f='/home/admin/foo'         - --file-name='/home/admin/bar/custom.dat'任务结果：导出的记录文件被合并到 '/home/admin/bar/custom.dat'。 |
  | --file-name {directory_path} | **要求，目录必须以 `/` 结尾，且目录中不含 `\*`。**   导出单表多表均可使用；可以为相对或绝对路径；按照表名合并导出的子文件为 n 个文件，n 等于导出表的数量，文件名与表名相同，并移动这些文件到 directory_path 指定的目录路径。 | 满足以下条件：    - -f='/home/admin/foo'   - --file-path='/home/admin/bar/'   - --table='*'任务结果：所有记录文件被按表名分组合并，并与所有 Schema 文件一同移动到 '/home/admin/bar/' 路径下。 |

- --max-file-size ***int_num***

  用于标识单个文件的大小限制。导出的数据超过该选项值时停止导出。
 - --skip-check-dir

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

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

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

  用于标识导出空表时生成一份空文件。未指定该选项时，导出空表不会生成任何文件。
 - --add-extra-message

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

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

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

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

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

  用于表示导出数据时排除指定的数据类型。
 - --include-column-names **'** ***column_name [, column_name...]*** **'**

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

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

  > **注意**
  >  指定的列名需要与表定义中的列名大小写保持一致。
 - --skip-header

  用于标识忽略导出表中的字段作为 CSV 文件头。该选项仅与 `--csv` 选项搭配使用。
 - --trail-delimiter

  用于标识导出的数据行是否以分隔符结尾。该选项仅与 `--cut` 或者 `--csv` 选项搭配使用。
 - --null-string ' ***null_replacer_string*** '

  用于标识将 `NULL` 替换为指定字符。该选项仅与 `--csv` 或者 `--cut` 选项搭配使用。默认值： ***\N*** 。
 - --empty-string ' ***empty_replacer_string*** '

  用于标识将空字符（' '）替换为指定字符。该选项仅与 `--csv` 选项搭配使用。默认值： ***\E*** 。
 - --line-separator ' ***line_separator_string*** '

  用于自定义数据文件换行符，该选项的默认值与系统平台相关，仅包括： ***\r*** , ***\n*** , ***\r\n*** 三种可选的值。
 - --column-separator ' ***column_separator_char*** '

  用于指定列分隔字符串。该选项仅支持单字符，仅与 `--csv` 选项搭配使用。默认值：逗号。
 - --escape-character ' ***escape_char*** '

  用于指定转义字符。该选项仅支持单字符，仅与 `--csv` 或者 `--cut` 选项搭配使用。默认值：反斜杠。
 - --column-delimiter ' ***column_delimiter_char*** '

  用于指定字段定界符。该选项仅支持单字符，仅与 `--csv` 选项搭配使用。默认值：单引号。
 - --column-splitter ' ***split_string*** '

  用于指定分隔字符串。该选项仅与 `--cut` 选项搭配使用。
 - --oss-point ' ***oss_endpoint_string*** '

  用于标识 OSS 存储服务的连接地址。该选项必须与 `--access-key`, `--secret-key` 搭配使用，用于连接 OSS 云存储服务。
 - --access-key ' ***access_key_string*** '

  用于标识连接 OSS 服务的访问者。该选项必须与 `--oss-endpoint`, `--secret-key` 搭配使用，用于连接 OSS 云存储服务。
 - --secret-key ' ***secret_key_string*** '

  用于标识连接 OSS 服务的密钥串。该选项必须与 `--oss-endpoint`, `--access-key` 搭配使用，用于连接 OSS 云存储服务。
 - --bucket-uri ' ***bucket_uri_string*** '

  用于标识 OSS 存储空间的资源位置。该选项必须与 `--oss-endpoint`, `--access-key`, `--secret-key` 搭配使用，表示数据位于 OSS 云存储的指定位置中。
 - --date-value-format

  用于控制 Date 类型的导出格式。OceanBase MySQL 模式下的默认格式：yyyy-MM-dd，OceanBase Oracle 模式下的默认格式：yyyy-MM-dd HH:mm:ss。
 - --time-value-format

  用于控制 MySQL 模式下 Time 类型的导出格式。默认格式：HH:mm:ss，精度值与表定义中的精度值一致。
 - --datetime-value-format

  用于控制 MySQL 模式下 Datetime 类型的导出格式。默认格式：yyyy-MM-dd HH:mm:ss，精度值与表定义中的精度值一致。
 - --timestamp-value-format

  用于控制 MySQL/Oracle 模式下 Timestamp 类型的导出格式。默认格式：yyyy-MM-dd HH:mm:ss，精度值与表定义中的精度值一致。
 - --timestamp-tz-value-format

  用于控制 Oracle 模式下 Timestamp With Time Zone 类型的导出格式。默认格式：yyyy-MM-dd HH:mm:ss.SSSSSS，精度值与表定义中的精度值一致。
 - --timestamp-ltz-value-format

  用于控制 Oracle 模式下 Timestamp With Local Time Zone 类型的导出格式。默认格式：yyyy-MM-dd HH:mm:ss，精度值与表定义中的精度值一致。
 - --exclude-virtual-columns

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

## 性能选项

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

  OBDUMPER 4.0.0 之后的版本用于指定任务分片的大小。默认值：1000000。
 - --thread ***int_num***

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

  用于标识文件块的切分阈值。如果导出的数据文件超过该阈值，则依次生成其它子文件。默认值：1GB。该选项对于 ORC 和 Parquet 格式不生效。
 - --parallel-macro ***int_num***

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

## 其它选项

- -h, --help

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

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

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