오라클 데이터베이스 기동하기

오라클은 내부적으로 어떤 과정을 거쳐 서비스 가능 상태가 되는지 그 흐름을 파악해보도록 하겠습니다.
1단계. database CLOSE(Shutdown 상태)
데이터베이스 및 인스턴스 서비스가 모두 종료되어 있는 상태입니다.
2단계. startup nomount
기동 시 parameter file이 필요하며, parameterfile을 근거로 데이터베이스 인스턴스가 구성 됩니다.
SQL> startup nomount
ORACLE 인스턴스가 시작되었습니다.
Total System Global Area 1728050048 bytes
Fixed Size 8897408 bytes
Variable Size 402653184 bytes
Database Buffers 1308622848 bytes
Redo Buffers 7876608 bytes
SQL> show parameter pfile
NAME TYPE ------------------------------------ ---------------------------------
VALUE ------------------------------
spfile string /app/ora19c/19c/dbs/spfileorcl
.ora
nomount 상태의 경우 파라미터 파일이 필요합니다. 파라미터 파일이란 오라클이 구동 할 수 있게 설계되어있는 도면과 같으며, 해당 파일을 참조하여 SGA(시스템글로벌영역) 및 기타 필요한 환경을 구성합니다.
💡 2가지의 파라미터 파일
pfile (정적 파라미터 파일 initSID.ora )
- $ORACLE_HOME/dbs/spfile<SID>.ora
- OS에서 vi 편집기를 이용하여 파라미터의 값을 변경
- NOMOUNT 단계 이상이라면 다시 pfile을 쓰지 않음
- 시스템 레벨에서 변경은 되지만 메모리에서 잠깐 사용하고 반환
spfile (동적 파라미터 파일 spfileSID.ora)
- $ORACLE_HOME/database/spfile<SID>.ora
- OS에서 vi 편집기로 절대 수정을 하면 안됨 (쿼리로 수정)
- NOMOUNT 단계 이상이라면 spfile을 다시 쓰기 때문에 제거 이동 X
3단계.startup mount
controlfiles가 필요하며, 데이터베이스에서 인스턴스 DB가 맞춰지는 단계입니다.
💡Control File
Database가 운영될 때 실시간으로 각종 정보가 저장되고 또 조회 됩니다. 이 파일에 장애가 발생할 경우 Instance가 실패되어 중단이 발생하여 매우 중요한 파일이라 복구할 수 있도록 복사본을 만들어 분산 관리 권장합니다.
오라클 STARTUP 프로세스는 가장 먼저 Parameter File을 읽어 Control File의 위치를 파악하는 것으로 시작됩니다. 이후 해당 경로의 Control File들을 메모리로 로드하여 데이터베이스의 물리적 구조를 확인합니다. DB mount 단계에서는 데이터파일이나 redo log 파일등이 실제 물리적으로 파일이 사용되는 상태는 아니라 redo log 파일의 유무를 확인하지 않습니다.
# 컨트롤 파일 위치 지정 (다중화된 컨트롤 파일)
control_files=
('/u01/app/oracle/oradata/orcl/control01.ctl',
'/u02/app/oracle/oradata/orcl/control02.ctl',
'/u03/app/oracle/oradata/orcl/control03.ctl')
SQL> select name from v$controlfile;
NAME -------------------------------------------------------------------------------- /app/ora19c/oradata/ORCL/controlfile/o1_mf_k7vys589_.ctl /app/ora19c/fast_recovery_area/ORCL/controlfile/o1_mf_k7vys58l_.ctl
4단계. database open
실제 데이터베이스 서비스를 제공하기 위해서는 Datafile과 Redo Log 파일이 반드시 필요합니다. OPEN 단계에서는 이 파일들을 물리적으로 오픈하며, 시스템은 모든 파일의 일관성을 검사합니다. 이 과정에서 만약 비정상적인 종료 흔적이 발견되면, 인스턴스는 즉시 인스턴스 복구(Instance Recovery)를 자동으로 수행하여 데이터의 무결성을 확보한 뒤 서비스를 시작합니다.
💡 종료모드
SQL> shutdown : 노말 모드로 세션이 끝날 때 까지 대기합니다.
SQL> shutdown transactional : 기존 트랜잭션을 종료할 수 있지만 새 트랜잭션을 시작하지 않습니다.
SQL> shutdown immediate : 가장 일반적으로 사용되는 옵션으로, 커밋되지 않은 트랜잭션은 롤백됩니다.
SQL> shutdown abort : 이 모드는 종료 전에 Recovery 절차를 먼저 수행하므로, 반드시 필요한 경우에만 사용해야 합니다. 수 초 이내에 정전이 예상되는 등 긴급한 상황에서 즉시 시스템을 종료해야 할 때 사용합니다.
'데이터베이스' 카테고리의 다른 글
| [데이터베이스] DML Lock의 이중 구조와 Enqueue 대기 메커니즘 심층 분석 (0) | 2026.01.30 |
|---|---|
| [데이터베이스] 실시간 메모리 vs 물리적 장부: 다이나믹 뷰(V$)와 딕셔너리 (0) | 2026.01.29 |
| [데이터베이스] 오라클 물리 저장소의 핵심: Control File부터 데이터 블록 체인화 (2) (0) | 2026.01.29 |
| [데이터베이스] 오라클 물리 저장소의 핵심: Control File부터 데이터 블록 체인화 (1) (0) | 2026.01.29 |
| [데이터베이스] 오라클 데이터베이스 구조 탐색 (2) (0) | 2026.01.22 |