Oracle解锁表操作

xiaoxiao2021-02-28  149

开发过程中可能存在异常情况把表给锁定了。无法进行修改添加等操作。那么收藏了以下的语句方便实用

--查询Oracle正在执行的sql语句及执行该语句的用户

[sql]  view plain  copy     SELECT b.sid oracleID,          b.username 登录Oracle用户名,          b.serial#,          spid 操作系统ID,          paddr,          sql_text 正在执行的SQL,          b.machine 计算机名   FROM v$process a, v$session b, v$sqlarea c   WHERE a.addr = b.paddr      AND b.sql_hash_value = c.hash_value  

查看正在执行sql的发起者的发放程序

[sql]  view plain  copy     SELECT A.serial#,OSUSER 电脑登录身份,        PROGRAM 发起请求的程序,          USERNAME 登录系统的用户名,          SCHEMANAME,          B.Cpu_Time 花费cpu的时间,          STATUS,          B.SQL_TEXT 执行的sql   FROM V$SESSION A   LEFT JOIN V$SQL B ON A.SQL_ADDRESS = B.ADDRESS                      AND A.SQL_HASH_VALUE = B.HASH_VALUE   ORDER BY b.cpu_time DESC  

--查出oracle当前的被锁对象

[sql]  view plain  copy     SELECT l.session_id sid,          s.serial#,          l.locked_mode 锁模式,          l.oracle_username 登录用户,          l.os_user_name 登录机器用户名,          s.machine 机器名,          s.terminal 终端用户名,          o.object_name 被锁对象名,          s.logon_time 登录数据库时间   FROM v$locked_object l, all_objects o, v$session s   WHERE l.object_id = o.object_id      AND l.session_id = s.sid   ORDER BY sid, s.serial#;  

 

--kill掉当前的锁对象可以为

[sql]  view plain  copy alter system kill session 'sid , s.serial#';  

--合并的

[sql]  view plain  copy SELECT b.sid oracleID,     b.username 登录Oracle用户名,     b.serial#,     spid 操作系统ID,     paddr,     sql_text 正在执行的SQL,     b.machine 计算机名   FROM v$process a,     v$session b,     v$sqlarea c   WHERE a.addr         = b.paddr   AND b.sql_hash_value = c.hash_value;         SELECT A.serial#,     OSUSER 电脑登录身份,     PROGRAM 发起请求的程序,     USERNAME 登录系统的用户名,     SCHEMANAME,     B.Cpu_Time 花费cpu的时间,     STATUS,     B.SQL_TEXT 执行的sql   FROM V$SESSION A   LEFT JOIN V$SQL B   ON A.SQL_ADDRESS     = B.ADDRESS   AND A.SQL_HASH_VALUE = B.HASH_VALUE   ORDER BY b.cpu_time DESC;         SELECT l.session_id sid,     s.serial#,     l.locked_mode 锁模式,     l.oracle_username 登录用户,     l.os_user_name 登录机器用户名,     s.machine 机器名,     s.terminal 终端用户名,     o.object_name 被锁对象名,     s.logon_time 登录数据库时间   FROM v$locked_object l,     all_objects o,     v$session s   WHERE l.object_id = o.object_id   AND l.session_id  = s.sid   ORDER BY sid,     s.serial#;  
转载请注明原文地址: https://www.6miu.com/read-80640.html

最新回复(0)