ओरेकल में सक्रिय / खुले कनेक्शन कैसे सूचीबद्ध करें?


164

क्या किसी क्षण में सक्रिय कनेक्शन दिखाने के लिए कोई छिपी हुई तालिका, सिस्टम चर या कुछ है?

जवाबों:


183

V$SESSIONदृश्य का उपयोग करें ।

V$SESSION प्रत्येक वर्तमान सत्र के लिए सत्र जानकारी प्रदर्शित करता है।


5
कमांड में लाइन 1 से शुरू होने में त्रुटि: चयन करें * FROM v $ सत्र से F कमांड लाइन पर त्रुटि: 1 कॉलम: 14 त्रुटि रिपोर्ट: SQL त्रुटि: ORA-00903: अमान्य तालिका नाम 00903. 00000 - "अमान्य तालिका नाम" * कारण: * क्रिया:
१६:२२

3
या तो आपके पास अनुमतियां नहीं हैं, या आपने DBA विचारों को सही तरीके से स्थापित नहीं किया है।
एस.लूट

4
आपको select_catalog_role भूमिका की आवश्यकता होगी।
पॉलजेविलियन्स

2
सत्रों की वर्तमान एसक्यूएल प्राप्त करने के लिए आप v $ sqltext में शामिल हो सकते हैं।
अलकिनी

27
पिस्ताचियो, आपके पास SQL ​​में "FROM से 2" है: "FROM v $ session
सेलेक्ट करें

116

अधिक पूर्ण उत्तर के लिए देखें: http://dbaforums.org/oracle/index.php?showtopic=16834

select
       substr(a.spid,1,9) pid,
       substr(b.sid,1,5) sid,
       substr(b.serial#,1,5) ser#,
       substr(b.machine,1,6) box,
       substr(b.username,1,10) username,
--       b.server,
       substr(b.osuser,1,8) os_user,
       substr(b.program,1,30) program
from v$session b, v$process a
where
b.paddr = a.addr
and type='USER'
order by spid; 

28

जब मैं हमारे एप्लिकेशन सर्वर से आने वाले कनेक्शन को डेटाबेस में देखना चाहता हूं, तो मैं निम्नलिखित कमांड का उपयोग करता हूं:

SELECT username FROM v$session 
WHERE username IS NOT NULL 
ORDER BY username ASC;

सामान्य लेकिन प्रभावी।


6
select s.sid as "Sid", s.serial# as "Serial#", nvl(s.username, ' ') as "Username", s.machine as "Machine", s.schemaname as "Schema name", s.logon_time as "Login time", s.program as "Program", s.osuser as "Os user", s.status as "Status", nvl(s.process, ' ') as "OS Process id"
from v$session s
where nvl(s.username, 'a') not like 'a' and status like 'ACTIVE'
order by 1,2

यह क्वेरी सभी पृष्ठभूमि प्रक्रियाओं को फ़िल्टर करने का प्रयास करती है।



5
select
  username,
  osuser,
  terminal,
  utl_inaddr.get_host_address(terminal) IP_ADDRESS
from
  v$session
where
  username is not null
order by
  username,
  osuser;

4
एसओ में आपका स्वागत है! कृपया अपने उत्तरों के लिए कुछ अंतर्ज्ञान प्रदान करें।
वेफथिम


4

निम्नलिखित आपको उन ऑपरेटिंग सिस्टम उपयोगकर्ताओं की सूची देता है जो कनेक्शन की संख्या के आधार पर क्रमबद्ध हैं, जो अत्यधिक संसाधन उपयोग की तलाश में उपयोगी है।

select osuser, count(*) as active_conn_count 
from v$session 
group by osuser 
order by active_conn_count desc

1
select 
    count(1) "NO. Of DB Users", 
    to_char(sysdate,'DD-MON-YYYY:HH24:MI:SS') sys_time
from 
    v$session 
where 
    username is NOT  NULL;

1
हालांकि यह कोड स्निपेट प्रश्न को हल कर सकता है, जिसमें स्पष्टीकरण सहित वास्तव में आपकी पोस्ट की गुणवत्ता में सुधार करने में मदद करता है। याद रखें कि आप भविष्य में पाठकों के लिए प्रश्न का उत्तर दे रहे हैं, और उन लोगों को आपके कोड सुझाव के कारणों का पता नहीं चल सकता है।
दिमासन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.