OceanBase 分布式集群查询本地执行计划时出现 obproxy 路由分发异常问题

查看 OBProxy 日志,发现存在partition location cache refresh failed缓存刷新失败告警,且集群内其中一台 OB 数据节点近期做过重启操作

4 个赞

登录 proxysys 租户,手动执行reload location_cache强制刷新缓存,试试。

1 个赞

在使用 OceanBase 数据库(简称 OB)时,遇到 partition location cache refresh failed 这样的日志告警通常意味着数据库的元数据信息未能及时更新,这可能是由于各种原因导致的,例如节点故障、网络问题或配置错误等。可以尝试通过“检查节点状态”、“ 查看相关日志”、“ 刷新元数据缓存”、“ 检查配置和参数”等。

1 个赞

66

需要确认一下什么版本,考虑重新同步一下数据呢!

@论坛小助手

ocp上的告警信息,可以发一下 ocp-server.log日志 再发一下obproxy.log日志

分析与解答

根据您的描述,OceanBase 集群在查询本地执行计划时遇到了 obproxy 路由分发异常的问题,并且 OBProxy 日志中存在 “partition location cache refresh failed” 的缓存刷新失败告警。同时,集群内其中一台 OB 数据节点近期进行了重启操作。

根据文档片段 1 提供的信息,可以分析如下:

  1. OBProxy 缓存刷新失败

    • 当 OBProxy 发现分区位置缓存刷新失败时,可能是由于 OBServer 节点的重启导致了 Location Cache 没有及时更新。
    • 这种情况下,OBProxy 可能仍然使用的是旧的缓存信息,导致路由分发异常。
  2. OBServer 节点重启

    • 重启 OBServer 节点后,可能会导致部分分区的 Leader 发生变化。
    • 如果 OBProxy 或者 OBServer 维护的 Location Cache 没有及时更新,就会出现缓存刷新失败的情况。
  3. 解决方案

    • 检查 OBProxy 日志:查看 OBProxy 的日志,确认是否有其他相关的错误信息。
    • 手动刷新缓存:可以通过手动触发缓存刷新来解决这个问题。例如,可以在 OBProxy 上执行一些简单的查询,以促使 OBProxy 更新其缓存。
    • 等待自动刷新:如果问题不是特别紧急,可以等待一段时间,让 OBProxy 自动刷新缓存。
    • 检查 OBServer 状态:确保所有 OBServer 节点都正常运行,并且没有其他异常情况。
  4. 参考文档

通过以上步骤,您可以尝试解决 OBProxy 路由分发异常的问题。如果问题仍然存在,建议进一步检查 OBProxy 和 OBServer 的配置和状态,或者联系 OceanBase 的技术支持团队获取更多帮助。

详情请参考:

  1. 分布式事务
  2. 数据库应急概述
  3. 查询 OceanBase 集群的最后一个运维任务
  4. 产品 FAQ
  5. 发起租户恢复
  6. 性能分析
  7. 查询 OceanBase 集群未完成的任务
  8. 启动 OceanBase 集群