该 server_transactions 表是 cluster_transactions 表的子集,但仅包括当前 SQL 节点(MySQL Server)参与的事务,同时包括相关的连接 ID。
该 server_transactions 表包含以下列:
-
mysql_connection_idMySQL Server 连接 ID
-
node_id事务协调器节点 ID
-
block_instance事务协调器块实例
-
transid事务 ID
-
state操作状态(见文本以获取可能的值)
-
count_operations事务中的状态操作数
-
outstanding_operations本地数据管理层(LQH 块)仍在执行的操作
-
inactive_seconds等待 API 的时间
-
client_node_id客户端节点 ID
-
client_block_ref客户端块引用
注意
该 mysql_connection_id 与 SHOW PROCESSLIST 输出中的连接或会话 ID 相同。它来自 INFORMATION_SCHEMA 表 NDB_TRANSID_MYSQL_CONNECTION_MAP。
block_instance 是内核块的实例。与块名称一起,该数字可以用来在 threadblocks 表中查找给定的实例。
事务 ID (transid) 是一个唯一的 64 位数字,可以使用 NDB API 的 getTransactionId() 方法获取。(当前,MySQL Server 不公开 NDB API 事务 ID 的正在进行的事务。)
该 state 列可以具有以下值:CS_ABORTING、CS_COMMITTING、CS_COMMIT_SENT、CS_COMPLETE_SENT、CS_COMPLETING、CS_CONNECTED、CS_DISCONNECTED、CS_FAIL_ABORTED、CS_FAIL_ABORTING、CS_FAIL_COMMITTED、CS_FAIL_COMMITTING、CS_FAIL_COMPLETED、CS_FAIL_PREPARED、CS_PREPARE_TO_COMMIT、CS_RECEIVING、CS_REC_COMMITTING、CS_RESTART、CS_SEND_FIRE_TRIG_REQ、CS_STARTED、CS_START_COMMITTING、CS_START_SCAN、CS_WAIT_ABORT_CONF、CS_WAIT_COMMIT_CONF、CS_WAIT_COMPLETE_CONF、CS_WAIT_FIRE_TRIG_REQ。(如果 MySQL Server 运行时启用了 ndbinfo_show_hidden,您可以从 ndb$dbtc_apiconnect_state 表中查看该列表,该表通常是隐藏的。)
在 client_node_id 和 client_block_ref 中,client 指的是 NDB 集群 API 或 SQL 节点(即 NDB API 客户端或附加到集群的 MySQL Server)。
该 block_instance 列提供了 DBTC 内核块实例号。您可以使用该数字从 threadblocks 表中获取特定线程的信息。