본문 바로가기

데이터베이스

[데이터베이스] 오라클 물리 저장소의 핵심: Control File부터 데이터 블록 체인화 (1)

Oracle 저장영역 분석


DB 가동의 필수 핵심 구조 파일
해당 파일들이 없으면 데이터베이스를 정상적으로 열거나 데이터를 읽을 수 없습니다.

👉 콘트롤 파일 (Control Files)
물리적 구조 정보와 백업 메타데이터를 담고 있어, 데이터 파일을 찾고 여는 데 필수적입니다.


👉 데이터 파일 (Data Files)
응용 프로그램 데이터, 데이터 딕셔너리 등 실제 내용물이 들어있습니다.


👉 온라인 리두 로그 파일 (Online Redo Log Files)
장애 발생 시 인스턴스 복구를 위해 변경 이력을 기록합니다.



운영 및 복구 지원 파일
데이터베이스를 안전하게 시작하고, 장애로부터 보호하는 역할을 합니다

👉 파라미터 파일 (Parameter Files): 인스턴스가 시작될 때 메모리 크기 등 어떻게 구성될지를 정의합니다.

👉 패스워드 파일 (Password Files): SYSDBA 등 권한을 가진 사용자가 원격으로 접속할 수 있게 합니다.
👉 아카이브 로그 & 백업 파일:  심각한 손상 시 과거의 백업과 아카이브 로그를 합쳐 데이터를 완벽히 복구합니다.


진단 및 로그 파일
DB의 상태를 모니터링하고 문제 발생 시 원인을 파악하는 용도입니다.

👉 얼럿 로그 (Alert Log)
시간순으로 발생하는 주요 메시지와 오류를 기록하며, 관리자가 가장 먼저 확인해야 할 파일입니다.


👉 트레이스 파일 (Trace Files)
개별 프로세스에서 내부 오류가 생겼을 때 상세한 정보를 덤프(Dump)하여 기록합니다.





Oracle 논리적 / 물리적 데이터베이스 구조

 


오라클은 데이터를 효율적으로 관리하기 위해 '블록'에서 '테이블스페이스'까지 단계별로 공간을 할당합니다.

Data Block:
가장 작은 단위. 디스크의 물리적 공간에 직접 대응하며, 실제 데이터가 저장되는 최소 입출력 단위입니다.
Extent: 연속된 데이터 블록의 모음. 특정 데이터를 저장하기 위해 한 번에 할당되는 공간의 덩어리입니다.
Segment : 익스텐트들의 모음. 테이블, 인덱스처럼 하나의 특정 논리 구조(객체)에 할당된 모든 공간을 의미합니다.
Tablespace: 가장 큰 논리적 단위. 세그먼트들을 그룹화하며, 물리적으로는 하나 이상의 데이터 파일로 구성됩니다.

주요 세그먼트(Segment)의 종류

데이터가 어떤 용도로 쓰이느냐에 따라 세그먼트가 구분됩니다.

세그먼트 종류 역할 설명
데이터 세그먼트 일반적인 테이블 데이터가 저장되는 공간
인덱스 세그먼트 빠른 검색을 위한 인덱스 데이터가 저장되는 공간
언두(Undo) 세그먼트 트랜잭션 취소(Rollback) 및 데이터 일관성을 위한 이전 데이터 보관 공간
임시(Temporary) 세그먼트 정렬(Sort) 작업 등 SQL 실행 시 잠깐 필요한 임시 작업 공간



논리적 구조 vs 물리적 구조의 관계

이 두 구조는 서로 연결되어 있지만 관리 방식이 다릅니다.

논리적(Tablespace): 관리자는 "A 테이블은 USER 테이블스페이스에 저장해"라고 명령합니다.
물리적(Data File): 실제 데이터는 디스크에 저장된 users01.dbf 같은 파일에 기록됩니다.
유연한 확장: 세그먼트 공간이 부족하면 오라클이 자동으로 새로운 익스텐트를 추가합니다. 이때 익스텐트들은 디스크 상에서 물리적으로 떨어져 있거나 다른 데이터 파일에 위치할 수도 있습니다.