OMS异常失败,源端出现“-4070”异常

【 使用环境 】测试环境
【 OB or 其他组件 】OMS 数据同步失败,出现“-4070”异常,查看官档,需要技术人员协助。
【 使用版本 】OMS 4.2.5 & Oceanbase 4.3.3
【问题描述】
1、创建同步任务后,界面出现:

2、查询报错日志:

3、从官方指南上看,可能clog的数据问题

4、但是,从Oceanbase上,看不出observer.log & rootservice.log 有明显报错。

【复现路径】如问题描述。
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)

【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!

1 个赞

根据文档库中的信息,错误码 -4070 表示无效的数据。这个问题通常出现在数据同步过程中,OMS 无法正确读取或解析来自源端的数据。以下是一些可能的原因和解决方法:

  1. 数据损坏

    • 检查源端的 clog 是否存在损坏。虽然您提到在 observer.logrootservice.log 中没有明显的报错,但仍然建议使用 obdiag 工具收集更多的诊断信息,以便进一步分析。
    • 使用 obdiag 工具收集诊断信息的步骤如下:
      obdiag collect -t all -o /path/to/output
      
  2. 配置问题

    • 检查数据同步任务的配置是否正确。确保源端和目标端的基本信息及用户权限等配置无误。
    • 参考文档 [6][8],OMS 社区版支持更新处于 运行中已停止异常 状态的 Incr-Sync 和 Full-Import 组件的配置。更新配置后,系统会重启组件以生效变更的配置,请谨慎操作。
  3. 网络问题

    • 确保源端和目标端之间的网络连接稳定。网络问题可能导致数据传输中断或数据包丢失,从而引发无效数据错误。
  4. 日志分析

    • 从您提供的日志信息来看,libobcdc.log 中出现了 iterate group entry failedread log fail 的错误,这表明在读取日志条目时遇到了问题。建议重点检查这些日志条目的上下文,寻找更多的线索。
  5. 技术支持

    • 如果以上方法都无法解决问题,建议联系 OceanBase 的技术支持人员进行进一步的协助排查。他们可以提供更专业的指导和解决方案。

希望这些信息能帮助您解决问题。如果需要进一步的帮助,请随时联系 OceanBase 的技术支持团队。

更多信息请查看:

  1. 如何处理 Failed to fetch 报错
  2. 查看数据同步任务的详情
  3. 启动和暂停数据同步任务
  4. 新建 Kafka 数据源
  5. Coordinator(框架层)
  6. 更新 Incr-Sync 组件
  7. 批量操作数据同步任务
  8. 更新 Full-Import 组件
  9. oms_sync_failed 同步任务失败
1 个赞

obdiag collect -t all -o /path/to/output

path是clog的path吗?

1 个赞

看着有拉取日志出问题了 根据下面的截图找一下增量拉取的cdc日志

1 个赞

/path/to/output 不是指 clog 的路径,而是指 obdiag 工具收集的诊断信息将被保存的目录路径。obdiag 工具会收集各种诊断信息,包括但不限于日志文件、SQL 审计信息、进程堆栈等,并将这些信息打包保存到指定的输出目录中。

详细说明

  • -t all: 表示收集所有类型的诊断信息。
  • -o /path/to/output: 指定输出目录,obdiag 会将收集到的所有诊断信息打包并保存到这个目录中。

示例

假设你想将诊断信息保存到 /home/user/diagnostics 目录中,可以运行以下命令:

obdiag collect -t all -o /home/user/diagnostics

其他常用选项

  • -t log: 仅收集日志信息。
  • -t sql_audit: 仅收集 SQL 审计信息。
  • -t stack: 仅收集进程堆栈信息。

检查 clog 文件

如果你需要专门检查 clog 文件,可以使用 ob_admin 工具中的 log_tool 命令。例如:

ob_admin log_tool dump_log <clog_file_path>

或者,如果你想查看 clog 文件的统计信息:

ob_admin log_tool stat <clog_file_path>

总结

  • /path/to/output: 是 obdiag 工具收集的诊断信息的输出目录,而不是 clog 文件的路径。
  • 检查 clog 文件: 如果你需要专门检查 clog 文件,可以使用 ob_admin 工具中的 log_tool 命令。

希望这些信息能帮助你更好地理解和使用 obdiag 工具。如果有更多问题,请随时提问。

检索到的文档如下:

  1. ob_admin 简介
  2. log_tool
  3. obcdc 安装部署
  4. 快速入门:obdiag 全链路功能诊断
  5. obcdc 开发说明
  6. OceanBase 敏捷诊断工具(obdiag)

(小助手的答复已结束,如未能解决您的问题,请继续提问并等待其他同学的回复,谢谢!)

1 个赞

是不是源端的日志盘设置的太小了 clog日志被覆盖了
1、查询一下 参数
show parameters where name in (‘memory_limit’,‘memory_limit_percentage’,‘system_memory’,‘log_disk_size’,‘log_disk_percentage’,‘datafile_size’,‘datafile_disk_percentage’);
2、查看一下磁盘大小
df -h

你好,找了,

应该是报错了,errcode=-4070。

请问需要源文件吗?

发一下原文件吧 看看还有其他问题没有

好的,文件有点儿大,已经压缩了。

libobcdc.log.tar.gz (16.8 MB)

老师,请问有没方法,只要同步能跑起来就可以了。数据丢失了什么都没关系。

1、目前clog日志有问题 导致的断了 只能重新在数据迁移
2、日志盘设置大点一般设置最低也是memory的三倍 要不然clog日志容易被覆盖 还可能出问题

就是这个同步已经没办法跑起来了吗?

要把整个库铲掉再重新进行数据迁移?

重新做数据迁移就好了 保证源端的clog日志可用 不要被覆盖或者损坏 目标端重新在建个库或者把之前的库删除 在重新建