Oracle 進程及會話
當前進程數量
select count(*) from v$process;
查看進程數量上限
select value from v$parameter where name = 'process';
查看當前會話量
select count(*) from v$session;
會話數量上限
select value from v$parameter where name = 'sessions';
修改進程上限值:100
alter system set processes = 100 scope = spfile;
修改會話上限值:120,會話數與進程數有一個比例關系
alter system set sessions = 120 scope = spfile;
備注:
修改完之后備份下spfile,然后重啟數據庫
create pfile from spfile;
查看不用用戶的連接數
select username,count(username) from v$session where username is not null group by username;
查看當前數據庫建立的會話情況
-- SID 會話(session)的ID號;
-- SERIAL# 會話的序列號,和SID一起用來唯一標識一個會話;
-- USERNAME 建立該會話的用戶名;
-- PROGRAM 這個會話是用什么工具連接到數據庫的;
-- STATUS 當前這個會話的狀態,ACTIVE表示會話正在執行某些任務,INACTIVE表示當前會話沒有執行任何操作;
select sid,serial#,username,program,machine,status from v$session;
注:
SID 對應的username 列為空的會話,是Oracle 的后台進程,不要對這些會話進行任何操作。
DBA 手工斷開某個會話
alter system kill session 'SID,SERIAL#';