ORA-01102: cannot mount database in EXCLUSIVE mode
Oracle의미
다른 인스턴스(또는 이전 인스턴스의 잔여 파일)가 여전히 락을 보유한 것으로 보여 데이터베이스를 EXCLUSIVE 모드로 마운트할 수 없다. 인스턴스가 MOUNT 단계에서 멈춘다.
원인
이전 인스턴스가 정상 종료되지 않아 락 파일($ORACLE_HOME/dbs 아래의 lk<SID>, 또는 잔여 공유 메모리/세마포어)이 남아 있거나, 다른 인스턴스가 이미 같은 데이터베이스에 연결되어 있거나, RAC가 아닌 설치에서 두 번째 인스턴스가 시작된 경우다. 이전 인스턴스의 잔여 프로세스/공유 메모리나 오래된 lk<SID> 파일이 가장 흔한 원인이다.
해결 방법
실제로 다른 인스턴스가 실행 중이지 않은지 확인한다: ps -ef | grep pmon 및 ipcs -m (공유 메모리 세그먼트). 잔여물이 있으면 인스턴스를 ABORT하고 정리하며, 필요하면 ipcrm으로 잔여 세그먼트/세마포어를 제거한다. $ORACLE_HOME/dbs 아래의 lk<SID> 락 파일을 삭제한다(인스턴스가 확실히 내려간 경우에만). 이후 STARTUP MOUNT를 시도한다. RAC에서는 CLUSTER_DATABASE와 노드 상태를 확인한다.
같은 데이터베이스의 다른 항목
- ORA-01033ORACLE initialization or shutdown in progress (ORACLE 초기화 또는 종료 진행 중)
- ORA-00600internal error code, arguments: [...]
- ORA-07445exception encountered: core dump
- ORA-29913error in executing ODCIEXTTABLEOPEN callout (ODCIEXTTABLEOPEN callout 실행 오류)
- ORA-19804cannot reclaim N bytes disk space from M bytes limit (M바이트 한도에서 N바이트 디스크 공간을 회수할 수 없음)
- ORA-00494enqueue held for too long by 'inst N, osid M' (enqueue가 너무 오래 보유됨)
- ORA-04021timeout occurred while waiting to lock object (객체 락 대기 중 타임아웃 발생)