批量KILL Oracle数据库session,先查询出不需要的的session(sid,serial#),然后编辑,批量执行。
alter system kill session '29,30665' immediate;
- SQL> spool kill_1208.sql
- SQL> set pages 100000
-
- SQL> SELECT 'ALTER SYSTEM KILL SESSION '' ' || rtrim(s.sid) || ',',ltrim(s.serial#) || ' '';'
- FROM gv$session s JOIN gv$process p ON p.addr = s.paddr AND p.inst_id = s.inst_id
- WHERE s.type != 'BACKGROUND' ;
- SQL> exit
-
- [oracle@TESTDB pump]$ cat /tmp/kill_1208.sql
- ALTER SYSTEM KILL SESSION '1641, 48315 ';
- ALTER SYSTEM KILL SESSION '1730, 16855 ';
- ALTER SYSTEM KILL SESSION '1783, 5791 ';
- ALTER SYSTEM KILL SESSION '1856, 37547 ';
- ALTER SYSTEM KILL SESSION '1950, 32017 ';
- ALTER SYSTEM KILL SESSION '2003, 10879 ';
- ALTER SYSTEM KILL SESSION '2079, 6545 ';
- ALTER SYSTEM KILL SESSION '2137, 62179 ';
- ALTER SYSTEM KILL SESSION '29, 30665 ';
-
- --去掉serial#前面的空格
- sed -ri 's/,[ ]*([0-9][0-9]*)[ ]*/,\1/' kill_1208.sql
-
- [oracle@TESTDB pump]$ sqlplus / as sysdba
SQL> @ kill_1208.sql
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22661144/viewspace-1868293/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/22661144/viewspace-1868293/