이해미

[2026년 2월 5일] 오라클 ADMIN 스터디 2조 자료

끄레 2026. 2. 6. 14:26

주제: 물리적 파일과 관리 프로세스 (파일 & 백그라운드)

담당: 1조 - 이해미, 신승민

 

범위:
CH 03 (데이터 파일과 테이블스페이스)
CH 04 (REDO 로그 파일)
CH 05 (초기화 파라미터 파일)
CH 07 (백그라운드 프로세스 - DBWR, LGWR 등)
핵심: 데이터가 디스크에 어떻게 저장되고, 누가(Process) 그것을 기록하는지 설명


챕터 3. 데이터 파일과 그에 관련된 구성 요소

 

1) 테이블 스페이스 : 데이터 파일을 그룹화한 논리적 저장공간 (데이터 파일 -물리적-과 달리 실재로는 존재하지 않음)

 - 오브젝트를 생성할 때 저장될 위치

종류 : 영구 테이블 스페이스, UNDO 테이블 스페이스, 임시 테이블 스페이스

 

1. 영구 테이블 스페이스 : 테이블이나 인덱스 등을 저장하기 위한 보존용 테이블

- SYSTEM : 데이터 딕셔너리가 저장

- SYSAUX : 데이터 컨포넌트(*오라클 기능을 확장하는 소프트웨어)가 저장 

- USERS : 기본적으로 생성되는 테이블 스페이스

 

2. UNDO 테이블 스페이스 : UNDO 세그먼트를 저장하기 위한 테이블 스페이스

- UNDO 세그먼트 : 변경 전의 데이터(UNDO 데이터)를 보관하는 영역

- UNDO 데이터 : 트랜젝션의 롤백이나 읽기 일관성을 위해 변경 전 데이터를 읽어야 할 경우 사용

( 오라클 8i 이전에는 수동으로 관리하기도 함 )

 

3. 임시 테이블 스페이스(TEMP) : 임시 세그먼트를 보관하기 위한 테이블 스페이스

- 임시 세그먼트 : 처리에 필요한 일시적인 작업 영역을 메모리상에 확보할 수 없을 때 할당되는 디스크 공간

: 데이터 양이 적을 때는 PGA의 SQL WORK AREAS에 처리 됨 -> 크기를 넘기면 임시 세그먼트를 할당

- 임시 파일 : 임시 테이블 스페이스를 구성하는 파일. 백업할 필요가 없음.

 

* 테이블 스페이스 확인 : (딕셔너리 뷰) DBA_TABLESPACE

* 데이터 파일 확인 : (딕셔너리 뷰) DBA_TEMP_FILES

 

* 데이터 파일과 블록

- 블록 : 데이터를 읽고 쓰는 작업을 블록 단위로 수행

- 크기 : 2KB, 4KB, 8KB, 16KB, 32KB (일반적으로는 8KB,16KB)

- 표준 블록 크기 : 데이터 베이스를 생성할 때 지정, 생성한 이후에는 변경 불가


 

2) 데이터베이스 버퍼 캐시 : 데이터를 효율적으로 읽고 쓰기 위해 SGA 내에 마련된 메모리 공간

- 캐시 : 데이터 파일에서 읽어 온 블록을 메모리상에 임시 보관, 읽기 성능을 개선

- LRU 리스트 : 공간이 부족해지면 마지막으로 사용한 후 가장 오래된 블록부터 제거해 공간을 확보

 

- 버퍼 : 메모리와 디스크의 처리 속도 차이에서 발생하는 비효율을 없애기 위함

: 변경된 블록을 즉시 데이터 파일에 기록하지 않고 데이터베이스 버퍼 캐시에 보관. 캐시의 공간이 부족해지거나 체크포인트가 발생하면 DBwn이 데이터 파일을 한번에 기록

 

- 크기 : DB_CACHE_SIZE로 지정

 

* 데이터베이스 버퍼 캐시 확인 : V$SGA 

* SGA 확인 : V$SGASTAT


챕터 4. REDO 로그 파일과 REDO 데이터

 

1) REDO 로그 파일 : REDO 데이터를 기록하는 파일

- 트랜잭션이 커밋된 시점에 REDO 로그 파일에 기록

- 장애가 발생했을 때 REDO 로그 파일을 이용해 복구 작업을 수행 -> REDO 로그 파일이 손실되면 REDO 로그가 손실되기 이전 시점까지만 복구 가능

 

