---
title: "使用示例 | OceanBase 文档中心"
description: 使用示例 本篇旨在介绍 OBLOADER 支持的常见业务场景并提供对应的使用示例。 下表为示例中使用的数据库信息： 数据库信息 示例值 集群名 cluster_a OceanBase DataBase Proxy (ODP) 主机地址 10.0.0.0 OceanBase DataBase Proxy (ODP) 端…
---
切换语言

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

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

# 使用示例

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

本篇旨在介绍 OBLOADER 支持的常见业务场景并提供对应的使用示例。

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

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

## 导入 DDL 定义文件

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

**示例语句**：

```shell
[admin@localhost]> ./obloader -h 10.0.0.0 -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`。

## 导入 CSV 数据文件

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

**示例语句**：

```shell
[admin@localhost]> ./obloader -h 10.0.0.0 -P 2883 -u test -p ****** --sys-user **u*** --sys-password ****** -c cluster_a -t mysql -D USERA --csv --table '*' -f /output

```

## 导入 SQL 数据文件

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

**示例语句**：

```shell
[admin@localhost]> ./obloader -h 10.0.0.0 -P 2883 -u test -p ****** --sys-user **u*** --sys-password ****** -c cluster_a -t mysql -D USERA --sql --table '*' -f /output

```

## 导入 POS 数据文件

**场景描述**：将 `/output` 目录下所有已支持的 POS 数据文件导入到 Schema USERA 中（OceanBase 4.0.0.0 之前的版本要求提供 sys 租户的密码）。导入时需要指定控制文件所在的路径，同时使用 `|` 作为列分隔符。POS 数据文件（默认后缀名 .dat）中的数据是按照固定长度的字节偏移位置所组织的数据，导入时需使用控制文件定义每个字段的固定长度，可通过文本编辑器等工具直接打开。

**示例语句**：

```shell
./obloader -h 10.0.0.0 -P 2883 -u test -p ****** --sys-user **u*** --sys-password ****** -c cluster_a -t mysql
-D USERA --table '*' -f /output --pos --column-splitter '|' --ctl-path /output

```

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

## 导入 CUT 数据文件

**场景描述**：将 `/output` 目录下所有已支持的 CUT 数据文件导入到 Schema USERA（OceanBase 4.0.0.0 之前的版本要求提供 sys 租户的密码）。导入时需要指定控制文件所在的路径，同时使用 `|@|` 作为列分隔字符串。CUT 数据文件（后缀名 .dat）中的数据是以单个字符或者字符串分隔的数据文件，可通过文本编辑器等工具打开。

**示例语句**：

```shell
./obloader -h127.1 -P2881 -u test -p ****** --sys-user **u*** --sys-password ****** -c cluster_a -t mysql -D USERA --table '*' -f /output --cut --column-splitter '|@|' --ctl-path /output

```

## 公共云导入模式和数据

**场景描述**：***用户无法提供 sys 租户密码时***，将 `/output` 目录下所有已支持的数据库对象和数据导入到公共云 Schema USERA 中。

**示例语句**：

```shell
[admin@localhost]> ./obloader -h 10.0.0.0 -P 2883 -u test -p ****** -D USERA --ddl --csv --public-cloud --all -f /output

```

## 私有云导入模式和数据

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

**示例语句**：

```shell
[admin@localhost]> ./obloader -h 10.0.0.0 -P 2883 -u test -p ****** -c cluster_a -t mysql -D USERA --ddl --csv --no-sys --all -f /output

```

## 使用安全密钥文件

导数工具 3.1.0 及之后版本，支持使用密钥文件代替在命令行中直接指定 sys 租户的密码。具体步骤如下：

1. 利用 openssl 生成公私钥，并对 `sys-password` 加密。

   ```shell
   # 1.首先使用 genrsa 生成私钥
   openssl genrsa -out xxx.pem 1024

   # 2.利用私钥生成公钥
   openssl rsa -in xxx.pem -pubout -out xxx.pem

   # 3.对私钥进行格式转换，需配置到 properties 中
   openssl pkcs8 -topk8 -in xxx.pem -out xxx.pem -nocrypt

   # 4.利用公钥加密 sys-password 文件，并将加密过的密文输出到文件
   openssl rsautl -encrypt -pubin -inkey xxx.pem -in pwd.txt -out xxx.txt

   ```
 2. 修改 conf 目录下的 decrypt.properties 文件。

