Lock(一)认识v$LOCK
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 |