v$lock列出了数据库当前拥有的锁及未完成的锁请求。
Column | Description |
ADDR | 被锁对象的地址 |
KADDR | 锁的地址 |
SID | session id(这里特指正在锁定对象或请求去锁定对象的session id) |
TYPE | 使用的锁的类型,主要包含两大类,用户类型的锁及系统类型的锁 (1)用户类型的锁由用户的应用程序获得,任何阻塞其他进程的进程都可能持有这些锁,用户类型的锁有: --TM:DML enqueue --TX:Transaction enqueue --UL:用户提供的锁 (2)系统类型的锁见”table1. system type locks“,这里只介绍常用的系统锁,如何要查看所有的锁,可以查看v$lock_type。 |
ID1/ID2 | 取值根据所的类型的不同也有所不同 (1)对于TM锁,ID1表示被锁定的object_id,可以和dba_object连接获得锁定的对象,ID2为0; (2)对于TX锁,这两个字段构成了事物在回滚段中的位置。 |
LMODE | session保持的锁的模式 --0:none --1:null(NULL) --2:row-S(SS,行级共享锁,其它session只能查询这些数据行。SQL操作有select for update、lock for update、lock row share) --3:row-X(SX,行级排它锁,在提交前不允许做DML操作。SQL操作有insert、update、delete、lock row share) --4:share(S,共享锁。SQL操作有create index,lock share) --5:S/Row-X(SSX,共享行级排它锁。SQL操作有lock share row exclusive) --6:exclusive(X,排它锁。SQL操作有alter table、drop table、drop index、truncate table、lock exclusive等DDL操作) |
REQUEST | 进程请求的锁的模式 --0:none --1:null(NULL) --2:row-S(SS) --3:row-X(SX) --4:share(S) --5:S/Row-X(SSX) --6:exclusive(X) |
CTIME | 自当前模式被授予的时间 |
BLOCK | 指定该所是否阻塞其它进程,可能的取值有 --0:该锁未阻塞其他进程 --1:该锁正在阻塞其它进程 --2:该锁没有阻塞本地节点的任何进程,但是他可能会阻塞远程节点上的进程。此值仅用于Oracle RAC配置,不配置在但节点数据库中 |
Table 8-1 Values for the TYPE Column: System Types
System Type | Description | System Type | Description |
---|---|---|---|
| Edition enqueue | MR | Media recovery |
| Lock held for the | NA..NZ | Library cache pin instance ( |
| Buffer hash table instance |
| Password File |
| Control file schema global enqueue |
| Parallel operation |
| Cross-instance function invocation instance |
| Process startup |
| Cursor bind |
| Row cache instance ( |
| datafile instance |
| Redo thread global enqueue |
| Direct loader parallel index create |
| System change number instance |
| Mount/startup db primary/secondary instance |
| SMON |
| Distributed recovery process |
| Sequence number instance |
| Distributed transaction entry |
| Sequence number enqueue |
| File set |
| Sort segment |
| Space management operations on a specific segment |
| Space transaction enqueue |
| Instance number |
| Sequence number value |
| Instance recovery serialization global enqueue |
| Generic enqueue |
| Instance state |
| Temporary segment enqueue (ID2=0) |
| Library cache invalidation instance |
| New block allocation enqueue (ID2=1) |
| Job queue |
| Temporary table enqueue |
| Thread kick |
| User name |
| Library cache lock instance lock (A..P = namespace) |
| Undo segment DDL |
| Mount definition global enqueue |
| Being-written redo log instance |