2) REDO 로그 버퍼와 LGWR

- REDO 데이터는 일단 SGA의 REDO 로그 버퍼에 저장된 후 특정 시점에 백그라운드 프로세스인 LGWR에 의해 REDO 로그 파일에 기록

- 크기 : LOG_BUFFER로 지정

- LGWR이 REDO 데이터를 기록하는 시점 : 트랜잭션의 커밋, DBWn이 REDO 데이터 쓰기를 요청, 3초마다, REDO 로그 버퍼의 용량이 부족한 경우, 아직 기록하지 못한 REDO 데이터가 REDO 로그 버퍼 전체 크기의 3분의 1에 도달

 

3) REDO 로그 파일의 순환 기록

- 반드시 두 개 이상의 REDO 로그 파일이 할당되어야 함 -> LGWR은 REDO 로그 파일을 순환하면서 기록

- 로그 스위치 : CURRENT 상태 -> LGWR이 REDO 데이터를 내려 쓸 대상 -> LGWR이 REDO 데이터를 REDO 로그 파일에 기록 -> REDO 로그 파일 가득 차면 다음 REDO 로그 파일을 CURRENT로 전환 -> 다른 REDO 로그 파일이 가득 차면 처음 REDO 로그 파일에 덮어 씀

- REDO 데이터를 모두 보관해야 할 때는 덮어쓰이기 전에 REDO 데이터 파일을 백업해두어야 함

 


3) 아카이브 로그 모드와 아카이브 REDO 로그 파일

- 아카이브 로그 모드 : REDO 데이터를 덮어쓰기 전에 REDO 데이터를 아카이브 REDO 로그 파일로 복사해 운영중인 REDO 데이터를 저장하는 작동 방식

- 생성 : 로그 스위치가 발생하면 ARCn(아카이버)이 아카이브 REDO 로그 파일에 복사

- 로그 시퀸스 번호 : 차례로 생성된 아카이브 REDO 로그 파일을 식별하기 위해 번호 부여

 

4) REDO 로그 파일 다중화 : REDO 로그 파일이 여러 개 생성

- REDO 로그 그룹 : REDO 로그 파일(맴버)로 구성된 그룹을 의미

 

* REDO 로그 그룹 확인 : V$LOG

* REDO 로그 파일 확인 : V$LOG, V$LOGFILE

* 로그 스위치 실행 : ALTER SYSTEM SWITCH LOGFILE;

* 아카이브 로그 모드 확인 : ARCHIVE LOG LIST, V$DATABASE 뷰의 LOG_MODE

* 아카이브 로그 모드로 전환 : ALTER DATABASE ARCHIVELOG ; <-> ALTER DATABASE NOARCHIVELOG ;

* 아카이브 REDO 로그 파일 확인 : V$ARCHIVED_LOG


챕터 5. 서버 파라미터 파일과 컨트롤 파일

 

1) 서버 파라미터 파일 : 초기화 파라미터 설정값을 가지고 있는 바이너리 파일

- 인스턴스를 기동할 때 읽음 -> 없으면 인스턴스를 시작 할 수 없음

* 디렉토리 : [ WINDOW ] <ORACLE_HOME>\database\spfile<ORACLE_SID>.ora

: [UNIX/Linux] <ORACLE_HOME>\dbs\spfile<ORACLE_SID>.ora

 

2) 초기화 파라미터(SPFILE)

인스턴스 레벨의 변경 : ALTER SYSTEM SET <파라미터명> = <새로운 설정 값> SCOPE = MEMORY(즉시 반영, 재기동하면 초기화) | SPFILE(파일에만 반영, 재기동하면 변경) | BOTH(기본값, 파일과 동시에 즉시 반영)

세션 레벨의 변경 : ALTER SESSION SET <파라미터명> = <새로운 설정 값>

 

* 초기화 파라미터 확인 : SHOW PARAMETERS, V$PARAMETER, V$SYSTEM_PARAMETER

* V$SYSTEM_PARAMETER :

 

isdefault TRUE 기본 값
FALSE 파일에 명시적으로 지정됨
isses_modifiable TRUE ALTER SESSION문으로 변경 가능
FALSE ALTER SESSION문으로 변경 불가능
issys_modifiable IMMEDIATE 즉시 변경 가능
DEFERRED ALTER SYSTEM 이후에 접속하는 세션부터
FALSE 기동중에 변경 불가능

 

