Nice programing

Oracle 데이터베이스에 허용되는 최대 연결 수를 확인하는 방법은 무엇입니까?

nicepro 2020. 10. 4. 13:23
반응형

Oracle 데이터베이스에 허용되는 최대 연결 수를 확인하는 방법은 무엇입니까?


SQL을 사용하여 Oracle 데이터베이스에 허용되는 최대 연결 수를 확인하는 가장 좋은 방법은 무엇입니까? 마지막으로 현재 세션 수와 허용 된 총 수를 보여 드리고자합니다 (예 : "현재 80 개 연결 중 23 개 사용").


Oracle 데이터베이스가 지원하는 연결 수를 결정하는 데는 몇 가지 제한이있을 수 있습니다. 가장 간단한 방법은 SESSIONS 매개 변수와 V $ SESSION을 사용하는 것입니다.

데이터베이스가 허용하도록 구성된 세션 수

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

현재 활성화 된 세션 수

SELECT COUNT(*)
  FROM v$session

하지만 말했듯이 데이터베이스 수준과 운영 체제 수준 및 공유 서버가 구성되었는지 여부에 따라 다른 잠재적 인 제한이 있습니다. 공유 서버가 무시되면 SESSIONS 매개 변수의 한계에 도달하기 전에 PROCESSES 매개 변수의 한계에 도달 할 수 있습니다. 그리고 각 세션에는 일정량의 RAM이 필요하기 때문에 운영 체제 제한에 도달 할 수 있습니다.


이 소스를 기반으로 이것이 작동 할 것이라고 생각했습니다 .

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

그러나 Justin Cave가 옳습니다. 이 쿼리는 더 나은 결과를 제공합니다.

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 문서참조하십시오 .

세션에 대한 정보 만 얻으려면 :

    select current_utilization, limit_value 
    from v$resource_limit 
    where resource_name='sessions';
CURRENT_UTILIZATION LIMIT_VALUE
------------------- -----------
                110792

두 가지에 대한 정보를 표시하려면 다음을 시도하십시오.

    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
------------- ------------------- --------------- --- --------
프로세스 96309500
세션 104323792

클러스터 전체의 총 세션 수를 얻으려면 RAC에 gv $ session을 사용하십시오.


참고 : 이것은 질문의 일부에만 대답합니다.

허용되는 최대 세션 수만 알고 싶다면 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보기는 oracle 세션, 프로세스를 한눈에보기 위해 저에게 매우 흥미 롭습니다 .. :

https://bbdd-error.blogspot.com.es/2017/09/check-sessions-and-processes-limit-in.html


select count(*),sum(decode(status, 'ACTIVE',1,0)) from v$session where type= 'USER'

참고URL : https://stackoverflow.com/questions/162255/how-to-check-the-maximum-number-of-allowed-connections-to-an-oracle-database

반응형