■ 개요
접속이 안된다는 이상이 있다고 연락을 받고 확인을 하려 할 때 maximum processes 값을 초과하여 접속을 할 수 없을 경우가 있을 수 있다.
아니면 shared pool의 부족 등의 이유도 있을 수 있다.
이때 선택하는 방법은 pmon을 kill하고 startup 하는 비상 조치를 취할 수 있는데 문제는 이 경우 추후 원인을 찾지 못할 수도 있고 이 조치를 취하면 안되는 즉, DB를 내리면 안되는 경우도 있을 수 있다.
그래서 -prelim 옵션이 존재한다. preliminary connect 이다.
(오라클 매뉴얼에서 검색으로도 찾을 수 없다)
일반적으로 정상 상태에서 sysdba 접속시 새 프로세스를 시작하고, 새 프로세스가 SGA에 접속하고, SGA내에 프로세스와 세션 상태 정보를 넣기 위한 메모리를 할당받아 남긴다.
하지만 prelim 옵션은 마지막 과정이 없다.
그래서 Lock이나 latch나 mutext를 사용하는 작업을 할 수는 없다.
(prelim 접속시 shutdown 명령도 abort만 가능하다.)
■ 테스트
SQL*Plus: Release 11.2.0.3.0 Production on Fri May 27 13:17:51 2016
Copyright (c) 1982, 2011, Oracle. All rights reserved.
SQL> select 1 from dual;
select 1 from dual
*
ERROR at line 1:
ORA-01012: not logged on
Process ID: 0
Session ID: 0 Serial number: 0
SQL> oradebug setmypid
Statement processed.
SQL> oradebug unlimit
Statement processed.
SQL> oradebug hanganalyze 12
Statement processed.
RAC일 경우에는 옵션이 다르게 있다.
SQL> oradebug unlimit
SQL> oradebug -g all hanganalyze 3
SQL> oradebug -g all dump systemstate 266
※해당 기능을 사용한 케이스의 링크
http://arup.blogspot.kr/2008/08/diagnosing-library-cache-latch.html
'Knowledge > Oracle' 카테고리의 다른 글
Oracle DBA와 개발자의 필독서 (2) | 2016.09.23 |
---|---|
Data guard와 Active data guard license (0) | 2016.08.12 |
impdp, imp 주의사항 (0) | 2016.03.20 |
Oracle Create Table 내부 절차 (0) | 2015.10.21 |
SQL Loader Direct Load (0) | 2015.10.05 |