Oracle数据库查看锁表语句和解锁的方法示例
更新时间:2023年10月11日 11:36:39 作者:何以解忧,唯有..
在DBA的日常工作中,经常遇到为Oracle用户解锁的操作,这篇文章主要给大家介绍了关于Oracle数据库查看锁表语句和解锁的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
一、查看锁表语句
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 WHERE ao.object_id = lo.object_id AND lo.session_id = sess.sid;
死锁级别:
级别 | 描述 |
---|---|
0 | none |
1 | null 空 |
2 | Row-S 行共享(RS):共享表锁 |
3 | Row-X 行专用(RX):用于行的修改 |
4 | Share 共享锁(S):阻止其他DML操作 |
5 | S/Row-X 共享行专用(SRX):阻止其他事务操作 |
6 | exclusive 专用(X):独立访问使用 |
二、解锁语句
alter system kill session '68,51'; -- 分别为SID和SERIAL#号
三、查看引起锁表的Sql语句
SELECT A.USERNAME, A.MACHINE, A.PROGRAM, A.SID, A.SERIAL#, A.STATUS, C.PIECE, C.SQL_TEXT FROM V$SESSION A, V$SQLTEXT C WHERE A.SID IN ( SELECT DISTINCT T2.SID FROM V$LOCKED_OBJECT T1, V$SESSION T2 WHERE T1.SESSION_ID = T2.SID ) AND A.SQL_ADDRESS = C.ADDRESS ( + ) ORDER BY C.PIECE;
如何避免锁表
常见问题是用户更新操作没有提交事务,所以:如果单独更新操作,需要写2个操作 SQL,一个是更新操作SQL语句,另一个是commit语句提交事务。
总结
到此这篇关于Oracle数据库查看锁表语句和解锁的文章就介绍到这了,更多相关Oracle查看锁表和解锁内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
oracle停止数据库后linux完全卸载oracle的详细步骤
本文介绍了linux完全卸载oracle的详细步骤,卸载前需使用SQL*PLUS停止数据库和相关服务,详细步骤看下面说明,大家可以参考使用2014-01-01Oracle递归查询start with connect by prior的用法
这篇文章主要给大家介绍了关于Oracle递归查询start with connect by prior、的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧2019-02-02
最新评论