ob租户存在长事务

【 使用环境 】生产环境
【 OB or 其他组件 】ob
【 使用版本 】ob 4.3.5.1
【问题描述】集群:myoceanbase,租户:szsjy 存在长事务。会话ID:0,事务ID:22484164,事务类型:unknown,事务创建时间:2025-11-23T17:21:31.857+08:00,事务最长持续时长:15 小时 10 分 41.9 秒。

select * from __all_server;

gmt_create |gmt_modified |svr_ip |svr_port|id|zone |inner_port|with_rootserver|status|block_migrate_in_time|build_version |stop_time|start_service_time|first_sessid|with_partition|last_offline_time|
-----------------------±----------------------±------------±-------±-±----±---------±--------------±-----±--------------------±----------------------------------------------------------------------------------------±--------±-----------------±-----------±-------------±----------------+
2025-10-11 19:10:41.333|2025-11-05 20:12:27.331|172.14.202.52| 2882| 1|zone1| 2881| 1|ACTIVE| 0|4.3.5.1_101010042025042417-0c7ffd37c2904f4d8191fb2d056738a93cce6d1d(Apr 24 2025 17:58:09)| 0| 1760181256716062| 0| 1| 0|
2025-10-11 19:10:41.355|2025-10-11 19:14:18.411|172.14.202.53| 2882| 2|zone2| 2881| 0|ACTIVE| 0|4.3.5.1_101010042025042417-0c7ffd37c2904f4d8191fb2d056738a93cce6d1d(Apr 24 2025 17:58:09)| 0| 1760181257480116| 0| 1| 0|
2025-10-11 19:10:41.372|2025-11-05 20:12:27.331|172.14.202.54| 2882| 3|zone3| 2881| 0|ACTIVE| 0|4.3.5.1_101010042025042417-0c7ffd37c2904f4d8191fb2d056738a93cce6d1d(Apr 24 2025 17:58:09)| 0| 1760181253424523| 0| 1| 0|

SELECT *
FROM __all_virtual_trans_stat
WHERE is_exiting !=1 AND part_trans_action <= 2 AND ctx_create_time < DATE_SUB(NOW(), INTERVAL 1200 SECOND)
LIMIT 100;

tenant_id|svr_ip |svr_port|trans_type|trans_id|session_id|scheduler_addr |is_decided|ls_id|participants|ctx_create_time |expired_time |ref_cnt|last_op_sn|pending_write|state|part_trans_action|trans_ctx_addr|mem_ctx_id|pending_log_size|flushed_log_size|role|is_exiting|coordinator|last_request_time |gtrid|bqual|format_id|start_scn |end_scn |rec_scn |transfer_blocking|busy_cbs|replay_complete|serial_log_final_scn|callback_list_stats |
---------±------------±-------±---------±-------±---------±-------------------±---------±----±-----------±----------------------±----------------------±------±---------±------------±----±----------------±-------------±---------±---------------±---------------±—±---------±----------±----------------------±----±----±--------±------------------±-------------------±------------------±----------------±-------±--------------±-------------------±-----------------------------------------------------------------------------------------+
1002|172.14.202.52| 2882| 0|22484164|3222103621|“172.14.202.54:2882”| 0| 1| |2025-11-23 17:21:31.857|2025-11-24 17:21:31.850| 2| 4| 0| 10| 2|0xfffed41db550| -1| 0| 0| 0| 0| -1|2025-11-23 17:21:31.857| | | -1|1763920803576769002|18446744073709551615|1763920803576769002| 0| 0| 1| -1|[“id, length, logged, removed, branch_removed, sync_scn”, [0,1,1,0,0,1763920803576769002]]|
1002|172.14.202.54| 2882| 0|22484164| 0|“172.14.202.54:2882”| 0| 1| |2025-11-24 02:00:03.799| | 2| 0| 0| 10| 1|0xfffee5359d50| -1| 0| 0| 1| 0| -1|2025-11-24 02:00:03.799| | | -1|1763920803576769002|18446744073709551615|1763920803576769002| 0| 0| 1| -1|[“id, length, logged, removed, branch_removed, sync_scn”, [0,1,1,0,0,0]] |
1002|172.14.202.53| 2882| 0|22484164| 0|“172.14.202.54:2882”| 0| 1| |2025-11-24 02:00:03.714| | 2| 0| 0| 10| 1|0xfffee826df50| -1| 0| 0| 1| 0| -1|2025-11-24 02:00:03.714| | | -1|1763920803576769002|18446744073709551615|1763920803576769002| 0| 0| 1| -1|[“id, length, logged, removed, branch_removed, sync_scn”, [0,1,1,0,0,0]] |
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)

【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!

2 个赞

