원인
1. 세션이 데이터베이스에 설정된 최대 접속가능한 세션 수보다 더 많이 접속하려는 경우 발생합니다.
2. CLEANUP 쓰레드가 종료된 세션을 정리하지 못하는 경우 발생합니다.
해결방안
방법 1. 접속가능한 세션 수를 추가합니다. 이 때에는 데이터베이스 재구동이 필요합니다.
-> sysdba 로도 접속할 수 없는 경우 admin Role 을 이용하여 접속할 수 있습니다.
$ gsql sys --as admin Copyright © 2010 SUNJESOFT Inc. All rights reserved. Release Venus.3.1.1 revision(23756) Connected to GOLDILOCKS Database.
gSQL> ALTER SYSTEM SET CLIENT_MAX_COUNT = 1024 SCOPE=FILE;
gSQL> ALTER SYSTEM SET PROCESS_MAX_COUNT = 1024 SCOPE=FILE;
gSQL> SHUTDOWN IMMEDIATE
gSQL> STARTUP
* 변경된 프로퍼티를 확인합니다.
gSQL> SELECT PROPERTY_NAME, PROPERTY_VALUE FROM V$PROPERTY WHERE PROPERTY_NAME LIKE '%_MAX_COUNT%'; PROPERTY_NAME PROPERTY_VALUE ----------------- -------------- PROCESS_MAX_COUNT 1024 CLIENT_MAX_COUNT 1024 2 rows selected.
* ulimit 의 "open files", "max user processes" 값을 변경한 프로퍼티 값보다 크게 설정합니다.
$ ulimit -n 1024 $ ulimit -u 1024 $ ulimit -a open files (-n) 1024 max user processes (-u) 1024
원인 2번에 대해서는 다양한 상황에 의해 발생될 수 있으며,
밀리는 시점에 장비의 상태정보, 로그 등등을 종합적으로 확인하면서 진행해야 합니다.