设为首页 收藏本站
查看: 812|回复: 0

[经验分享] 有关oracle数据的锁定问题

[复制链接]

尚未签到

发表于 2016-7-25 08:08:22 | 显示全部楼层 |阅读模式
最近老是碰到数据库中的数据表被锁需要解锁的问题,弄了一番后,现在把方法贡献出来给大家,请大家多指教
1、select * from v$locked_object 查出被锁定的对象,其中object_id是对象的ID,session_id是被锁定对象有session ID;
2、select object_name, object_type from dba_objects where object_id = 刚才查出来的object_id;(根据v$locked_object里的object_id提出来的)
这样来查被锁定这个对象的名字,如果能确定是哪个TABLE被锁并且要解锁,则再执行
3、select sid, serial#, machine, program from v$session where sid =第1步中查出来的session_id;(是根据v$locked_object对应锁定记录的session_id找出来的) 然后
4、alter system kill session ‘sid,serial#’;用来杀死这个会话;
以上几个步骤即能解决对象被锁定问题。

另外附上锁定一个表的语句:
-----查锁
SQL> SELECT T2.USERNAME, T2.SID, T2.SERIAL#, T2.LOGON_TIME FROM V$LOCKED_OBJECT T1, V$SESSION T2 WHERE T1.SESSION_ID = T2.SID ORDER BY T2.LOGON_TIME;
-----解锁
SQL> ALTER SYSTEM KILL SESSION '10,382';

Oracle数据库表查看锁以及解锁SQL#
//查询被锁的表select A.sid, b.serial#,decode(A.type,    'MR', 'Media Recovery',    'RT','Redo Thread',    'UN','User Name',    'TX', 'Transaction',    'TM', 'DML',    'UL', 'PL/SQL User Lock',    'DX', 'Distributed Xaction',    'CF', 'Control File',    'IS', 'Instance State',    'FS', 'File Set',    'IR', 'Instance Recovery',    'ST', 'Disk Space Transaction',    'TS', 'Temp Segment',    'IV', 'Library Cache Invalida-tion',    'LS', 'Log Start or Switch',    'RW', 'Row Wait',    'SQ', 'Sequence Number',    'TE', 'Extend Table',    'TT', 'Temp Table',    'Unknown') LockType,c.object_name,b.username,b.osuser,decode(a.lmode,   0, 'None',            1, 'Null',            2, 'Row-S',            3, 'Row-X',            4, 'Share',            5, 'S/Row-X',            6, 'Exclusive', 'Unknown') LockMode,B.MACHINE,D.SPIDfrom v$lock a,v$session b,all_objects c,V$PROCESS Dwhere a.sid=b.sid and a.type in ('TM','TX')and c.object_id=a.id1AND B.PADDR=D.ADDR//用于解锁alter system kill session'SID,SERIAL#'
----------------------------------------------------------------------
oracle 解锁表步骤:
1:查看被锁的表


Sql代码  
1.SELECT A.OBJECT_NAME, A.STATUS, V.SESSION_ID   
2.  FROM ALL_OBJECTS A, V$LOCKED_OBJECT V   
3.WHERE A.OBJECT_ID = V.OBJECT_ID   
SELECT A.OBJECT_NAME, A.STATUS, V.SESSION_ID
  FROM ALL_OBJECTS A, V$LOCKED_OBJECT V
WHERE A.OBJECT_ID = V.OBJECT_ID
2:查看锁


Sql代码  
1.SELECT A.OBJECT_NAME, A.STATUS, V.SESSION_ID   
2.  FROM ALL_OBJECTS A, V$LOCKED_OBJECT V   
3.WHERE A.OBJECT_ID = V.OBJECT_ID   
SELECT A.OBJECT_NAME, A.STATUS, V.SESSION_ID
  FROM ALL_OBJECTS A, V$LOCKED_OBJECT V
WHERE A.OBJECT_ID = V.OBJECT_ID 2、杀死锁


Sql代码  
1.--alter system kill session 'sid,serial#';   
2.alter system kill session '156,87';--查看表大小
----------------------------------------------------------------------
经过测试,下面的两条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
where ao.object_id = lo.object_id and lo.session_id = sess.sid;

---140      78        MSJL          PC2011031300NIM\Administrator   NC_DELIVETOSAOUT      3
---行id   锁标识      数据库用户         哪一台机器                 被锁表             锁模式


----解锁方式,将“行id”和“锁标识”赋给下面的语句即可解锁
alter system kill session '140,78';


----------------------------------------------------------------------

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-248864-1-1.html 上篇帖子: Oracle v$parameter表知多少 下篇帖子: oracle的sga与pga的笔记
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表