ob-loader-dumper未恢复完毕

【 使用环境 】生产环境
【 OB or 其他组件 】
OceanBase Deploy 2.4.0
Oceanbase 5.2.7.25-OceanBase_CE-v4.2.1.0
ob-loader-dumper-4.3.0
【 使用版本 】
OceanBase Deploy 2.4.0
Oceanbase 5.2.7.25-OceanBase_CE-v4.2.1.0
ob-loader-dumper-4.3.0
【问题描述】
使用导数工具备份数据库正常,表定义表数据均无错误,


但是使用loader恢复到备份数据,报了很多错,数据也不全,没有总结的结束表,目前看完全没有结束

到如上图就停了。

【复现路径】
有一个很大的表,数据大概是 6800万,下面提供了恢复时的报错日志,其中有很多ERROR:

【附件及日志】
ob-loader-dumper.error.zip (3.2 KB)

从您上面的报错日志来看OutOfMemory :java heap space,建议导入大量数据之前查看一下obloader的java启动参数配置情况,默认值:-Xms4G -Xmx4G,调整大一点。
查看示例方法:

vim bin/obloader

JAVA_OPTS="$JAVA_OPTS -server -Xms4G -Xmx4G -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=128M -Xss352K"

可以试一下将参数修改为可用物理内存的 60%以上,再导入试试。

当然大批量数据导入,还要注意 数据库内核调优。导入数据的性能会严重受到租户的增量内存写入速度的影响,甚至内存打爆也会报错。

  • 增量内存不足时,数据库会触发合并或者转储。合并比较消耗性能,尽量不要触发。可开启内存的转储,并将转储的次数设置为 100 以上。
  • 增量内存使用率达到租户限速阈值时,导入性能同时会下降。
  • 增量内存使用率已满时,数据很容易导入失败。建议租户限速的阈值高于 90 。转储相关参数的设置跟租户内存的大小、写入速度都有关系,需根据实际情况进行调优。