推荐使用 obdiag 工具进行日志采集,这将有助于我们了解长事务的具体情况,并进一步定位问题。

日志采集场景: 长事务
日志采集命令: obdiag gather scene run --scene=observer.long_transaction

请您执行上述命令并提供采集回来的日志压缩包。为了更准确地帮助您解决问题,还需要您提供以下信息:

  1. 该长事务涉及哪些表和操作?
  2. 系统当前的负载情况如何?
  3. 该事务是否有定时任务触发,还是由特定的操作引起?
  4. 系统资源(如 CPU、内存、IO)的使用情况如何?
  5. 该事务之前是否也有过类似的长时间运行的情况?

感谢您的配合,我们会根据提供的信息进一步分析问题。

附上敏捷诊断工具 obdiag 使用帮助链接

3 个赞

:rightwards_hand: :rightwards_hand: :rightwards_hand: :rightwards_hand: :rightwards_hand: :rightwards_hand: :rightwards_hand:

SHOW VARIABLES like ‘version_comment’; 具体的版本信息查看一下 可以查看一下长事务的信息
SELECT *
FROM GV$OB_TRANSACTION_PARTICIPANTS
WHERE CTX_CREATE_TIME < date_sub(now(), INTERVAL 600 SECOND)
AND ROLE = ‘LEADER’
AND ACTION = ‘START’;

SHOW VARIABLES like ‘version_comment’;

Variable_name |Value |
---------------±---------------------------------------------------------------------------------------------------------------+
version_comment|OceanBase_CE 4.3.5.1 (r101010042025042417-0c7ffd37c2904f4d8191fb2d056738a93cce6d1d) (Built Apr 24 2025 17:58:09)|

SELECT *
FROM GV$OB_TRANSACTION_PARTICIPANTS
WHERE CTX_CREATE_TIME < date_sub(now(), INTERVAL 600 SECOND)
AND ROLE = ‘LEADER’
AND ACTION = ‘START’;

TENANT_ID|SVR_IP |SVR_PORT|SESSION_ID|SCHEDULER_ADDR |TX_TYPE |TX_ID |LS_ID|PARTICIPANTS|CTX_CREATE_TIME |TX_EXPIRED_TIME |STATE |ACTION|PENDING_LOG_SIZE|FLUSHED_LOG_SIZE|ROLE |COORD|LAST_REQUEST_TIME |FORMATID|GLOBALID|BRANCHID|
---------±------------±-------±---------±-------------------±--------±-------±----±-----------±----------------------±----------------------±-----±-----±---------------±---------------±-----±----±----------------------±-------±-------±-------+
1002|172.14.202.52| 2882|3221539899|“172.14.202.52:2882”|UNDECIDED|29051501| 1| |2025-11-24 17:21:31.765|2025-11-25 17:21:31.761|ACTIVE|START | 0| 0|LEADER| -1|2025-11-24 17:21:31.765| -1| | |

昨天清掉了 今天又有新的

INSERT /*+ monitor enable_parallel_dml parallel(1) opt_param(‘ddl_execution_id’, 1) opt_param(‘ddl_task_id’, 36033726) opt_param(‘enable_newsort’, ‘false’) use_px /INTO wdyf_szsjy_fastgpt.__idx_501228_idx_1764062492773017_index_snapshot_data_table (__key_17_1761297681614082, __vid_1761297679523485, __vector_17_1761297680423739, __data_17_1761297681614480) SELECT /+ index(modeldata primary) ob_ddl_schema_version(modeldata, 1764062764008680) */ __key_17_1761297681614082 AS __key_17_1761297681614082, __vid_1761297679523485 AS __vid_1761297679523485, __vector_17_1761297680423739 AS __vector_17_1761297680423739, __data_17_1761297681614480 AS __data_17_1761297681614480 from wdyf_szsjy_fastgpt.modeldata as of snapshot 1764062821489761000 order by 1

这是内部生成的sql吗 每天固定时间执行十几个小时

CREATE TABLE modeldata (
id bigint(20) NOT NULL AUTO_INCREMENT,
vector VECTOR(4096) DEFAULT NULL,
team_id varchar(50) NOT NULL,
dataset_id varchar(50) NOT NULL,
collection_id varchar(50) NOT NULL,
createtime timestamp NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id),
KEY team_dataset_collection_index (team_id, dataset_id, collection_id) BLOCK_SIZE 16384 LOCAL,
KEY create_time_index (createtime) BLOCK_SIZE 16384 LOCAL,
VECTOR KEY vector_index (vector) WITH (DISTANCE = INNER_PRODUCT,
TYPE = HNSW,
M = 32,
EF_CONSTRUCTION = 128, LIB=VSAG, EF_SEARCH=64) BLOCK_SIZE 16384,
VECTOR KEY idx_1764062492773017 (vector) WITH (DISTANCE = INNER_PRODUCT,
TYPE = HNSW,
M = 32,
EF_CONSTRUCTION = 128, LIB=VSAG, EF_SEARCH=64) BLOCK_SIZE 16384
) ORGANIZATION INDEX AUTO_INCREMENT = 916044 AUTO_INCREMENT_MODE = ‘ORDER’ DEFAULT CHARSET = utf8mb4 ROW_FORMAT = DYNAMIC COMPRESSION = ‘zstd_1.3.8’ REPLICA_NUM = 3 BLOCK_SIZE = 16384 USE_BLOOM_FILTER = FALSE ENABLE_MACRO_BLOCK_BLOOM_FILTER = FALSE TABLET_SIZE = 134217728 PCTFREE = 0;

