首批通过分布式安全可靠测评,为关键业务系统打造
准备环境
更新时间:2024-05-16 10:26:21
运行导数工具前,请确认已拥有合适的运行环境和运行权限。
运行环境
| 环境 | 要求 |
|---|---|
| 系统版本 | 支持 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)错误,运行导入导出工具时可能会出现内存溢出或程序卡死。为了避免这些问题,我们建议您安装 OpenJDK 1.8 的最新小版本。
如果您正在使用的是麒麟等国产操作系统,您需要将 JVM 参数(即 JAVA_OPTS)中的 GC 回收器从 G1 调整为 CMS,否则可能会出现 JVM 崩溃的问题。
如果您正在使用 obloader/obdumper V4.3.0 之前的版本,请编辑 bin/obloader 文件,将 GC 参数从 -XX:+UseG1GC 修改为 -XX:+UseConcMarkSweepGC。
如果您正在使用 obloader/obdumper V4.3.0 及之后的版本,请编辑 bin/obloader 文件,修改 GC_OPTS 参数。
运行权限
OBLOADER 运行权限
使用 OBLOADER 连接 OceanBase 数据库导入数据时,连接数据库的账号需要拥有 CREATE, SELECT, INSERT, UPDATE 等命令的执行权限。可通过 SHOW GRANTS 语句查看用户被授予的权限。示例语句:
obclient> SHOW GRANTS FOR user1;
+------------------------------------------+
| Grants for user1@% |
+------------------------------------------+
| GRANT CREATE ON *.* TO 'user1' |
| GRANT SELECT ON `db1`.* TO 'user1' |
| GRANT INSERT ON `db1`.* TO 'user1' |
| GRANT UPDATE ON `db1`.* TO 'user1' |
| GRANT SELECT ON `oceanbase`.* TO 'user1' |
+------------------------------------------+
2 rows in set
说明
如果是 OceanBase 数据库 MySQL 租户,导入数据前,用户需要具备
oceanbase数据库的查询权限。授权语句示例:GRANT SELECT ON `oceanbase`.* TO 'user1'。如果是 OceanBase 数据库 Oracle 租户,导入数据前,用户需要具备
SYS的查询权限。授权语句示例:GRANT SELECT ON "SYS".* TO 'user1'。- 使用 OBLOADER 连接 OceanBase 数据库 Oracle 租户导入数据库对象定义和数据时,建议使用数据库管理员(DBA)角色的账号连接数据库。
OBDUMPER 运行权限
使用 OBDUMPER 连接 OceanBase 数据库导出数据时,连接数据库的账号需要拥有 CREATE, SELECT 等命令的执行权限。可通过 SHOW GRANTS 语句查看用户被授予的权限。示例语句:
obclient> SHOW GRANTS FOR user1;
+------------------------------------------+
| Grants for user1@% |
+------------------------------------------+
| GRANT CREATE ON *.* TO 'user1' |
| GRANT SELECT ON `db1`.* TO 'user1' |
| GRANT SELECT ON `oceanbase`.* TO 'user1' |
+------------------------------------------+
2 rows in set
说明
- OBDUMPER 只有导出非表的数据库对象时,需要系统表的权限。
如果是 OceanBase 数据库 MySQL 租户,导出数据前,用户需要具备
oceanbase数据库的查询权限。授权语句示例:GRANT SELECT ON `oceanbase`.* TO 'user1'。如果是 OceanBase 数据库 Oracle 租户,导出数据前,用户需要具备
SYS的查询权限。授权语句示例:GRANT SELECT ON "SYS".* TO 'user1'。
- 使用 OBDUMPER 连接 OceanBase 数据库 Oracle 租户导出数据库对象定义时,建议使用数据库管理员(DBA)角色的账号连接数据库;使用 OBDUMPER 连接 OceanBase 数据库 Oracle 租户导出数据时,连接数据库的账号无角色要求。
其它说明
OceanBase 数据库 V4.0.0 之前的版本,导数工具命令行中需要指定
--sys-user,--sys-password选项。具体示例请参考 OBLOADER 命令行选项 和 OBDUMPER 命令行选项。
命令行选项
--sys-user,--sys-password必须使用 sys 租户下拥有查询系统表和查询视图权限的用户。