每篇一笑:老鼠去方便,见熊也在,吓得不吭声,熊看了眼老鼠说:你掉不掉毛?老鼠哆嗦不语,熊又问:掉不掉毛?老鼠说:不掉!熊抓住老鼠擦擦屁股走了。
锁机制用于管理对共享资源的并发访问。注意,我说的是“共享资源”而不是“数据库行”。Oracle会在行级别对表数据锁定,这固然不错,不过Oracle也会在其他多个级别上使用锁,从而对多种不同的资源提供并发访问。
如果有两个会话,每个会话都持有另一个会话想要的资源,此时就会出现死锁。例如,如果数据库中有两个表A和B,每个表中都只有一行,就可以很容易地展示什 么是死锁。要做的只是打开两个会话。在会话A中更新表A,并在会话B中更新表B。现在,如果想在会话B中更新表A,就会阻塞。会话A已经锁定了这一行。这 不是死锁,只是阻塞而已。我还没有遇到过死锁,因为会话A还有机会提交或回滚,这样会话B就能继续了。
1.查看当前系统中锁表情况的SQL如下:
- select * from v$locked_object
2.可以通过查询v$locked_object拿到sid和objectid,然后用sid和v$session链表查询是哪里锁的表,用v$session中的objectid字段和dba_objects的id字段关联,查询详细的锁表情况的SQL如下:
- select sess.sid,
- sess.serial#,
- lo.oracle_username,
- lo.os_user_name,
- ao.object_name,
- lo.locked_mode
- from v$locked_object lo, dba_objects ao, v$session sess, v$process p
- where ao.object_id = lo.object_id
- and lo.session_id = sess.sid
3.查询是什么引起了锁表的原因的SQL如下:
- select l.session_id sid,
- s.serial#,
- l.locked_mode,
- l.oracle_username,
- s.user#,
- l.os_user_name,
- s.machine,
- s.terminal,
- a.sql_text,
- a.action
- from v$sqlarea a, v$session s, v$locked_object l
- where l.session_id = s.sid
- and s.prev_sql_addr = a.address
- order by sid, s.serial#
4.解锁的SQL如下:
- alter system kill session 'sid,serial#'
相关推荐
Oracle高级应用所包含的内容及要掌握的应用列表。
oracle高级应用基础.pdf
Oracle的锁表与解锁
这是我学习Oracle时,老师给的讲义,包含了Oracle从入门到高级应用的全部资料。 以下是文件列表 Day01-Oracle基础.pdf Day02-Oracle表的管理.pdf Day03-约束和序列.pdf Day04-SQL和操作符.pdf Day05-Oracle常用函数....
oracle 解锁表,可以用此字句,对表进行解锁,但是要有相应的权限
oracle解锁,死锁oracle解锁,死锁oracle解锁,死锁oracle解锁,死锁oracle解锁,死锁oracle解锁,死锁oracle解锁,死锁oracle解锁,死锁oracle解锁,死锁oracle解锁,死锁oracle解锁,死锁
数据库死锁的概念, 所谓...Oracle对于“死锁”采取的策略是回滚其中一个事务,让另外一个事务顺利进行。 对于锁死的会话,我们可以直接删掉该会话,等事物回滚完成,也可以找出锁死进程的spid,从服务器中删掉该进程。
B.SESSION_ID 锁表SESSION_ID, B.ORACLE_USERNAME 锁表用户名, decode(D.type, 'XR', 'NULL', 'RS', 'SS(Row-S)', 'CF', 'SS(Row-S)', 'TM', 'TABLE LOCK', 'PW', 'TABLE LOCK', 'TO', 'TABLE LOCK',...
orale检查锁表,以及对表进行解锁的方式说明
oracle锁表和解锁语句示例。
oracle 用户被锁定解锁方法
基于Oracle_高级队列技术实现应用程序间的通信
select object_name,session_id,os_user_name,Oracle_username,process,locked_mode,status from v$locked_object l, all_objects a where l.object_id=a.object_id;
Oracle 高级复制技术介绍及应用
ORACLE 如何查询被锁定表及如何解锁释放session
oracle解锁语句,常用解锁语句,经过测试实用;oracle解锁语句,常用解锁语句,经过测试实用。
Oracle高级应用
如果存储过程被锁住,可以使用这个存储过程解锁方法
oracle高级复制应用的实例及物化视图复制和多主体复制的具体配置
oracle用户解锁