idx_1764062492773017 是数据库生成的吗 业务说没建这个

你们查到的长事务的语句 是这个插入的语句么?


差不到是哪个sql 看SESSION表猜测的


告警的是3222180127会话 但是他没有sql

SELECT * FROM oceanbase.GV$OB_PROCESSLIST WHERE STATE = ‘ACTIVE’ AND ID IN (SELECT session_id FROM GV$OB_TRANSACTION_PARTICIPANTS
WHERE CTX_CREATE_TIME < date_sub(now(), INTERVAL 600 SECOND)
AND ROLE = ‘LEADER’
AND ACTION = ‘START’);
–可以这样查一下 看看 是哪个语句


空的


那有可能该长事务的session不是active 你这样查一下
SELECT * FROM oceanbase.GV$OB_PROCESSLIST WHERE ID IN (SELECT session_id FROM GV$OB_TRANSACTION_PARTICIPANTS
WHERE CTX_CREATE_TIME < date_sub(now(), INTERVAL 600 SECOND)
AND ROLE = ‘LEADER’
AND ACTION = ‘START’);


条件都去掉也没有

image
根据这个sql_id查一下gv$ob_sql_audit看看


SVR_IP |SVR_PORT|REQUEST_ID|SQL_EXEC_ID|TRACE_ID |SID |CLIENT_IP|CLIENT_PORT|TENANT_ID|TENANT_NAME|EFFECTIVE_TENANT_ID|USER_ID|USER_NAME|USER_GROUP|USER_CLIENT_IP|DB_ID |DB_NAME |SQL_ID |QUERY_SQL |AFFECTED_ROWS|RETURN_ROWS|PLAN_ID|PARTITION_CNT|RET_CODE|QC_ID|DFO_ID|SQC_ID|WORKER_ID|EVENT|P1TEXT|P1|P2TEXT|P2|P3TEXT|P3|LEVEL|WAIT_CLASS_ID|WAIT_CLASS#|WAIT_CLASS|STATE |WAIT_TIME_MICRO|TOTAL_WAIT_TIME_MICRO|TOTAL_WAITS|RPC_COUNT|PLAN_TYPE|IS_INNER_SQL|IS_EXECUTOR_RPC|IS_HIT_PLAN|REQUEST_TIME |ELAPSED_TIME|NET_TIME|NET_WAIT_TIME|QUEUE_TIME|DECODE_TIME|GET_PLAN_TIME|EXECUTE_TIME|APPLICATION_WAIT_TIME|CONCURRENCY_WAIT_TIME|USER_IO_WAIT_TIME|SCHEDULE_TIME|ROW_CACHE_HIT|BLOOM_FILTER_CACHE_HIT|BLOCK_CACHE_HIT|DISK_READS|RETRY_CNT|TABLE_SCAN|CONSISTENCY_LEVEL|MEMSTORE_READ_ROW_COUNT|SSSTORE_READ_ROW_COUNT|DATA_BLOCK_READ_CNT|DATA_BLOCK_CACHE_HIT|INDEX_BLOCK_READ_CNT|INDEX_BLOCK_CACHE_HIT|BLOCKSCAN_BLOCK_CNT|BLOCKSCAN_ROW_CNT|PUSHDOWN_STORAGE_FILTER_ROW_CNT|REQUEST_MEMORY_USED|EXPECTED_WORKER_COUNT|USED_WORKER_COUNT|SCHED_INFO|FUSE_ROW_CACHE_HIT|PS_CLIENT_STMT_ID|PS_INNER_STMT_ID|TX_ID |SNAPSHOT_VERSION |REQUEST_TYPE|IS_BATCHED_MULTI_STMT|OB_TRACE_INFO|PLAN_HASH |LOCK_FOR_READ_TIME|PARAMS_VALUE|RULE_NAME|PARTITION_HIT|TX_INTERNAL_ROUTING|TX_STATE_VERSION|FLT_TRACE_ID|PL_TRACE_ID|PLSQL_EXEC_TIME|FORMAT_SQL_ID|STMT_TYPE|TOTAL_MEMSTORE_READ_ROW_COUNT|TOTAL_SSSTORE_READ_ROW_COUNT|PROXY_USER|SEQ_NUM |NETWORK_WAIT_TIME|PLSQL_COMPILE_TIME|
-------------±-------±---------±----------±--------------------------------±---------±--------±----------±--------±----------±------------------±------±--------±---------±-------------±-----±--------±-------------------------------±-----------------------------------------------------------------------------------------------------------------------------±------------±----------±------±------------±-------±----±-----±-----±--------±----±-----±-±-----±-±-----±-±----±------------±----------±---------±-----------------±--------------±--------------------±----------±--------±--------±-----------±--------------±----------±---------------±-----------±-------±------------±---------±----------±------------±-----------±--------------------±--------------------±----------------±------------±------------±---------------------±--------------±---------±--------±---------±----------------±----------------------±---------------------±------------------±-------------------±-------------------±--------------------±------------------±----------------±------------------------------±------------------±--------------------±----------------±---------±-----------------±----------------±---------------±-------±------------------±-----------±--------------------±------------±------------------±-----------------±-----------±--------±------------±------------------±---------------±-----------±----------±--------------±------------±--------±----------------------------±---------------------------±---------±---------------±----------------±-----------------+
172.14.202.53| 2882| 165984| -1|YB42AC0ECA34-000640E287B961EF-0-0|3221816523|0.0.0.0 | 0| 1002| | 1002| 200001| | 0|0.0.0.0 |201001| |0839AF265FC5FE58E4DBE788D373E87A| | 0| 0| 1172| 0| 0| 0| 0| 0| 0| | | 0| | 0| | 0| 0| 100| 0|OTHER |MAX_WAIT TIME ZERO| 0| 0| 0| 0| 1| 1| 1| 1|1764062492750963| 18875| 172| 20| 68| 233| 0| 3848| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 3| 0| 0| 3| 0| 1| 0| 3| 4602| 0| 2503880| 0| 0| | 0| -1| -1| 0| 0| 3| 0| | 0| 0| | | 1| 0| 0| | | 0| |SELECT | 0| 0| | 0| 0| 0|
172.14.202.54| 2882| 28181098| 182213313|YB42AC0ECA34-000640E287B961EF-0-0|3222180127|0.0.0.0 | 0| 1002|szsjy | 1002| 200001|root | 0|0.0.0.0 |201001|oceanbase|0839AF265FC5FE58E4DBE788D373E87A|SELECT COUNT(*) AS CNT FROM wdyf_szsjy_fastgpt.__idx_501228_vector_index_index_id_table AS OF SNAPSHOT 1764062492721194000| 0| 1| 64399| 1| 0| 0| 0| 0| 0| | | 0| | 0| | 0| 0| 100| 0|OTHER |MAX_WAIT TIME ZERO| 0| 19978| 2| 2| 2| 1| 0| 0|1764062492747967| 22291| 0| 0| 0| 0| 2105| 20186| 0| 0| 0| 0| 0| 0| 0| 0| 0| 1| 3| 0| 0| 0| 0| 0| 0| 0| 0| 0| 117591056| 0| 0| | 0| -1| -1|32017765|1764062492749855000| 1| 0| |5717739935154354293| 0| | | 0| 0| 0| | | 0| |SELECT | 0| 0| |1764062492749856| 0| 0|

