Version: 4.3.3.1-RELEASE
还原数据 obloader -h 192.168.xx.xx -P2881 --direct --parallel 4 --rpc-port 2882 -uroot -pxxx -D db --ddl --sql --all -f /dbbackup/DUMP/data/库名 遇到某些可能数据有问题的表,反复刷屏,进度Progress数字不再变化,感觉像卡住了,问题表也没法跳过,只有终止命令,是否有跳过表之类的选项?
有一份数据导入进度已经到94%卡住了,如果终止又得重头导,有办法不终止继续下去吗
这个问题要先确定数据导入是卡住还是很慢,如果进度条很长时间更新一点,可以使用OCP结合性能分析页面的数据库看看是不是数据库存在瓶颈。如果一直卡住不动,在刚才的基础上,如果性能视图资源利用率很低,几乎没有负载,说明导入出现问题了,如果有数据问题会打到日志里,如果日志中未出现报错,一般情况下是正常的。不过看你发的截图中的导入数据性能不是很高,建议结合OCP在看看性能数据和租户资源配置情况,obloader应该没有断点续传和导入过程中跳过的功能。@论坛小助手
根据您的描述和提供的信息,以下是针对 obloader 导入卡住问题的分析与建议:
1. 确认是否真的卡住
-
观察日志:从您提供的日志来看,
Direct load for table "trade_ord_attribute" waiting until begin phase is done...
和Direct load for table "pms_purchase_order_item" waiting until begin phase is done...
的信息反复出现,这可能表明某些表的导入在等待某个阶段完成。 -
检查性能视图:
- 使用 OCP 或者通过 SQL 查询
gv$sql_audit
表,查看当前正在执行的 SQL 是否存在长时间运行的情况。 - 检查 OBServer 的资源利用率(CPU、内存、IO 等),如果资源利用率很低,则可能是导入工具本身的问题;如果资源利用率高,则可能是数据库负载过高导致。
- 使用 OCP 或者通过 SQL 查询
2. obloader 是否支持断点续传或跳过问题表
根据文档库中的信息(参考 obloader/obdumper 文档):
- 断点续传:obloader 目前不支持断点续传功能。一旦导入中断,需要重新开始。
-
跳过问题表:obloader 没有直接提供跳过特定表的功能。但可以通过以下方式间接实现:
- 手动将问题表从导入任务中移除,重新生成导入配置文件。
- 使用
--exclude-tables
参数排除问题表。例如:obloader -h 192.168.xx.xx -P2881 --direct --parallel 4 --rpc-port 2882 -uroot -pxxx -D db --ddl --sql --all -f /dbbackup/DUMP/data/库名 --exclude-tables trade_ord_attribute,pms_purchase_order_item
3. 排查导入卡住的原因
如果确定导入卡住,可以按照以下步骤排查:
(1) 检查日志
- 查看 obloader 的日志文件,确认是否有具体的错误信息。
- 日志路径通常为
logs/obloader.log
,或者通过--log-path
参数指定的日志目录。
(2) 分析数据库端性能瓶颈
-
SQL 性能问题:参考 SQL 性能问题的典型场景和排查思路,通过
gv$sql_audit
表分析慢查询。SELECT * FROM gv$sql_audit WHERE sql_id = '<相关SQL_ID>';
-
IO 性能问题:参考 IO util 大于 99%,检查磁盘 IO 是否满负荷运行。
- 如果
ioawait > 200ms
,可能是磁盘设备处理效率低。
- 如果
- CLOG 回收问题:参考 CLOG FAQ,检查是否存在 CLOG 回收缓慢导致的写入阻塞。
(3) 检查网络连接
- 如果 obloader 和 OceanBase 数据库之间存在网络延迟或不稳定,可能导致导入卡住。
- 可以通过
ping
或traceroute
测试网络连通性。
4. 优化导入性能
如果导入速度较慢但未完全卡住,可以尝试以下优化措施:
-
增加并行度:调整
--parallel
参数值,适当提高并行度(但不要超过硬件资源限制)。 -
调整超时参数:对于大事务插入,可以设置更大的超时时间:
SET ob_query_timeout = 1000000000; SET ob_trx_timeout = 1000000000;
- 分批导入:将数据按表或按文件分批导入,避免单次导入过大导致问题。
5. 总结
- 如果确认是 obloader 工具本身的问题(如不支持断点续传或跳过问题表),建议重新规划导入策略,先排除问题表后重试。
- 如果是数据库端性能瓶颈导致的卡住,可以通过 OCP 或者系统表分析具体原因,并针对性优化。
- 如果问题仍未解决,建议联系 OceanBase 官方技术支持团队,提供更多详细日志和环境信息以便进一步排查。
希望以上建议对您有所帮助!
具体信息可参考以下文档:
所以pos并不是指进度是吧
是的