开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第7天,点击查看活动详情
第二章:OceanBase产品家族及基础概念
2. 导入数据
2.16 OBLOADER导入工具使用手册
2.16.1 运行环境
| 环境 | 要求 |
|---|---|
| 系统版本 | 支持在 Linux、MacOSX 和 Windows 7+ 系统上运行。个人 PC 机仅供测试,大规模数据的导入建议使用高规格的机器。 |
| Java 环境 | 安装 JDK 1.8+,并且在系统环境变量中配置 JAVA_HOME。 |
| 字符集 | 请使用 UTF-8。 |
| JVM参数 | 可以根据实际的数据量,在脚本中调整 JVM 内存参数。 |
2.16.2 权限
使用 OBLOADER 连接 OceanBase 数据库导入数据时,需要以下权限: • 连接 OceanBase 数据库所用的的用户账号需要具备 SELECT、 INSERT、 MERGE 和 UPDATE 等命令的运行权限 • OBLOADER 需使用 root@sys 或 proxyro@sys 用户查询系统表,因此数据导入的命令中需指定 --sys-user 和 --sys-password 参数的值(限制模式除外)。
2.17 OBLOADER导入工具语法
[admin@localhost]>./obloader -h <主机IP> -P <端口> -u <用户> -p <密码> --sys-password <sys 租户下的账户密码> -c <集群> -t <租户> -D <Schema 库名> [--ddl] [--csv|--sql] [--all|--table '表名'] -f<数据文件或者目录>
| 参数 | 说明 |
|---|---|
| --ddl | 导入 DDL 文件。默认文件后缀是 -schema.sql |
| --sql | 导入 SQL 文件。默认文件后缀是 .sql |
| --all | 导入所有的数据库对象的结构定义 |
| --sys-password | 指定 sys 租户下某用户的密码,默认为空 |
2.18 OBLOADER导入工具举例
2.18.1 集群信息
| 数据库信息 | 示例值 |
|---|---|
| 集群 | Cluster A |
| OBProxy 地址 | 192.168.0.0 |
| OBProxy 端口号 | 2883 |
| 租户名 | TenantA |
| sys租户下某用户的密码(至少只读权限) | Passroot123(比如root@sys 用户的密码 。) |
| 业务租户下的某用户账号(要求读写权限) | userA |
| 业务租户下的某用户 | 密码 Pass123 |
| Schema 名称 | USERA |
2.18.2 示例
2.18.2.1 将 /home/admin/LOAD-1/ 目录中所有的结构信息导入到 Schema USERA中
[admin@localhost]> ./obloader -h 192.168.0.0 -P 2883 -u userA -p Pass123 --sys-password Passroot123 -c ClusterA -t tenantA -D USERA --ddl --all -f /Users/admin/LOAD-1/
2.18.2.2 将 /home/admin/LOAD-1/ 目录中的 CSV 数据文件,导入到 Schema USERA 中
[admin@localhost]> ./obloader -h 192.168.0.0 -P 2883 -u userA -p Pass123 --sys-password Passroot123 -c ClusterA -t tenantA -D USERA --csv --all -f /Users/admin/LOAD-1/
2.18.2.3 将 /home/admin/LOAD-1/ 目录中的 SQL 数据文件,导入到 Schema USERA 中
[admin@localhost]> ./obloader -h 192.168.0.0 -P 2883 -u userA -p Pass123 --sys-password Passroot123 -c ClusterA -t tenantA -D USERA --sql --all -f /Users/admin/LOAD-1/
2.19 OBDUMPER简介
OBDUMPER可以把OceanBase中的数据按照SQL或者CSV格式导出到文件中。同时,还可以利用该工具把数据库中定义的对象导出到文件中。与 MyDumper 和 SQLDeveloper 等导出工具相比,OBDUMPER 在功能和性能上有着以下明显的的优势: • 高性能:在无主键表和分区表等场景下,已提供针对性的性能优化 • 功能多:提供数据限量导出、数据格式多样和全局一致性非锁定导出等功能
2.19.1 核心功能
•支持导出数据库中对象的结构定义语句(DDL) •支持将表中的数据按照 CSV 或者 SQL 格式导出到文件中 •对于分区表,可以指定分区名导出部分分区内的数据 •可以指定全局的过滤条件,仅导出满足条件的数据 •支持配置简单的数据处理规则 •支持全局一致非锁定读取,保证导出的数据的全局一致性 •支持基于 SCN/TIMESTAMP 闪回查询,保证导出数据的全局一致性 •支持通过限制模式导出数据,限制模式不依赖系统租户下的任意账号信息 •支持 OBDUMPER 将数据导出并上传到 Aliyun OSS 的功能
2.19.1.1 运行环境
| 环境 | 要求 |
|---|---|
| 系统版本 | 支持在 Linux、MacOSX 系统上运行。个人 PC 机仅供测试,导出大规模的数据,建议使用高规格的机器。 |
| Java 环境 | 安装 JDK 1.8+,并且在系统环境变量中配置 JAVA_HOME。 |
| 字符集 | 请使用 UTF-8。 |
| JVM 参数 | 可以根据实际的数据量,在脚本中调整 JVM 内存参数。 |
2.19.1.2 权限
使用 OBDUMPER 连接 OceanBase 数据库导出数据时,需要以下权限: • 连接 OceanBase 数据库所用的的用户账号需要具备 SELECT 命令的运行权限 • OBDUMPER 需要使用 root@sys 或者 proxyro@sys 用户查询系统表,所以数据导出的命令中需要指定 --sys-user 和 --sys-password 参数的值(限制模式除外)。
2.19.1.3 其他
外键定义包含多列,导出时不保证列的顺序。例如: FOREIGN KEY(c1,c2) REFERENCE (c1,c2)导入导出大规模的数据量时,请在运行的脚本中,修改虚拟机的内存参数(默认:-Xms4G -Xmx4G)导出数据时,建议用户先触发一次合并,这样可以在一定程度上提升导出的性能
2.20 OBDUMPER语法
[admin@localhost]>./obdumper -h <主机IP> -P <端口> -u <用户> -p <密码> --sys-password <sys租户某用户密码> -c <集群> -t <租户> -D <库名> [--ddl] [--csv|--sql--cut]] [--all|--table '表名'] -f<数据目录>
| 参数 | 说明 |
|---|---|
| --ddl | 导出 DDL 文件,默认的文件后缀是 -schema.sql |
| --sql | 导出 SQL 文件,默认的文件后缀是 .sql |
| --all | 导出所有的数据库对象的结构。默认为表、视图、触发器、函数、存储过程、序列和同义词等 |
| --sys-password | 指定 sys 租户下某用户的密码。默认为空 |
官网有详细的文档介绍其他参数,www.oceanbase.com/docs/obload…
2.21 OBDUMPER应用举例
2.21.1 集群信息
| 数据库信息 | 示例值 |
|---|---|
| 集群名 | Cluster A |
| OBProxy 地址 | 192.168.0.0 |
| OBProxy 端口 | 2883 |
| 租户名 | TenantA |
| sys 租户下某用户的密码(至少只读权限) | Passroot123(比如root@sys 用户的密码 。) |
| 业务租户下的某用户账号(要求读写权限) | userA |
| 业务租户下的某用户密码 | Pass123 |
| Schema 名称 | USERA |
2.21.2 示例
2.21.2.1 导出 Schema USERA 中所有对象的结构语句至 /home/admin/DUMP-1/ 目录中
[admin@localhost]> ./obdumper -h 192.168.0.0 -P 2883 -u userA -p Pass123 --sys-password Passroot123 -c ClusterA -t tenantA -D USERA --ddl --all -f/Users/admin/DUMP-1/
2.21.2.2 导出 Schema USERA 中所有对象的数据至 /home/admin/DUMP-1/ 目录中,数据格式为 SQL 格式
[admin@localhost]> ./obdumper -h 192.168.0.0 -P 2883 -u userA -p Pass123 --sys-password Passroot123 -c ClusterA -t tenantA -D USERA --sql --all -f/Users/admin/DUMP-1/
2.21.2.3 导出 Schema USERA 中所有对象的结构及数据至 /home/admin/DUMP-1/ 目录中,数据格式为 CSV 格式
[admin@localhost]> ./obdumper -h 192.168.0.0 -P 2883 -u userA -p Pass123 --sys-password Passroot123 -c ClusterA -t tenantA -D USERA --csv --all -f/Users/admin/DUMP-1/