您的位置:首页 > 数据库 > Oracle

『ORACLE』查询被锁的对象和批量杀会话(11g)

2018-02-08 10:45 351 查看
查询被锁的对象和会话

SQL> SELECT  a.object_id, a.session_id, b.object_name, c.* FROM v$locked_object a, dba_objects b, v$session c      
WHERE  a.object_id = b.object_id AND  a.SESSION_ID = c.sid(+) ;

杀掉锁住的会话

SQL> alter system kill session '960,43019' immediate;
SQL> SELECT 'alter system kill session '''|| SID || ',' || SERIAL# ||''';' 
  FROM V$SESSION
 WHERE SID in
       (SELECT SESSION_ID FROM V$LOCKED_OBJECT A, DBA_OBJECTS B  
         WHERE A.OBJECT_ID = B.OBJECT_ID);

批量杀死会话(曾遇到同一时刻有大量相同IP地址会话连入数据库)
SQL> SELECT 'alter system kill session '''|| SID || ',' || SERIAL# ||''';' FROM V$SESSION  WHERE CLIENT_INFO ='&CLIENT_INFO';   

#前提是已经创建可以查询连入会IP的触发器
create or replace trigger on_login_trigger
after logon on database
begin
dbms_application_info.set_client_info(sys_context('USERENV','IP_ADDRESS'));
end;
/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: