Jak sprawdzić maksymalną liczbę dozwolonych połączeń do bazy danych Oracle?
Jaki jest najlepszy sposób, używając SQL, aby sprawdzić maksymalną liczbę połączeń, która jest dozwolona dla bazy danych Oracle? Na koniec chciałbym pokazać aktualną liczbę sesji i całkowitą dozwoloną liczbę, np. "obecnie używane są 23 z 80 połączeń".
7 answers
Istnieje kilka różnych ograniczeń, które mogą pojawić się przy określaniu liczby połączeń obsługiwanych przez bazę danych Oracle. Najprostszym podejściem byłoby użycie parametru SESSIONS I V$SESSION, czyli
Liczba sesji, na które została skonfigurowana baza danych
SELECT name, value
FROM v$parameter
WHERE name = 'sessions'
Liczba aktualnie aktywnych sesji
SELECT COUNT(*)
FROM v$session
Jak już wspomniałem, istnieją jednak inne potencjalne limity zarówno na poziomie bazy danych, jak i na poziomie systemu operacyjnego i w zależności od czy serwer współdzielony został skonfigurowany. Jeśli serwer współdzielony jest ignorowany, możesz również trafić limit parametru process przed naciśnięciem limitu parametru SESSIONS. I możesz trafić limity systemu operacyjnego, ponieważ każda sesja wymaga pewnej ilości pamięci RAM.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-02 13:53:36
Myślałem, że to zadziała, na podstawie tego źródła .
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
Jednak Justin Cave ma rację. To zapytanie daje lepsze wyniki:
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'
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-02 14:02:06
Parametr sessions pochodzi z parametru processes i zmienia się odpowiednio po zmianie liczby max procesów. Więcej informacji można znaleźć w Oracle docs.
Aby uzyskać tylko informacje o sesjach:
select current_utilization, limit_value
from v$resource_limit
where resource_name='sessions';
CURRENT_UTILIZATION LIMIT_VALUE ------------------- ----------- 110 792
Spróbuj to pokazać informacje o obu:
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 LIMIT_VALUE ------------- ------------------- --------------- ----------- processes 96 309 500 sessions 104 323 792
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-26 14:00:46
Użyj GV$session dla RAC, jeśli chcesz uzyskać całkowitą liczbę sesji w całym klastrze.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-05 18:44:03
Uwaga: To odpowiada tylko na Część pytania.
Jeśli chcesz tylko znać maksymalną liczbę dozwolonych sesji, możesz wykonać w sqlplus, jako sysdba:
SQL> show parameter sessions
To daje wyjście takie jak:
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
Parametr sessions jest tym, czego chcesz.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-16 08:10:49
V$resource_limit widok jest dla mnie tak interesujący,aby spojrzeć na sesje, procesy oracle..:
Https://bbdd-error.blogspot.com.es/2017/09/check-sessions-and-processes-limit-in.html
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-14 05:58:51
select count(*),sum(decode(status, 'ACTIVE',1,0)) from v$session where type= 'USER'
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-17 16:54:24