ओरेकल डेटाबेस के लिए अनुमत कनेक्शन की अधिकतम संख्या की जांच कैसे करें?


90

ओरेकल डेटाबेस के लिए अनुमत अधिकतम कनेक्शनों की जांच करने के लिए SQL का उपयोग करने का सबसे अच्छा तरीका क्या है? अंत में, मैं सत्रों की वर्तमान संख्या और स्वीकृत कुल संख्या दिखाना चाहूंगा, जैसे "वर्तमान में, 80 में से 23 कनेक्शन का उपयोग किया जाता है"।

जवाबों:


121

कुछ अलग-अलग सीमाएँ हैं जो एक Oracle डेटाबेस समर्थन वाले कनेक्शन की संख्या निर्धारित करने में खेलने के लिए आ सकती हैं। सबसे सरल तरीका SESSIONS पैरामीटर और V $ SESSION का उपयोग करना होगा, अर्थात

डेटाबेस को अनुमति देने के लिए सत्रों की संख्या को कॉन्फ़िगर किया गया था

SELECT name, value 
  FROM v$parameter
 WHERE name = 'sessions'

वर्तमान में सक्रिय सत्रों की संख्या

SELECT COUNT(*)
  FROM v$session

जैसा कि मैंने कहा, हालाँकि, डेटाबेस स्तर और ऑपरेटिंग सिस्टम स्तर पर दोनों में अन्य संभावित सीमाएँ हैं और यह निर्भर करता है कि साझा सर्वर कॉन्फ़िगर किया गया है या नहीं। यदि साझा किए गए सर्वर को अनदेखा किया जाता है, तो आप SESSIONS पैरामीटर की सीमा को हिट करने से पहले PROCESSES पैरामीटर की सीमा को अच्छी तरह से मार सकते हैं। और आप ऑपरेटिंग सिस्टम की सीमा को मार सकते हैं क्योंकि प्रत्येक सत्र में एक निश्चित मात्रा में रैम की आवश्यकता होती है।


क्षमा करें, हम इस क्वेरी को कैसे चला सकते हैं? मुझे "SELECT COUNT (*) FROM v $ सेशन के लिए" तालिका या दृश्य मौजूद नहीं है "प्राप्त हो रहा है
ग्रामीण

3
@ yin03 - इसका तात्पर्य है कि आप जो भी ओरेकल उपयोगकर्ता का उपयोग कर रहे हैं उनके पास v$sessionदृश्य पर विशेषाधिकार नहीं हैं । आपको उस विशेषाधिकार को देने के लिए अपने DBA से पूछना होगा। सबसे अधिक संभावना है, आप select any dictionaryविशेषाधिकार चाहते हैं, हालांकि select_catalog_roleभूमिका या प्रत्यक्ष अनुदान उस वस्तु पर भी काम करेगा।
जस्टिन केव

36

सत्र पैरामीटर से ली गई है प्रक्रियाओं पैरामीटर और उसके अनुसार बदल जाता है जब आप अधिकतम प्रक्रियाओं की संख्या में परिवर्तन। आगे की जानकारी के लिए Oracle डॉक्स देखें ।

सत्रों के बारे में केवल जानकारी प्राप्त करने के लिए:

    select current_utilization, limit_value 
    from v$resource_limit 
    where resource_name='sessions';
CURRENT_UTILIZATION लिमिट_वायु
------------------- -----------
                110 792

दोनों के बारे में जानकारी दिखाने के लिए इसे आज़माएँ:

    select resource_name, current_utilization, max_utilization, limit_value 
    from v$resource_limit 
    where resource_name in ('sessions', 'processes');
RESOURCE_NAME CURRENT_UTILIZATION MAX_UTILIZATION लिमिट_वायु
------------- ------------------- --------------- --- --------
96 309 500 प्रक्रियाओं
सत्र 104 323 792

34

मुझे लगा कि इस स्रोत के आधार पर यह काम करेगा ।

SELECT
  'Currently, ' 
  || (SELECT COUNT(*) FROM V$SESSION)
  || ' out of ' 
  || DECODE(VL.SESSIONS_MAX,0,'unlimited',VL.SESSIONS_MAX) 
  || ' connections are used.' AS USAGE_MESSAGE
FROM 
  V$LICENSE VL

हालांकि, जस्टिन गुफा सही है। यह प्रश्न बेहतर परिणाम देता है:

SELECT
  'Currently, ' 
  || (SELECT COUNT(*) FROM V$SESSION)
  || ' out of ' 
  || VP.VALUE 
  || ' connections are used.' AS USAGE_MESSAGE
FROM 
  V$PARAMETER VP
WHERE VP.NAME = 'sessions'

क्षमा करें, हम इस क्वेरी को कैसे चला सकते हैं? मैं प्राप्त कर रहा हूँ "तालिका या मौजूद नहीं देख" "COUNT का चयन करें (*) वी $ सत्र से" के लिए
ग्रामीण

2
@ yin03 क्या आप Oracle या किसी अन्य प्रकार के डेटाबेस का उपयोग कर रहे हैं? यदि ओरेकल, यह एक अनुमति मुद्दा हो सकता है।
जोसेफटाइन्स

1
निर्दोष क्वेरी @JosephStyons!
गौरव

@guarav, मुझे खुशी है कि आपने इसे उपयोगी पाया!
जोसेफिसन

4

नोट: यह केवल सवाल का हिस्सा है।

यदि आप केवल सत्र की अधिकतम संख्या जानना चाहते हैं, तो आप sqlplus में sysdba के रूप में निष्पादित कर सकते हैं:

SQL> show parameter sessions

यह आपको एक आउटपुट देता है जैसे:

    NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
java_max_sessionspace_size           integer     0
java_soft_sessionspace_limit         integer     0
license_max_sessions                 integer     0
license_sessions_warning             integer     0
sessions                             integer     248
shared_server_sessions               integer

सत्र पैरामीटर वह है जो आप चाहते हैं।


4

आरएसी के लिए जीवी $ सत्र का उपयोग करें, यदि आप क्लस्टर भर में सत्र की कुल संख्या प्राप्त करना चाहते हैं।



हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.