ORACLE TM锁
|
Oracle的TM锁类型 |
|||
|
锁模式 |
锁描述 |
解释 |
SQL操作 |
|
0 |
none |
||
|
1 |
NULL |
空 |
Select |
|
2 |
SS(Row-S) |
行级共享锁,其他对象只能查询这些数据行 |
Select for update、Lock for update、Lock row share |
|
3 |
SX(Row-X) |
行级排它锁,在提交前不允许做DML操作 |
Insert、Update、Delete、Lock row share |
|
4 |
S(Share) |
共享锁 |
Create index、Lock share |
|
5 |
SSX(S/Row-X) |
共享行级排它锁 |
Lock share row exclusive |
|
6 |
X(Exclusive) |
排它锁 |
Alter table、Drop able、Drop index、Truncate table 、Lock exclusive |
锁定类型:
0:none
1:null 空
2:Row-S 行共享(RS):共享表锁
3:Row-X 行专用(RX):用于行的修改
4:Share 共享锁(S):阻止其他DML操作
5:S/Row-X 共享行专用(SRX):阻止其他事务操作
6:exclusive 专用(X):独立访问使用
数字越大锁级别越高, 影响的操作越多。
如果DML没有提交情况下,另一个session提交针对同一资源的DLL,系统报错。
如果DML没有提交情况下,另一个session提交针对同一资源的DML,第二个session会hang住,等待第一个session。
死锁:
系统会系统自动处理,处理方式提出形成死锁的人,错误是ORA-00060
命令行模式处理行级锁
查看锁:
select sid,lock_id from dba_locks where blocking_others='Blocking';
sid列:占用资源sid
select sid from v$lock where type='TX';
block列>0:占用资源sid
block列=0:等待资源sid
SELECT * FROM V$SESSION WHERE BLOCKING_SESSION IS NOT NULL;
sid列:等待资源sid
blocking_session列:占用资源sid
oracle级处理:
杀掉占用资源的session
1. 查询sid和serial#
select sid, serial#
from v$session
where sid = (select blocking_session
from v$session
where blocking_session is not null)
2. 杀进程
alter system kill session 'sid, serial#' immediate;
杀掉等待资源的session
1. 查询sid和serial#
select sid, serial# from v$session where blocking_session is not null;
2. 杀进程
alter system kill session 'sid, serial#' immediate;
系统级处理:
1. 查询系统pid
select s.sid, p.spid
from v$session s, v$process p
where s.paddr = p.addr
and s.sid = 146
2. 杀进程
kill -9 pid
ORACLE TM锁的更多相关文章
- Oracle TM锁和TX锁
CREATE TABLE "TEST6" ( "ID" ), "NAME" ), "AGE" ,), "SEX ...
- 从浅到深掌握Oracle的锁
1.分别模拟insert,update和delete造成阻塞的示例,并对v$lock中的相应的信息进行说明,给 出SQL演示. Insert示例 会话:SQL> select * from ...
- 理解Oracle TM和TX锁
在Oracle中有很多锁,通过v$lock_type视图可以查看Oracle中所有类型的锁,在本篇文章中我们熟悉一下TM和TX锁的类型 SQL> select * from v$lock_typ ...
- Oracle的锁表与解锁
Oracle的锁表与解锁 SELECT /*+ rule */ s.username, decode(l.type,'TM','TABLE LOCK', 'TX','ROW LOCK', NULL) ...
- Oracle基础 锁
一.锁 数据库是一个多用户使用的共享资源.当多个用户并发地存储数据时,数据库中就会产生多个事务同时存取同一数据的情况.若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性. 锁是实现 ...
- ORACLE的锁机制
数据库是一个多用户使用的共享资源.当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况.若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性. 加锁是实现数据 ...
- [Oracle]TM lock (DML enqueue) 的相容性
[Oracle]TM lock (DML enqueue) 的相容性 RS(SS): 行共享 LMODE =2 RX(SX): 行独占 LMODE =3 S: 共享 ...
- 【Oracle】锁
Oracle所有锁的分配和管理都是数据库管理系统自动完成的,不需要用户进行干预. v$lock表说明 字段 描述 ADDR Address of lock state object KADDR Add ...
- 04 关于oracle的锁的级别以及介绍
关于oracle的锁的级别以及介绍 oracle造成锁表的情况: 一.查看锁的对象视图:select object_id,session_id,locked_mode from v$locked_ob ...
随机推荐
- Github原理
See image below:
- wust 1061 链表的合并
怒刷存在感! ~从此wustoj踏上ty博客这样高端霸气上档次的地方啊啦啦~ 只是顺便看了下保研复试题,原来觉得链表好讨厌,现在数据结构学的没办法了,写了个大概是标准的链表合并的写法吧... #inc ...
- Linux驱动修炼之道-RTC子系统框架与源码分析【转】
转自:http://helloyesyes.iteye.com/blog/1072433 努力成为linux kernel hacker的人李万鹏原创作品,为梦而战.转载请标明出处 http://bl ...
- Ext的正则表达式
http://www.cnblogs.com/azai/archive/2010/12/31/1923140.html 今天看到一篇关于Extjs正则表达式比较系统的总结. 使用extJs时能常用 ...
- 如何把双引号包含到echo命令的字符串中
初涉s h e l l的用户常常会遇到的一个问题就是如何把双引号包含到e c h o命令的字符串中.引号是一个特殊字符,所以必须要使用反斜杠\来使s h e l l忽略它的特殊含义.假设你希望使用e ...
- 甲骨文推出MySQL Fabric,简化MySQL的高可用性与可扩展性
北京,2014年5月28日——为了满足当下对Web及云应用需求,甲骨文宣布推出MySQL Fabric.MySQL Fabric是一款可简化管理MySQL数据库群的整合式系统.该产品通过故障检测和故障 ...
- phpcms上线步骤,无法生成缓存,页面空白原因
缓存目录没有设置成777. 1.修改数据库配置 2.修改数据表中的本地地址成线上地址 3.修改代码中的配置,本地地址批量改为线上地址 4.登录后台,更新缓存
- 51nod1084 矩阵取数问题 V2
O(n4)->O(n3)妈呀为什么跑这么慢woc #include<cstdio> #include<cstring> #include<cctype> #i ...
- poj 1659 Frogs' Neighborhood(出入度、可图定理)
题意:我们常根据无向边来计算每个节点的度,现在反过来了,已知每个节点的度,问是否可图,若可图,输出一种情况. 分析:这是一道定理题,只要知道可图定理,就是so easy了 可图定理:对每个节点的度从 ...
- I.MX6 shutdown by software
/************************************************************************ * I.MX6 shutdown by softwa ...