Oracle會話數量查詢及結束會話
一、數據庫會話數量查詢
查詢當前數據庫會話數量:select * from v$session
修改數據庫最大會話數量:alter system set processe scope=spfile (在命令模式下執行)
查看當前數據庫最大會話上限:show parameters processes;
查看當前數據庫DBLINK最多可打開的連接數量:show parameters open_links;
二、刪除被鎖住的Session
1、一般的話只要下面兩條命令就可以:
(1)select t1.sid,t1.serial#,t1.username,t1.logon_time from v$session t1,
v$locked_object t2 where t1.sid=t2.session_id order by t1.logon_time;
(2)alter system kill session 'sid, serial#';
備注:其中(2)中的sid和serial#是(1)中查詢出來的。
2、有時這種方法還是刪不掉,就要用ORAKILL命令了
(1)select object_name,machine,s.sid,s.serial# from v$locked_object l,
dba_objects o ,v$session s where l.object_id=o.object_id and l.session_id=s.sid;
(2)select spid ,osuser,s.program from v$session s,
v$process p where s.paddr=p.addr and s.sid=93;
(3)orakill sid spid(unix 系統下,root身份:kill sid spid)
說明:
第一條2(1)和1(1)效果是一樣的,只是查出的內容更多,我們要的,關鍵是這個sid,
第二條中的93,就是第一條中查詢出的sid;
第三條要在系統下進行,cmd下直接使用,spid就是第二條中查出來的spid.
另外,unix下的,沒實際使用,原例子是這么寫的 kill -9 12345(12345是spid,前面-9個人估計是數據庫的sid吧…)