开发者社区> 问答> 正文

请问OceanBase数据库怎么查trace_id?

请问OceanBase数据库怎么查trace_id?

展开
收起
乐天香橙派 2024-02-22 11:58:12 80 0
来自:OceanBase
3 条回答
写回答
取消 提交回答
  • 方式一:

    在SQL执行完成之后,通过select last_trace_id();获取
    image.png

    方式二:

    通过查询 GV$OB_SQL_AUDIT 审计视图查询获取,根据query_sql字段过滤查询的关键字,获取对应的trace_id。

    obclient [test]> select SVR_IP,SVR_PORT,TRACE_ID,,TENANT_NAME,SQL_ID,QUERY_SQL 
        ->     from oceanbase.gv$ob_sql_audit
        ->     where query_sql like "%right(tb.a_time,5)%"\G;
    *************************** 1. row ***************************
                             SVR_IP: 172.24.255.17
                           SVR_PORT: 2882
                           TRACE_ID: YB42AC18FF11-0005FE3D398CC982-0-0
                        TENANT_NAME: obtest
                             SQL_ID: D8F4A48653895C3AAACE903CA04EDD21
                          QUERY_SQL: insert into t2 select a_id, a_name,cast(concat('2022-10-10 ', right(tb.a_time,5), ':00') as datetime) from t1 tb
    1 rows in set (0.224 sec)
    

    方式三:

    开启enable_rich_error_msg参数,不过这个是集群级别的,需要在sys租户下开启

    开启方式:

    alter system set enable_rich_error_msg=true;
    

    在开启之后,如果SQL执行报错,会自动返回trace_id和ip信息

    obclient [test]> insert into t2 select a_id, a_name,cast(concat('2022-10-10 ', right(tb.a_time,5), ':00') as datetime) from t1 tb;
    ERROR 1292 (22007): Incorrect value
    [172.24.255.17:2882] [2023-08-03 20:42:36.361996] [YB42AC18FF11-0005FE3D398CC986-0-0]
    

    以上三种方式,我们一般会采用第二种方式,方式一只能获取到trace_id,但是获取不到OBServer的IP信息,因为OceanBase为分布式数据库,一套集群一般会有多个OBServer节点,如果没有IP信息,我们很难得知这条SQL是在哪个OBServer节点上执行的。所以是需要这个IP信息方便我们拿着trace_id直接去机器上过滤日志。方式三需要开启集群级别的参数,有的租户并不一定需要这个,并且展示信息相对较少。

    ——参考链接

    2024-02-22 19:41:40
    赞同 1 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    OceanBase数据库的trace_id可以通过OCP(OceanBase Cloud Platform)进行查询。具体步骤如下:

    1. 登录到OceanBase Cloud Platform(OCP)。
    2. 在OCP的控制台界面中,找到相关的查询工具或功能模块。
    3. 使用指定的Trace ID或SQL ID作为检索条件进行搜索。
    4. 通过搜索结果,您可以直观地查看请求从客户端到数据库内部全链路各组件的执行信息。
    5. 根据这些信息,您可以快速定位问题发生的阶段和原因。
    2024-02-22 13:09:09
    赞同 展开评论 打赏
  • SELECT last_trace_id() FROM DUAL;
    可以看这个https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000507871 —此回答来自钉群“[社区]技术答疑群OceanBase”

    2024-02-22 12:02:38
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
+ 订阅
蚂蚁OceanBase数据库团队,用于OceanBase技术原理、运维经验和案例分享、对外交流。
问答排行榜
最热
最新

相关电子书

更多
开源HTAP OceanBase产品揭秘 立即下载
云数据库OceanBase 架构演进及在金融核心系统中的实践 立即下载
自研金融数据库OceanBase的创新之路 立即下载