본문 바로가기
Infra & Security Eng/Database Engineering

오라클(Oracle) DB 구조 완전 정리 — 인스턴스, 데이터베이스, 백그라운드 프로세스

by 엔지니어 E 2026. 4. 6.
반응형

⚠️ 유저 프로세스 & 서버 프로세스
유저 프로세스가 활성화되어 있을 때 서버 프로세스가 활성화 된다 

1. 오라클의 기본 구성 ★★★

오라클은 인스턴스와 데이터베이스로 구성된다

- 인스턴스(=메모리, 1차 메모리): 컴퓨터를 켜야 존재하는 영역
- 데이터베이스(=디스크, 2차 메모리): 컴퓨터를 꺼도 남아있는 영구 저장소 

컴퓨터를 끄면 디스크만 남는다. 컴퓨터를 켜면 유저 프로세스가 활성화되는 것이다. 데이터는 데이터베이스에 저장 된다 

2. 데이터베이스의 구성 ★★★
데이터베이스는 세 가지 파일로 구성된다 

- 데이터 파일: 실제 데이터가 저장 되는 곳 
- 리두 로그 파일: 작업 복구에 사용(미러링 필수)
- 컨트롤 파일: 데이터베이스 구조 정보 저장(먼저 읽힘)
* 파일의 이름이 뭔지, 현재 상태가 어떤지 등 물리적인 정보가 들어있음

3. 인스턴스의 구성 ★★★
인스턴스는 SGA는 메모리PMON(피몬), SMON(에스몬), DBWR(디비롸이터), LGWR(로고롸이터), CKPT(체크포인트) (  (=백그라운드 프로세서 )으로 구성된다

1) SGA(System Glabal Area)
(1) Database Buffer Cache
- 우리가 실제 작업 하는 메모리 공간으로 INSERT, UPDATE, DELETE 등 작업(트랜잭션) 은 여기서 수행된다 

SQL
1. 문장 유효성 검사 (* 문장이 비정상이면 실행 안하게 됨)
2. 실행 계획 세움 (* 실행 계획 세운 것을 라이브러리 캐쉬에 저장함) 
3. 실행: 버퍼 캐시에 데이터가 있으면 바로 작업, 없으면 디스크에서 읽어와 버퍼 캐시에 올린 후 작업

* commit; 할때가 아니라 insert 할때 데이터가 사용 된다

(2) Redo Log Buffer(작업일지)
- INSERT, UPDATE, DELETE 등 트랜잭션을 시간 순서대로 기록함
- 데이터를 저장하는게 아니라 "무슨 작업을 했는지"를 기록하는 것 
- redo log 파일이 손상되지 않는 한 데이터베이스의 데이터는 손상되지 않는다(*손상 되지 않기 위해 미러링 실시)
* 미러링: 완전히 같은 파일을 2개 가지고 있는 것
- 데이터를 복구할 때 사용한다
- LGWR이 이 내용을 리두 로그 파일로 써준다 

2) 백그라운드 프로세스
(1) PMON(피몬): 
프로세스 모니터 - 비정상 종료된 프로세스 정리
(2) SMON(에스몬): 시스템 모니터 - 인스턴스 복구 
(3) DBWR(디비롸이터): Database Buffer Cache -> 데이터 파일로 기록 ★
(4) LGWR(로그롸이터): Redo Log Buffer -> 리두 로그 파일로 기록 
(5) CKPT(체크포인트): 동기화 시점 기록, DBWR 작동 신호 전달
* 동기화 시점이 다르면 데이터베이스가 불안정한 상태라고 생각을 하게 됨. 그래서 동기화 시점을 기록해줌
⚠️이 5개 중 1개라도 죽으면 나머지도 전부 죽는다. 절대 건드리면 안 됨

DBWR이 핵심인 이유: 데이터베이스(디스크)가 바뀌면 극적으로 바뀌는 애가 DBWR 이다. DBWR은 Database Buffer Cache를 긁어다가 데이터 파일에 전달해준다

4. 외부 파일 3종 
1) 파라미터(매개변수) 파일: 파라미터 파일은 없앨 수 없음. 인스턴스를 띄우기 위한 여러 설정 값들이 파라미터 파일에 들어 있다
* 이름과 위치는 마음대로 바꾸면 안됨
* 과거: p파일(텍스트파일) -> 현재: sp파일(바이너리파일) / 2개 파일이 있는 것임
* 바이너리 파일: 0과 1로만 이루어진 파일. 사람이 그냥 열어서 읽을 수 없고, 프로그램이 일겅야 해석 가능한 파일
* SP 파일은 P파일을 컴파일해서 만든다(반대도 가능)
* 파라미터 파일에서 p파일과 sp파일이 있다면 sp 파일을 사용함  
2) 패스워드 파일: 관리자 인증에 사용
* 오라클 관리 계정인 sys와 system 이 있음. sys가 같은 컴퓨터가 아니라 외부 컴퓨터에서 접속 할때 패스워드가 필요함
3) 아카이브 로그 파일: 리두 로그 파일을 바깥에 복사한 것 
* 아카이브 로그 파일이 없으면 -> No Archive Log Mode
* 아카이브 로그 파일이 있으면 -> Archive Log Mode

⚠️ 약자 표기 주의 
SGA: 약자는 한글로 쓰면 안됨
컨트롤 파일, 리두로그파일: 한글로 써도 됨

2,4장 제외 / 1,3,5장만 읽을 것