背景
在使用OceanBase的OCP的过程中,因各种因素,我们可能需要对当前页面进行跟踪。在单一ocp节点环境下,我们自然可以直接在该节点上查找所需的日志。然而,当我们的环境中部署了多个ocp节点时,在排查问题时就会变得相对复杂,因为我们很难确定应该到哪个ocp节点去过滤(获取)相关的日志。
示例
在租户的 sql 诊断查看 slowsql ,选择的查询时间范围触发了报错,如下图所示:
页面上提示的信息不足,如果我们想通过日志去进一步分析,此时需要知道在哪个 ocp server 上去查看日志:
1、在当前报错的页面打开F12,找到报错的接口,一般是红色且标记为❌。
2、在 response 里找到 server 和 traceId 字段,其中:
server字段: 对应的就是我们要去找的 ocp server 节点,这里可能是出于安全考虑 server 字段对应的是一个字符串,对应的真实 ocp server IP 需要在 ocp meta 租户的数据库查询 distributed_server 表,
根据 F12 获取的 server 字符串(对应的 distributed_server.name 字段)过滤,即可获取到 ocp_server_ip。
select substring_index(id,':',1) as ocp_server_ip from distributed_server where name='8a733d21ca';
根据以上步骤我们找到了报错时是在哪个ocp server 上执行的,当时的请求可以根据 traceId 字段关联(过滤)。