Как проверить максимальное количество разрешенных подключений к базе данных Oracle?
7 ответов
существует несколько различных ограничений, которые могут возникнуть при определении количества подключений, поддерживаемых базой данных Oracle. Самым простым подходом было бы использовать параметр SESSIONS и V$SESSION, т. е.
количество сеансов база данных была настроена так, чтобы разрешить
SELECT name, value
FROM v$parameter
WHERE name = 'sessions'
число активных в данный момент сеансов
SELECT COUNT(*)
FROM v$session
Как я уже сказал, существуют и другие потенциальные ограничения как на уровне базы данных, так и на рабочем уровне уровень системы и в зависимости от того, настроен ли общий сервер. Если общий сервер игнорируется, вы можете нажать ограничение параметра PROCESSES до того, как вы нажмете ограничение параметра SESSIONS. И вы можете нажать ограничения операционной системы, потому что каждый сеанс требует определенного количества ОЗУ.
Я думал, что это сработает, основываясь на этот источник.
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'
на сеансы параметр является производным от процессы параметр и соответственно изменяется при изменении числа Маха процессов. Вижу Oracle docs для получения дополнительной информации.
чтобы получить только информацию о сессиях:
select current_utilization, limit_value
from v$resource_limit
where resource_name='sessions';
CURRENT_UTILIZATION LIMIT_VALUE ------------------- ----------- 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 LIMIT_VALUE ------------- ------------------- --------------- ----------- processes 96 309 500 sessions 104 323 792
Примечание: это отвечает только на часть вопроса.
Если вы просто хотите знать максимальное количество разрешенных сеансов, то вы можете выполнить в 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
параметр сеансов-это то, что вы хотите.
V$resource_limit view настолько интересен для меня,чтобы просмотреть сеансы oracle, процессы..:
https://bbdd-error.blogspot.com.es/2017/09/check-sessions-and-processes-limit-in.html