暂无图片
使用 OBDUMPER 和 OBLOADER 工具对 OceanBase 的对象和数据进行导出导入
最近更新:2024-02-20 11:47:18

适用范围

OceanBase V3 和 V4 版本。 导数工具 4.2.8。 image-20240128104959203.png

工具介绍

OBDUMPER

OBDUMPER 是一款使用 Java 语言开发的客户端工具,目前该工具仅适用于 OceanBase 数据库。用户可以使用该工具将 OceanBase 数据库中定义的对象和表数据以指定的文件格式导出到存储介质中。

OBLOADER

OBLOADER 是一款使用 Java 语言开发的客户端工具,目前该工具仅适用于 OceanBase 数据库。用户可以将存储介质中的数据库对象的定义文件和表数据文件导入到 OceanBase 数据库中。 通常我们推荐 OBLOADER 与 OBDUMPER 搭配使用。如果用户希望借助于 OBLOADER 完成数据迁移工作,它也兼容 mysqldump,Mydumper 等客户端工具导出的 CSV 格式的文件。 OBLOADER 专门优化了数据的导入性能,内置多种数据预处理函数,自动容错保证数据导入的稳定性,以及提供较为丰富的监控信息,以便于用户实时观测到数据文件导入的性能和进度。

下载工具

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

image-20240128104959203.png

运行环境

环境要求
系统版本支持 Linux/macOS/Windows 7 及之后版本。
Java 环境请安装 Oracle JDK 1.8.0_3xx,配置 JAVA_HOME 环境变量。
字符集推荐使用 UTF-8 文件编码。
JVM 参数请编辑 bin/obloader 和 bin/obdumper 脚本修改 JVM 内存参数,避免出现 JVM 内存不足。
  • OpenJDK 1.8 部分小版本存在严重的 GC Bug,运行导入导出工具会发生 OOM 或者夯住,强烈建议安装 Oracle JDK 1.8.0_3xx 及之后的版本。
  • 以下测试使用的 Java 环境:jdk-8u391-linux-x64.tar.gz
# 解压java软件包
[root@ocp ~]$  cd /ob-software
[root@ocp /ob-software]$  tar -xvf jdk-8u391-linux-x64.tar.gz

# 配置环境变量
[root@ocp /ob-software]$  vi ~/.bash_profile
export JAVA_HOME=/ob-software/jdk1.8.0_391
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.tar:$JAVA_HOME/lib/tools.jar

# 生效环境变量
[root@ocp /ob-software]$  source ~/.bash_profile

# 查看当前java版本
[root@ocp /ob-software]$  java -version
java version "1.8.0_391"
Java(TM) SE Runtime Environment (build 1.8.0_391-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.391-b13, mixed mode)

安装工具

  • 安装即是解压工具软件包
[root@ocp /ob-software]$  unzip ob-loader-dumper-4.2.8-RELEASE.zip

修改 JVM 内存参数

JVM 内存太小可能会影响导入导出的性能,甚至影响导入导出功能的稳定性。

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

    [root@ocp /ob-software/ob-loader-dumper-4.2.8-RELEASE/bin]$  ll
    total 20K
    -rwxr-xr-x 1 root root 3.3K Jan 18 10:20 obdumper       # <<<<<<<<<<
    -rwxr-xr-x 1 root root  837 Jan 18 10:20 obdumper-debug
    -rwxr-xr-x 1 root root 2.8K Jan 18 10:20 obloader       # <<<<<<<<<<
    -rwxr-xr-x 1 root root  892 Jan 18 10:20 obloader-debug
    drwxr-xr-x 2 root root 4.0K Jan 18 10:20 windows
    
    • Linux 操作系统下,编辑 {ob-loader-dumper}/bin/ 目录下的 obloaderobdumper 脚本。
    • Windows 操作系统下,编辑 {ob-loader-dumper}/bin/windows/ 目录下的 obloader.batobdumper.bat 脚本。
  2. 修改 JVM 参数。

    强烈建议将 JVM 内存修改为机器可用内存的 60%。擅长 Java 性能调优的用户可以按需调整 JAVA_OPTS 选项中的 JVM 参数。

    示例:将 JVM 堆内存设置为 64G。

    JAVA_OPTS="$JAVA_OPTS -server -Xms64G -Xmx64G -XX:MetaspaceSize=512M -XX:MaxMetaspaceSize=512M -Xss512K";
    

    其中,-Xms64G -Xmx64G 为设置的 JVM 参数。默认值:-Xms4G -Xmx4G

测试OBDUMPER

必选选项

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

示例语句:

$./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 为存储路径。
  • 文件格式选项包括:[--sql, --csv, --cut, --orc, --par, --pos],导出数据时必须指定文件格式选项。
  • 本文测试的OBDUMPER 版本是 4.2.8,从此版本开始导数⼯具⽀持以<user>@<tenant>#<cluster>的三段式格式字符串指定 -u/--user 的值。 同时为了向后兼容,仍可继续使用 -t/--tenant-c/--cluster 选项。

对象类型选项的参数搭配

......