慢sql日志中sql字段不显示或者显示异常问题咨询

【 使用环境 】生产环境
【 OB or 其他组件 】obproxy
【 使用版本 】4.1.0.0
【问题描述】在obproxy.log 文件中查询慢sql日志,发现sql字段有的不显示
举例:
sql=*^G,
sql=SET @@autocommit = 1
sql= ,
【复现路径】无
日志如下

[2024-07-22 15:24:37.399997] WARN  [PROXY.SM] update_cmd_stats (ob_mysql_sm.cpp:9761) [2134156][Y0-00007F4F213F22E0] [lt=52] [dc=0] Slow 
Query: ((client_ip={192.125.38.55:54446}, server_ip={192.125.38.19:2881}, obproxy_client_port={192.125.38.13:53710}, server_trace_id=YB42
C07D2613-00060300627A5F8E-0-0, route_type=ROUTE_TYPE_NONPARTITION_UNMERGE_LOCAL, user_name=root, tenant_name=sys, cluster_name=oceanbase5
, logic_database_name=, logic_tenant_name=, ob_proxy_protocol=2, cs_id=2908464, proxy_sessid=13870284264836401133, ss_id=1503520848, serv
er_sessid=3222067525, sm_id=256178987, cmd_size_stats={client_request_bytes:119, server_request_bytes:235, server_response_bytes:52, clie
nt_response_bytes:52}, cmd_time_stats={client_transaction_idle_time_us=0, client_request_read_time_us=9, client_request_analyze_time_us=7
, cluster_resource_create_time_us=0, pl_lookup_time_us=25235, pl_process_time_us=19, bl_lookup_time_us=0, bl_process_time_us=0, congestio
n_control_time_us=2, congestion_process_time_us=0, do_observer_open_time_us=7, server_connect_time_us=0, server_sync_session_variable_tim
e_us=0, server_send_saved_login_time_us=0, server_send_use_database_time_us=0, server_send_session_variable_time_us=0, server_send_sessio
n_user_variable_time_us=0, server_send_all_session_variable_time_us=0, server_send_start_trans_time_us=0, server_send_xa_start_time_us=0,
 build_server_request_time_us=11, plugin_compress_request_time_us=0, prepare_send_request_to_server_time_us=25293, server_request_write_t
ime_us=104, server_process_request_time_us=1280390, server_response_read_time_us=6, plugin_decompress_response_time_us=0, server_response
_analyze_time_us=40, ok_packet_trim_time_us=43, client_response_write_time_us=138, request_total_time_us=1305991}, sql=*^G, trans_interna
l_routing_state=not in trans)
1 个赞

根据trace id 去ob日志查查呢

2 个赞

1、有可能是日志打印的问题 你看一下obproxy_slow.log日志
2、ob上看一下 sql_audit这个视图
3、ocp有的话看一下sql诊断的slow sql

2 个赞

感谢回复
我在ob日志下查找这个grep -l "YB42C07D2613-00060300627A5F8E-0-0" * 发现没返回值

1 个赞

感谢回复obproxy_slow.log确实能看到sql

1 个赞

根据trace id 去查询GV$OB_SQL_AUDIT看看是不是日志时间段选错了,或者重新执行一个sql
1)设置trace信息
SET ob_enable_show_trace=‘ON’;

2)执行sql。

3)获取上个命令的trace
select last_trace_id();

4)获取trace对应的节点
select query_sql,svr_ip from gv$ob_sql_audit where trace_id=‘第三步获取的trace信息’;

5)取对应的svr_ip节点 过滤日志
grep “第三步获取的trace信息” observer.log*
grep “第三步获取的trace信息” rootservice.log*

2 个赞

建议obproxy升级 版本有点低 可能会出现日志打印有问题的现象

2 个赞

好的 感谢

1 个赞

如果问题已经解决 请点一下采纳 谢谢

1 个赞