在日常工作中,我们经常需要将数据库中的对象和数据进行导入导出的操作。OceanBase 针对这种情况提供了专门的导数工具—— OBLOADER 和 OBDUMPER 来完成这项工作。日常导数据的工作是繁琐又细致,在导数据过程中您很容易遇到各种各样的问题。因此我们为大家提供了这篇导数工具的使用指导,本文将会从简单入门和性能调优两个方面指导大家使用 OceanBase 导数工具。
基础功能入门
连接方式
OBLOADER和 OBDUMPER 支持两种连接方式。第一种是连接至 ODP 代理服务,要求您在输入命令时必需指定 -c 集群名 选项;第二种是直连到 OBServer 节点,您在输入命令时无需指定 -c 集群名 选项。通常,我们强烈建议您在使用 OBLOADER 或者 OBDUMPER 工具时,通过连接到 ODP 代理服务来访问 OceanBase 数据库。
示例语句如下所示:
数据格式
OBLOADER和 OBDUMPER 支持三种数据格式,分别是 CSV 格式、Insert SQL 格式和 Delimited Text 格式。如何辨识这三种数据格式,请浏览另外一篇文档《准备好您的数据了吗?》。
下述以 OBLOADER 为例,展示了导入这三种格式数据的示例语句。
说明
--column-delimiter 选项在 CSV 格式中指定的是值定界符,即引号所包含的值域范围。--column-separator 选项在 CSV 格式中代表的是值分隔符。
--column-separator 选项仅用于 CSV 格式,分隔符只能使用单个字符。--column-splitter 选项仅用于 Delimited Text 格式,分隔符可以使用单个字符,也可以使用字符串。
下载并解压 OceanBase 导数工具后,只要输入上述必需的选项和参数,您就已经可以初步地使用导入导出工具。然而,当您处理大规模的数据库或者数据文件时,仅指定上述的基础选项参数显然是不够的。您还需要掌握一些性能调优的技巧,以便于更高效地完成数据导入导出操作。
导数性能优化
无论您正在使用的是 OBDUMPER 数据导出功能还是 OBLOADER 数据导入功能,我们都需要进行性能优化工作(主要就是调参)。这里涉及到两个环节的参数调整,第一个环节是调整 OceanBase 导数工具自身的参数,第二个环节是调整 OBServer 集群的参数。OceanBase 导数工具是由 Java 编写的工具,所以在运行 Bash 脚本之前,我们需要在 Bash 文件中修改 JVM 内存参数大小。通常,我们只需要修改 -Xms -Xmx 参数(默认值为 4 G),推荐将其修改为宿主机 60% 可用物理内存大小即可。其它与 OceanBase 导数工具自身相关的参数选项和设置建议如下。
工具相关的选项
集群相关的参数
说明 无论是工具选项参数还是集群租户相关的参数,目前并没有绝对可用的经验值。我们也是根据实际的业务进行调参优化,以便于找到适合当前业务的最佳参数值。性能优化是一个逐步探索的过程。我们需要更多的耐心进行观察试验。 在数据导入或者导出后,以上系统变量和参数务必要重新修改为默认值。
文件巧妙地运用高级权限
这里主要讲 OceanBase 导数工具内部所依赖的数据库的用户权限。OceanBase导数工具区别于其他数据库厂商导数据工具的关键地方,在于它充分利用了 OceanBase 数据库内部的一些分布式的特性并进行了专门的性能优化。使用时,您必须提供root@sys 用户的密码或者配置供应商提供的秘钥文件,这样 OceanBase 导数工具在运行的过程中才能查询到数据库内部的系统信息。所以在输入命令行参数时,除了需要输入业务用户的密码以外,还需要输入 root@sys 用户的密码,例如 -p '业务用户的密码' --sys-password 'root@sys的密码'。
写在最后
关于OceanBase 导数工具更多的功能介绍和常见问题回答可以查看我们的官方文档(💡 OceanBase 配套工具即将发布,敬请期待~),文档地址如下:
OBLOADER 2.1.13 版本(最新版本):
OBDUMPER 2.1.13 版本(最新版本)