这个看着是你们的库呀 不像是内部的库的信息呀 看着像是在闪回查询呀


INSERT /*+ monitor enable_parallel_dml parallel(1) opt_param(‘ddl_execution_id’, 1) opt_param(‘ddl_task_id’, 36033726) opt_param(‘enable_newsort’, ‘false’) use_px /INTO wdyf_szsjy_fastgpt.__idx_501228_idx_1764062492773017_index_snapshot_data_table (__key_17_1761297681614082, __vid_1761297679523485, __vector_17_1761297680423739, __data_17_1761297681614480) SELECT /+ index(modeldata primary) ob_ddl_schema_version(modeldata, 1764062764008680) */ __key_17_1761297681614082 AS __key_17_1761297681614082, __vid_1761297679523485 AS __vid_1761297679523485, __vector_17_1761297680423739 AS __vector_17_1761297680423739, __data_17_1761297681614480 AS __data_17_1761297681614480 from wdyf_szsjy_fastgpt.modeldata as of snapshot 1764062821489761000 order by 1

这个insert是在干啥啊 每天同一时间生成 也跑了十几个小时 这个表一共才89w记录 看TRACE_ID感觉跟那个select有点关联 而且这表两个一样的VECTOR索引 删掉idx那个 自己又创建

这个看着是向量索引的用法
https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002012936