To kill all inactive session in Database
sqlplus "/as sysdba"
SQL>set heading off
SQL>spool [Link]
SELECT 'ALTER SYSTEM KILL SESSION '||''''||sid ||','|| serial#||''''||' immediate;'
FROM v$session
WHERE status ='INACTIVE' and type != 'BACKGROUND';
SQL>spool off
then execute the sql script
SQL> @[Link]
select 'alter system kill session '''||sid||','||serial#||''' immediate;' from GV$SESSION where
type='USER' and username is not null and username not in ('DBA1','DBSNMP','PUBLIC','SYS','SYSTEM')
and username='REPUSER' and machine in ('[Link]','[Link]') and
status='INACTIVE';
Note:For RAC Database where we have more than 1 instances,we need to follow step 2 on all the Oracle
instances.
To kill all active session in Database:
sqlplus "/as sysdba"
SQL>set heading off
SQL>spool kill_active.sql
SELECT 'ALTER SYSTEM KILL SESSION '||''''||sid ||','|| serial#||''''||' immediate;'
FROM v$session
WHERE status ='ACTIVE' and type != 'BACKGROUND';
SQL>spool off
Note:For RAC Database where we have more than 1 instances,we need to follow step 2 on all the Oracle
instances.
To kill all ODI sessions in Database:
sqlplus "/as sysdba"
SQL>set heading off
SQL>set lines 1000
SQL>set linesize 2000
SQL>spool kill_active.sql
SELECT 'ALTER SYSTEM KILL SESSION '||''''||sid ||','|| serial#||''''||' immediate;'
FROM v$session
WHERE status ='ACTIVE' AND USERNAME LIKE '%ODI%';
SQL>spool off
Note:For RAC Database where we have more than 1 instances,we need to follow step 2 on all the Oracle
instances.
How to get the list of Users and Processes running ODI sessions:
SQL> SET LINESIZE 100
COLUMN spid FORMAT A10
COLUMN username FORMAT A10
COLUMN program FORMAT A45
SELECT s.inst_id,[Link],[Link]#,[Link], [Link], [Link]
FROM gv$session s
JOIN gv$process p ON [Link] = [Link] AND p.inst_id = s.inst_id
WHERE [Link] != 'BACKGROUND' AND [Link] LIKE '%ODI%';
How to kill a particular object blocking session:
[Link] the tables(objects) which are locked:
SELECT [Link], o.object_name, o.object_type, o.last_ddl_time, [Link], l.session_id,
l.oracle_username, l.locked_mode
FROM dba_objects o, gv$locked_object l
WHERE o.object_id = l.object_id and o.object_name='XX_OBJECT';
[Link] the session holding the lock:
--Find the serial# for the sessions holding the lock:
SQL> select SERIAL# from v$session where SID=667;
SERIAL#
----------
21091
SQL> alter system kill session '667,21091';
Note:For RAC Database where we have more than 1 instances,we need to follow step 2 on all the Oracle
instances.
Select 'alter system kill session '''||Sid||','||Serial#||''' immediate;' From Gv$session Where
Blocking_Session Is Not Null And Inst_Id='1' ;
select 'alter system kill session '''||sid||','||serial#||''' immediate;' from GV$SESSION where
blocking_session is not null and inst_id='2' ;
--------------------------------------------------------
select 'alter system kill session '''||sid||','||SERIAL#||''' immediate;' from GV$SESSION where
USERNAME='SMS' and STATUS='INACTIVE' and INST_ID='1';
select 'alter system kill session '''||sid||','||serial#||''' immediate;' from gv$session where
username='SMS' and status='INACTIVE' And Inst_Id='2';