* 텍스트 형식의 초기화 파라미터 파일 (PFILE)

- 만들기 : CREATE PFILE FROM SPFILE

 

3) 컨트롤 파일 : 구성 정보 + 운영 관리 정보

- 구성 정보 : 데이터 베이스 이름, 데이터 파일의 파일명, REDO 로그 파일의 파일명, 테이블 스페이스에 관한 정보 등

- 운영 관리 정보 : REDO 로그, 아카이브 REDO 로그에 관한 정보, 백업 파일에 관한 정보, 체크 포인트 정보

- 다중화 : 컨트롤 파일이 하나라도 손상되면 인스턴스가 정지 -> 정상적인 컨트롤 파일을 복사해 덮어 쓰기로 기동 가능

 

* 컨트롤 파일 확인 : V$CONTROLFILE


챕터 7. 그 밖의 구성 요소

 

1) SMON : 정기적으로 인스턴스의 상태를 감시하고 데이터베이스의 무결성을 유지, 관리함

- 인스턴스 기동 시 복구가 필요하면 인스턴스 복구를 수행

- 다 사용한 임시 세그먼트 정리

- UNDO 세그먼트 관리

 

2) PMON : 정기적으로 프로세스의 상태를 감시하고 프로세스 처리에 관련된 데이터베이스의 무결성을 유지, 관리

- 클라이언트 애플리케이션이 비정상 종료됐을 때 처리 중이었던 데이터를 복구, 정리

- 디스패처 프로세스와 서버 프로세스의 상태를 정기적으로 체크하고 실행이 정지된 서버 프로세스가 있다면 재기동

- 인스턴스 및 디스패처 프로세스에 관한 정보를 리스너에 등록

 

3) CKPT : 체크포인트에 관련된 정보를 각 파일에 기록

- 체크 포인트가 발생하면 데이터베이스의 모든 데이터 파일과 컨트롤 파일에 체크 포인트의 정보를 기록

- 컨트롤 파일에 3초마다 REDO 로그 파일의 체크 포인트 위치에 정보 기록

 

* 백그라운드 프로세스 확인 : V$PROCESS 뷰의 BACKGROUND 컬럼 = 1 , V$BGPROCESS (설명)

 

4) 패스워드 파일 : 패스워드 파일 인증을 사용할 때 필요한 인증 데이터를 보관

- 디렉터리 명 : [WINDOW] : <ORACLE_HOME>\database\pwd<ORACLE_SID>.ora

: [UNIX/LINUX] : <ORACLE_HOME>\dbs\orapw<ORACLE_SID>.ora

 


5) 로그 파일 : 과거의 운영 상태를 확인할 때 사용

- ALTER 로그 : 데이터베이스 운영 중에 발생하는 심각한 에러나 기동, 종료 등의 관리 작업에 관한 정보가 출력되는 텍스트 형식의 로그 파일

- 파일명 : alert_<ORACLE_SID>.log

- 출력 내용 : 인스턴스가 기동될 때의 흐름과 기본값이 아닌 초기와 파라미터 값

: 인스턴스를 종료할 때의 흐름

: 발생한 모든 ORA-00600 에러, 블록과 관련된 ORA-1578 에러 및 deadlock 관련 ORA-00060 에러, 그 밖의 심각한 에러

: 데이터베이스의 관리 조각 명령어와 실행 결과

: 머티리얼라이즈드 뷰의 자동 갱신 시 발생하는 에러

 

6) 트레이스 파일 : 서버 프로세스나 백그라운드 프로세스 등 각종 프로세스의 에러 정보나 상세한 진단 정보가 출력

 


7) 데이터 딕셔너리 뷰 : 오라클 내부의 구성 정보를 제공하는 특수한 읽기 전용 뷰의 총칭 = 정적 데이터 딕셔너리 뷰

- USER_ : 접속한 계정이 보유한 오브젝트

- ALL_ : 접속한 계정이 조회할 수 있는 오브젝트

- DBA_ : 데이터베이스에 존재하는 모든 오브젝트

 

8) 동적 성능 뷰 : 오라클 동작 상태에 따라 내용이 지속적으로 변하는 통계 정보나 동작 상태를 확인 할 수 있는 뷰, V$로 시작


PPT 발표 자료