oracle数据库账户锁定机制,Oracle数据库数据锁定机制全面解析

在数据库下面锁的种类有很多,从互斥级别上分,有共享锁、独占锁、修改锁等;从数据结构上分,有行级锁、表级锁等。并且不同锁之间优先级不同。 数据库锁机制的复杂实现就是为了尽量提高并发的同时保证事务的基本特征

1.锁的类型有:[oracle锁机制是自动管理]

dml 锁

ddl 锁

shared 锁

互斥锁 : 主要针对内存的的锁[share pool]

2.锁的模式有:

0:none

1:null

2:row share(RS) (lock a row in shared mode)   ==> 行级锁

加锁语法:LOCK TABLE TableName IN ROW SHARE MODE;

仅能保护表不被删除

3:row exclusive(RX) (lock a row in exclusive mode)    ==> 行级排它锁

加锁语法:LOCK TABLE TableName IN ROW EXCLUSIVE MODE;

不允许改变表的结构,可删除表内数据,但不可删除列

4:share(S) (lock the entire table in shared mode)    ==> 共享锁

加锁语法:LOCK TABLE TableName IN SHARE ROW EXCLUSIVE MODE;

不允许两个人同时对一张表执行除select的dml语句或ddl语句

5:share row exclusive(SRX)(lock the table in shared mode but a row in exclusive) ==> 共享行级排它锁

加锁语法:Lock Table TableName In Share Row Exclusive Mode;

仅能查询(独占行,不得执行dml,除select外)

6:exclusive(X) (lock the entire table in exclusive mode) ==> 排他锁

加锁语法:Lock Table TableName InExclusive Mode;

仅能查询

3.与锁相关的视图

DBMS_LOCK

V$DLM_ALL_LOCKS

V$DLM_LOCKS

V$ENQUEUE_LOCK

V$GLOBAL_BLOCKED_LOCKS

V$LOCK

V$LOCKED_OBJECT

V$LOCKS_WITH_COLLISIONS

V$LOCK_ACTIVITY

V$LOCK_ELEMENT

V$_LOCK

4.解锁及 Kill Session: 使用下面的语法查出锁并杀掉 Session。 SELECT A.SID,A.SERIAL#,A.USERNAME,B.TYPE FROM V$SESSION A,V$LOCK B WHERE A.SID=B.SID; ALTER SYSTEM KILL SESSION 'SID,SERIAL#';

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值