解决方案: RAC1 RAC2 多个节点执行
通过触发器。
create or replace trigger on_logon_trigger
after logon on database
begin
dbms_application_info.set_client_info(sys_context( 'userenv', 'ip_address' ) );
end;
/
这样当客户端登陆后,在v$session的client_info列会记录其相应的IP信息。
1.select username,lockwait,status,machine,program,client_info from v$session where sid in
(select session_id from v$locked_object); --以sys用户登陆数据库查询死锁+IP地址
1.select session_id from v$locked_object; --首先得到被锁对象的session_id
2. select sql_text from v$sql where hash_value in
(select sql_hash_value from v$session where sid in
(select session_id from v$locked_object));
--查到被锁的SQL语句
3.SELECT sid, serial#, username, osuser FROM v$session where sid = session_id;
--通过上面得到的session_id去取得v$session的sid和serial#,然后对该进程进行终止。
ALTER SYSTEM KILL SESSION 'sid,serial';
example:
ALTER SYSTEM KILL SESSION '13, 8';
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12131609/viewspace-2120612/,如需转载,请注明出处,否则将追究法律责任。