1. Oracle DB 에 접속이 되었다가, 연결이 종료되는 경우
A. 특정 사용자 Profile 에 설정된 limit 때문에 연결이 종료 되는 경우 일수도 있음
-- 확인
> Profile 을 사용하려면, resource_limit 이 true 로 설정되어 있어야 함 -- 11gR2 Default 는 false
SQL> select name, value from v$parameter where name like '%resource%' ;
SQL> alter system set resource_limit = true scope=spfile ; -- 설정방법
> 생성되어 있는, Profile 들을 확인 : PROFILE 명이 Dafault 인 것이 기본설정 Profile 입니다.
SQL> select profile, resource_name, limit from dba_profiles where profile = '%NEW';
-- 조치방법
> 해당 Limit 을 제거한 Profile 을 생성하여, 해당 User 에 부여 (아래는 Sample)
> 특정하지 않은 limit 은 Default profile 을 따름
SQL> ALTER PROFILE Profile_NEW limit
PASSWORD_GRACE_TIME UNLIMITED
FAILED_LOGIN_ATTEMPTS UNLIMITED
PASSWORD_LIFE_TIME UNLIMITED
PASSWORD_LOCK_TIME UNLIMITED
idle_time UNLIMITED ;
SQL> alter user user_new profile Profile_new ;
-- 참조값
> sessions_per_user 2 => 유저당 2개의 세션을 허용
> idle_time 1 => 접속후 1분 동안 아무런 작업이 일어나지 않는다면 자동으로 Session을 종료
> connect_time 480 => Open 된 세션을 8분(480초) 동안만 사용 허락, 분단위의 연결시간 제한
> LOGICAL_READS_PER_SESSION 1028 => SESSION이 열려있는 동안 disk나 memory에서 읽을 수 있는 data block 수가 1024 Block
B. DB Instance Lelvel 로 설정된 limit 때문에 연결이 종료 되는 경우일 수도 있음
-- 확인
SQL> select * from v$resource_limit ; |
RESOURCE_NAME |
CURRENT UTILIZATION |
MAX UTILIZATION |
INITIAL ALLOCATION |
LIMIT VALUE |
processes |
31 |
1800 |
2000 |
2000 |
sessions |
39 |
3024 |
3024 |
3024 |
enqueue_locks |
25 |
61 |
34780 |
34780 |
enqueue_resources |
22 |
59 |
13524 |
UNLIMITED |
ges_procs |
0 |
0 |
0 |
0 |
ges_ress |
0 |
0 |
0 |
UNLIMITED |
위의 셈풀 결과에서 processes 가 프로세스 갯수(백그라운드+Dedicate Process), 그리고 session 이 동시접속 세션 수 입니다.
current_utilization 이 현재 접속 카운트이고... (1명 접속할 때 마다 1씩 증가)
max_utilization 이 오라클을 시작한 이래로 최대로 접속했을 때 피크 수치입니다
-- 조치
session (동시접속 세션 수) 가 3024 로 설정되어 있는데 ( Defailt 값도 3024 , 현 설정값도 3024 임),
현재는 session (동시접속 세션 수) 가 39 입니다만, DB 구동 후 동시접속 세션 수가 3024 에 도달할 적이 있으므로,
이 때, 더 이상의 session 들이 DB 에 연결되지 못하는 상황이엇을 것입니다. ==> 따라서 session 을 5000 개 정도로 늘릴 필요가 있습니다.
sessions 과 processes 는 함꼐 증가 되어야 하며, sessions 은 processes * 1.1 + 5개 이상이 되어야 합니다. (DB 버전에 따라 상이)
SQL> alter system set sessions = 5550 scope = spfile ; SQL> alter system set processes = 5000 scope = spfile ; SQL> shutdown immediate ; SQL> startup ; |
'IT-Tech > Database' 카테고리의 다른 글
[OracleDB] DB 11gR2 Silent Mode Install Script on Linux x86-64 (0) | 2016.08.16 |
---|---|
[OracleDB] DB12c 에서 ORA-54032, ORA-54033 조치방법, 컬럼 이름변경 및 삭제가 안될 때 (0) | 2016.08.16 |
[OracleDB] Datapump 를 이용한 DB 간 Schema 단위 이관 (0) | 2016.07.20 |
[OracleDB] 공통 변환함수 to_char, to_date, to_number (0) | 2012.05.03 |
[OracleDB] 공통 Invalid Object Compile 방법 (0) | 2012.05.02 |