## 设置会话级别变量

```properties
# This variable is used to init session.
# The default value is 3 min.
ob.query.timeout.for.init.session=3

# This variable is used to init session.
# The default value is 3 min.
ob.trx.timeout.for.init.session=3

# This variable is used to query metadata, such as
#   for query database;
#   for query row key, primary key, macro range;
#   for query primary key;
#   for query unique key;
#   for query load status;
# The default value is 5 min.
ob.query.timeout.for.query.metadata=5

# This variable is used to dump record for CSV, CUT and SQL
# The default value is 24 hours
ob.query.timeout.for.dump.record=24

# This variable is used to dump record for query-sql
# The default value is 5 hours
ob.query.timeout.for.dump.custom=5

# This variable is used to execute DDL, such as load schema, truncate table
# The default value is 1 min
ob.query.timeout.for.exec.ddl=1

# This variable is used to execute DML, such as delete table
# The default value is 1 hour
ob.query.timeout.for.exec.dml=1

# This variable is used to dump record for CSV, CUT and SQL
# The default value is 24 hours
ob.trx.timeout.for.dump.record=24

# This variable is used to dump record for query-sql
# The default value is 5 hours
ob.trx.timeout.for.dump.custom=5

# This variable is used to dump record for CSV, CUT and SQL
# The default value is 24 hours
ob.net.read.timeout.for.dump.record=24

# This variable is used to dump record for query-sql
# The default value is 5 hours
ob.net.read.timeout.for.dump.custom=5

# This variable is used to dump record for CSV, CUT and SQL
# The default value is 24 hours
ob.net.write.timeout.for.dump.record=24

# This variable is used to dump record for query-sql
# The default value is 5 hours
ob.net.write.timeout.for.dump.custom=5

# This variable is used to set session variable ob_proxy_route_policy
# The default value is follower_first
ob.proxy.route.policy=follower_first

# This variable is used to set jdbc url option useSSL
# The default value is false
jdbc.url.use.ssl=false

# This variable is used to set jdbc url option useUnicode
# The default value is true
jdbc.url.use.unicode=true

# This variable is used to set jdbc url option socketTimeout
# The default value is 30 min
jdbc.url.socket.timeout=30

# This variable is used to set jdbc url option connectTimeout
# The default value is 3 min
jdbc.url.connect.timeout=3

# This variable is used to set jdbc url option characterEncoding
# The default value is utf8
jdbc.url.character.encoding=utf8

# This variable is used to set jdbc url option useCompression
# The default value is true
jdbc.url.use.compression=true

# This variable is used to set jdbc url option cachePrepStmts
# The default value is true
jdbc.url.cache.prep.stmts=true

# This variable is used to set jdbc url option noDatetimeStringSync
# The default value is true
jdbc.url.no.datetime.string.sync=true

# This variable is used to set jdbc url option useServerPrepStmts
# The default value is true
jdbc.url.use.server.prep.stmts=true

# This variable is used to set jdbc url option allowMultiQueries
# The default value is true
jdbc.url.allow.multi.queries=true

# This variable is used to set jdbc url option rewriteBatchedStatements
# The default value is true
jdbc.url.rewrite.batched.statements=true

# This variable is used to set jdbc url option useLocalSessionState
# The default value is true
jdbc.url.use.local.session.state=true

# This variable is used to set jdbc url option zeroDateTimeBehavior
# The default value is convertToNull
jdbc.url.zero.datetime.behavior=convertToNull

# This variable is used to set jdbc url option verifyServerCertificate
# The default value is false
jdbc.url.verify.server.certificate=false

# This variable is used to set jdbc url option usePipelineAuth
# The default value is false
jdbc.url.use.pipeline.auth=false

# This variable is used to set jdbc url option socketProxyHost
# The default value is null
jdbc.url.socks.proxy.host=null

# This variable is used to set jdbc url option socketProxyPort
# The default value is null
jdbc.url.socks.proxy.port=null

```

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