[达梦]达梦数据库查看锁以及解锁

[达梦]达梦数据库查看锁以及解锁

1、查看锁

为了方便用户查看当前系统中锁的状态,DM 数据库专门提供了一个 V$LOCK 动态视图。 通过该视图,用户可以查看到系统当前所有锁的详细信息,如锁的内存地址、所属事务 ID、 锁类型、锁模式等。用户可以通过执行如下语句查看锁信息:

SELECT * FROM V$LOCK;
序号 数据类型 说明
1 ADDR BIGINT 锁地址
2 TRX_ID BIGINT 所属事务 ID
3 LTYPE VARCHAR(10) 锁类型:TID 锁、对象锁
4 LMODE CHAR(2) 锁模式:S 锁、X 锁、IX 锁、IS 锁
5 BLOCKED INTEGER 是否阻塞
6 TABLE_ID INTEGER 对于对象锁,表示表对象或字典对象的 ID;对于 TID 锁,表示封锁 记录对应的表 ID。-1 表示事务启动封锁自身的 TID
7 ROW_IDX BIGINT TID 锁封锁记录行信息。-1 表示事务启动封锁自身的 TID
8 TID BIGINT TID 锁对象事务 ID

2、会话信息

select * from V$SESSIONS

显示会话的具体信息,如执行的 sql 语句、主库名、当前会话状态、用户名等等

主要字段说明:

序号 数据类型 说明
1 SESS_ID BIGINT 会话 ID
2 SESS_SEQ INTEGER 会话序列号,用来唯一标识会话
3 SQL_TEXT VARCHAR(1000) 取 sql 的头 1000 个字符
4 STATE VARCHAR(8) 会话状态。共 6 种状态:CREATE 创建、STARTUP 启动、IDLE 空闲、ACTIVE 活动、WAIT 等待、UNKNOWN 未知
5 TRX_ID BIGINT 事务 id
6 CREATE_TIME DATETIME 会话创建时间

3、查询锁

select SESS_ID,SESS_SEQ,SQL_TEXT,STATE, CREATE_TIME from v$sessions where trx_id in (select trx_id from V$LOCK) and SQL_TEXT like '%update%';

4、关闭会话

SP_CLOSE_SESSION(会话 ID);

停止一个活动的会话,会话 ID 可通过 V\(SESSIONS 查询,DM 系统创建的内 部 SESSION(PORT_TYPE = 12,但 CONNECTED = 1 的 SESSION)也可通过 V\)SESSIONS 查询到.

posted @ 2023-03-20 23:47  二月无雨  阅读(6007)  评论(0编辑  收藏  举报