1. 环境准备与工具安装
第一次接触OceanBase数据迁移时,我像大多数运维工程师一样,以为只要下载好obdumper和obloader就能直接开干。结果刚上手就被环境配置来了个下马威。这里分享几个真实踩坑后总结的避坑要点。
Java环境是第一个拦路虎。记得当时执行脚本突然跳出"The JAVA_HOME environment variable is NOT defined correctly"的报错时,我整个人都是懵的。后来发现很多Linux系统自带的OpenJDK路径非常隐蔽,用常规的which java根本找不到真实安装路径。这里教大家一个实测有效的定位方法:
bash复制readlink -f $(which java) | sed 's|/bin/java||'
这个命令链能直接输出JAVA_HOME的标准路径。配置时有个细节特别容易忽略——要在/etc/profile里同时设置JAVA_HOME和PATH变量,而且必须执行source /etc/profile立即生效。有次我忘了执行source命令,折腾两小时才发现问题,血泪教训啊。
工具权限问题也相当隐蔽。从官网下载的obdumper/obloader压缩包解压后,默认是没有执行权限的。我遇到过直接运行报"Permission denied",还以为是用户权限问题,结果发现只需要两条命令:
bash复制chmod +x obdumper obloader
./obdumper -h 172.16.0.1 -P 2881 -u root -D test_db
注意前面的./绝对不能省,这和Windows下的使用习惯完全不同。建议在Linux环境使用时,先把这两个工具放到/usr/local/bin目录并建立软链接,这样在任何路径下都能直接调用。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 导出操作实战技巧
2.1 基础命令参数解析
obdumper的基础命令看着简单,但参数组合使用有门道。新手最容易犯的错误就是无脑用--all参数导出全部内容。有次我导出一个200G的数据库,结果因为没限制导出范围,不仅耗时8小时,还差点把磁盘撑爆。后来摸索出几个实用参数组合:
bash复制./obdumper -h 172.16.0.1 -P
