日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
Oracle用戶(hù)會(huì)話信息的查詢(xún)方法

Oracle用戶(hù)會(huì)話相信大家都比較了解,下面為您介紹的就是Oracle用戶(hù)會(huì)話信息的查詢(xún)方法,該方法供您參考,如果您感興趣的話,不妨一看。

目前創(chuàng)新互聯(lián)建站已為成百上千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機(jī)、網(wǎng)站改版維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、象州網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶(hù)導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶(hù)和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

過(guò)V$SESSION視圖,可以查詢(xún)Oracle所有Oracle用戶(hù)會(huì)話信息:

 
 
 
  1. select sid,logon_time,username,machine from v$session; 

通過(guò)分組,統(tǒng)計(jì)每個(gè)不同的用戶(hù)或主機(jī)打開(kāi)的Oracle用戶(hù)會(huì)話總數(shù):

 
 
 
  1. select username,machine,count(*) from v$session group by username,machine;

根據(jù)SID和SERIAL#可以終止用戶(hù)會(huì)話:

 
 
 
  1. ALTER SYSTEM KILL SESSION 'v_sid,v_serial#' immediate;

Oracle用戶(hù)會(huì)話的SID和SERIAL#可以通過(guò)V$SESSION視圖查到:

 
 
 
  1. SQL> select sid,serial#,username, machine,status from v$session where username like 'PCNSH%';
  2.      SID    SERIAL# USERNAME     MACHINE                      STATUS
  3. -------- ---------- --------------- ------------------------------- --------
  4.      366      14303 PCNSH197    client197.yourdomain.com     INACTIVE
  5.      369       1745 PCNSH003    server009                    INACTIVE
  6.      370      10165 PCNSH049    client049.yourdomain.com     INACTIVE
  7.      371      18999 PCNSH056    client056                    INACTIVE
  8.      372       6207 PCNSH056    client056                    INACTIVE
  9.      373       7688 PCNSH197    client197.yourdomain.com     INACTIVE
  10.      374      19246 PCNSH003    server009                    INACTIVE
  11.      377      17649 PCNSH003    server009                    INACTIVE

在Oracle中終止掉的會(huì)話只有在這個(gè)進(jìn)程再次嘗試連接Oracle時(shí)才會(huì)被pmon清除,在進(jìn)程再次嘗試連接之前,查詢(xún)V$SESSION視圖時(shí)還是可以看到該會(huì)話。

當(dāng)用戶(hù)會(huì)話無(wú)法響應(yīng)時(shí),上面的方法可能無(wú)法終止用戶(hù)會(huì)話,只好直接殺死系統(tǒng)進(jìn)程(謹(jǐn)慎)。

用戶(hù)會(huì)話對(duì)應(yīng)的系統(tǒng)進(jìn)程可以通過(guò)V$SESSION和V$PROCESS兩個(gè)視圖來(lái)查詢(xún),通過(guò)會(huì)話的SID和SERIAL#可以查詢(xún)到系統(tǒng)進(jìn)程號(hào)。

 
 
 
  1. SQL> select p.spid from v$session s, v$process p 
  2.   where p.addr=s.paddr and s.sid=518 and s.serial#=41831;
  3. SPID
  4. ------------
  5. 16782

然后在操作系統(tǒng)中殺死進(jìn)程:

kill -9 16782
某些軟件會(huì)在啟動(dòng)時(shí)打開(kāi)多個(gè)會(huì)話,當(dāng)軟件異常退出時(shí),要批量的終止這些會(huì)話。存儲(chǔ)過(guò)程基于用戶(hù)名條件批量終止會(huì)話,創(chuàng)建存儲(chǔ)過(guò)程腳本kill_user.sql如下:

 
 
 
  1. create or replace procedure kill_user(v_name in varchar2)
  2. as
  3. message varchar2(50);
  4. cursor loguser is select sid,serial# from v$session where username=upper(v_name);
  5. v_info loguser%rowtype;
  6. sql_mgr varchar2(1000);
  7. i number default 0;
  8. begin
  9. open loguser;
  10. loop
  11. fetch loguser into v_info;
  12. exit when loguser%notfound;
  13. i :=1;
  14. sql_mgr :='alter system kill session '''||v_info.sid||','||v_info.serial#||''' immediate';
  15. execute immediate sql_mgr;
  16. dbms_output.put_line('All the sessions of '||v_name||' have been killed');
  17. end loop;
  18. close loguser;
  19. if i=0 then
  20. raise_application_error(-20004,'The user '||v_name||' is not login the database currently!');
  21. end if;
  22. exception
  23. when no_data_found then
  24. raise_application_error(-20004,'The user '||v_name||' is not login the database currently!');
  25. end;
  26. /

調(diào)用上面存儲(chǔ)過(guò)程,終止用戶(hù)所有進(jìn)程的方法如下:

 
 
 
  1. SQL> execute kill_user('user_name');

本文標(biāo)題:Oracle用戶(hù)會(huì)話信息的查詢(xún)方法
文章路徑:http://www.5511xx.com/article/ccssjii.html