【 使用环境 】测试环境
【 OB or 其他组件 】OB
【 使用版本 】社区V4.3.5
【问题描述】使用DBMS_MONITOR.OB_SESSION_TRACE_ENABLE创建跟踪策略,提示session id不存在。
会话A:
会话B:
麻烦老师帮忙给看一下
【 使用环境 】测试环境
【 OB or 其他组件 】OB
【 使用版本 】社区V4.3.5
【问题描述】使用DBMS_MONITOR.OB_SESSION_TRACE_ENABLE创建跟踪策略,提示session id不存在。
会话A:
你换个ssid,这个是你的show processlist;
我意思是你使用跟踪业务sql试试
根据你提供的信息和图片内容,问题的核心是 DBMS_MONITOR.OB_SESSION_TRACE_ENABLE
在使用时提示 User session ID does not exist
。以下是对问题的详细分析和解决步骤:
DBMS_MONITOR.OB_SESSION_TRACE_ENABLE
需要一个有效的 session_id
参数,而当前使用的 session_id
(如 488701955
或 3221499399
)可能无效或不存在。SHOW PROCESSLIST
查看当前活跃会话。SHOW PROXYSESSION
查看更详细的会话信息。从你的 SHOW PROCESSLIST
和 SHOW PROXYSESSION
输出来看:
SHOW PROCESSLIST
显示了多个会话,但没有明确标注哪个会话是你需要跟踪的目标。SHOW PROXYSESSION
提供了更详细的会话信息,包括 Id
(即 Client Session ID
)和其他属性。使用 SHOW PROCESSLIST
找到目标会话的 Id
。例如:
obclient> SHOW PROCESSLIST;
输出中,Id
列表示会话 ID。例如:
+----------------+------+-----------------------+----------+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----------------+------+-----------------------+----------+---------+------+-------+------------------+
| 488636619 | root | 192.168.159.137:48738| oceanbase| Sleep | 31 | NULL | NULL |
+----------------+------+-----------------------+----------+---------+------+-------+------------------+
如果需要更详细的会话信息,可以使用 SHOW PROXYSESSION
:
obclient> SHOW PROXYSESSION;
输出中,Id
列表示 Client Session ID
。例如:
+---------------------+--------+---------+--------+------+-----------------+------+-------------+-------------------+-------------------+------+------+-----------+
| proxy_sessid | Id | Cluster | Tenant | User | Host | db | trans_count | svr_session_count | state | tid | pid | using_ssl |
+---------------------+--------+---------+--------+------+-----------------+------+-------------+-------------------+-------------------+------+------+-----------+
| 7230691418559283266 | 68 | ob1.cc | sys | root | 127.0.0.1:50260 | NULL | 0 | 1 | MCS_ACTIVE_READER | 8728 | 8728 | 0 |
+---------------------+--------+---------+--------+------+-----------------+------+-------------+-------------------+-------------------+------+------+-----------+
session_id
)处于活动状态。如果会话已经结束或超时,则无法对其进行跟踪。session_id
。DBMS_MONITOR.OB_SESSION_TRACE_ENABLE
session_id
调用 DBMS_MONITOR.OB_SESSION_TRACE_ENABLE
。例如:CALL DBMS_MONITOR.OB_SESSION_TRACE_ENABLE(488636619, 3, 0.5, 'ONLY_SLOW_QUERY');
参数说明:
session_id
:目标会话的 ID。trace_level
:跟踪级别(如 3 表示详细跟踪)。sample_ratio
:采样比例(如 0.5 表示 50% 的采样率)。trace_option
:跟踪选项(如 ONLY_SLOW_QUERY
表示仅跟踪慢查询)。cd /home/admin/oceanbase/log
grep <trace_id> observer.log
User session ID does not exist
错误。DBMS_MONITOR
包中的过程。DBMS_MONITOR
的具体用法和支持的功能。根据文档库中的信息,DBMS_MONITOR.OB_SESSION_TRACE_ENABLE
需要一个有效的 session_id
参数。请按照上述步骤确认目标会话的有效性,并正确调用该过程。如果仍有问题,请提供更多的上下文信息以便进一步分析。
更多信息请查看:
你好,这个问题这边已经复现出来了,正在与产研确认是否合理
已确认社区版不支持DBMS_MONITOR包。官方文档具有迷惑性以提醒文档侧进行修改
收到 谢谢
跟着学习了