全局锁-sys_all_glocks
功能描述
sys_all_glocks系统表用于管理主副节点全局锁信息。
说明:
sys_all_glocks系统表在较低版本的数据库不支持,详细信息请联系运维人员获取。
字段说明
序号 | 字段名 | 类型 | 说明 |
---|---|---|---|
0 | NODEID | INTEGER | 节点ID |
1 | LOCK_TYPE | INTEGER | 全局锁类型 |
2 | LOCK_ID | BIGINT | 锁ID |
3 | REF | VARCHAR | 锁引用描述 |
LOCK_TYPE说明
LOCK_TYPE说明
数值 | 说明 | 等候对象 | 场景 |
---|---|---|---|
1 | 库级锁 | db_id | 修改系统元信息,如: 增加审计项、创建库、修改库元信息、删除对象、创建策略等 |
2 | 对象操作锁 | db_id、obj_id | 对象操作,如: 创建、删除、修改、开表、重建索引等操作 |
3 | 对象存储维护锁 | db_id、table_id | 对象存储维护,如: 存储迁移、修复,流式入库等 |
4 | 预留 | 预留 | 预留 |
5 | 全局存储锁 | gsto_no | 全局存储维护,如: 索引分裂、存储同步、master扩展全局存储、删除缓变副本等 |
6 | 局部存储读写锁 | sto_no | 局部存储维护,如: 存储同步 |
7 | 局部存储迁移锁 | sto_no | 局部存储操作,如: 复制局部存储、释放大对象存储、对表中插入行等 |
8 | 事务锁 | 事务号 | 事务操作,如: 事务初始化、事务开始 |
9 | 用户名锁 | db_id、user_name哈希值 | 用户操作,如: 用户登录、用户创建、修改、删除等 |
10 | 数据装载锁 | db_id、table_id | 流式入库操作,如: 数据流式导入 |
11 | 全局存储修复锁 | gsto_no | 全局存储操作,如: Master节点上索引单元分裂、远程创建全局存储、流式入库存储同步等 |
12 | 表分区扩展锁 | db_id、table_id | 分区表操作,如: 分区扩展、分区表删除、分区表开表等 |
13 | 全局临时表锁 | db_id、table_id | 临时表操作,如: 临时表修改、删除等 |
解析
查询数据库所有锁信息
系统全局锁可通过lock_id计算出对象ID,计算公式BIT_AND(lock_id,4294967295)
sqlSQL> SELECT * FROM sys_all_glocks WHERE lock_id='576460765189374355'; NODEID | LOCK_TYPE | LOCK_ID | REF | ------------------------------------------------------------------------------ 1 | 3 | 576460765189374355 | [S]1,[X]0,[IS]0,[IX]0,[SIX]0| 1 | 2 | 576460765189374355 | [S]0,[X]0,[IS]1,[IX]0,[SIX]0| 2 | 3 | 576460765189374355 | [S]1,[X]0,[IS]0,[IX]0,[SIX]0| 2 | 2 | 576460765189374355 | [S]0,[X]0,[IS]1,[IX]0,[SIX]0| -- 通过公式计算出对象ID SQL> SELECT BIT_AND(576460765189374355,4294967295) FROM DUAL; EXPR1 | ------------------------------------------------------------------------------ 1048979 | --通过ID查询出对象信息 SQL> SELECT * FROM sys_objects WHERE obj_id=1048979; DB_ID | USER_ID | SCHEMA_ID | OBJ_ID | OBJ_NAME | OBJ_TYPE | IS_SYS | DROPED | RESERVED1 | RESERVED2 | RESERVED3 | ------------------------------------------------------------------------------ 3 | 110 | 110 | 1048979 | TTSTORE| 5 | F | F | <NULL>| <NULL>| <NULL>|
REF包含基础锁类型S(共享锁)、X(排他锁)和意向锁类型IS(意向共享锁)、IX(意向排他锁),以及组合锁类型SIX(组合锁)。 例如: [S]0
- [S]:锁类型(共享锁)
- 0:0个节点持有该锁