본문 바로가기
Database

오라클 데이터 파일과 로그 파일의 이해

by 굿센스굿 2024. 12. 4.
반응형


오라클 데이터베이스를 이해하고 효율적으로 운영하려면 **데이터 파일(Data File)**과 **로그 파일(Log File)**의 역할과 원리를 정확히 아는 것이 중요합니다. 이 글에서는 데이터 파일과 로그 파일의 개념, 주요 차이점, 그리고 이를 실무에서 활용하는 방법에 대해 설명합니다.


1. 데이터 파일(Data File)이란?

데이터 파일은 오라클 데이터베이스의 물리적 저장소로, 데이터베이스 테이블, 인덱스, 뷰 등의 데이터가 저장되는 파일입니다.

  • 데이터베이스는 여러 데이터 파일로 구성되며, 데이터 파일은 하나의 데이터베이스 인스턴스에서 공유됩니다.
  • 데이터 파일은 데이터 블록(Data Block)으로 구성되며, 데이터 블록은 데이터를 저장하는 기본 단위입니다.

특징

  • 테이블, 인덱스, 시스템 카탈로그 데이터 등을 저장.
  • 데이터베이스의 테이블스페이스에 포함.
  • 크기를 동적으로 확장 가능(자동 증가 설정).

2. 로그 파일(Log File)이란?

로그 파일은 데이터베이스에서 수행된 변경 작업(트랜잭션)을 기록하는 파일입니다.
로그 파일은 데이터 복구 및 데이터 무결성을 유지하는 데 핵심적인 역할을 합니다.

  • REDO 로그 파일 아카이브 로그 파일로 구성됩니다.
  • 데이터 손실을 방지하고, 장애 발생 시 복구를 지원.

REDO 로그 파일

  • 데이터 변경 내역(Insert, Update, Delete 등)을 기록.
  • 데이터베이스가 정상적으로 종료되지 않았을 경우 복구에 사용.

아카이브 로그 파일

  • REDO 로그 파일의 내용을 백업.
  • 과거의 트랜잭션 데이터 복구에 사용.

3. 데이터 파일과 로그 파일의 주요 차이점

구분 데이터 파일 로그 파일

역할 데이터 저장 트랜잭션 변경 내역 저장
구성 단위 테이블, 인덱스, 뷰 등 REDO 로그, 아카이브 로그
데이터 복구 직접 복구 불가능 복구 작업의 핵심 파일
크기 확장 테이블스페이스 설정에 따라 자동 확장 고정 크기(보통 크기 제한 설정)
장애 시 활용 데이터 조회 불가 변경 내역을 복구하여 데이터 복원 가능

4. 데이터 파일과 로그 파일의 구조

1) 데이터 파일 구조

  • 데이터 블록(Data Block): 데이터의 최소 저장 단위.
  • 확장 영역(Extent): 연속된 데이터 블록의 집합.
  • 세그먼트(Segment): 테이블, 인덱스 등이 사용하는 모든 Extent의 집합.

2) 로그 파일 구조

  • 로그 그룹(Log Group): 여러 로그 파일을 하나로 묶어 구성.
  • 순환 로그 사용: 로그 파일이 순환적으로 사용되며, 이전 내용은 덮어씌워짐.
  • 로그 스위치(Log Switch): 활성 로그 파일이 가득 찰 때 새 로그 파일로 전환.

5. 데이터 파일과 로그 파일 설정 및 관리

1) 데이터 파일 생성

데이터 파일은 테이블스페이스 생성 시 함께 생성됩니다.

CREATE TABLESPACE example_tbs
DATAFILE '/u01/app/oracle/oradata/example_tbs01.dbf' 
SIZE 50M 
AUTOEXTEND ON;
  • DATAFILE: 데이터 파일의 경로와 이름.
  • SIZE: 초기 크기 설정.
  • AUTOEXTEND ON: 자동 확장 설정.

2) 로그 파일 생성

로그 파일은 데이터베이스 생성 시 설정되며, 필요 시 추가 가능합니다.

ALTER DATABASE ADD LOGFILE (
    GROUP 3 ('/u01/app/oracle/oradata/redo03.log') SIZE 10M
);
  • GROUP: 로그 그룹 번호.
  • SIZE: 로그 파일 크기.

6. 실무에서의 데이터 파일과 로그 파일 활용 예제

예제 1: 데이터 파일 확장

테이블스페이스 크기가 부족한 경우 데이터 파일을 확장하여 문제를 해결합니다.

ALTER DATABASE DATAFILE '/u01/app/oracle/oradata/example_tbs01.dbf'
RESIZE 100M;

예제 2: 로그 파일 손실 시 복구

REDO 로그 파일 손실로 데이터베이스가 복구 모드로 전환된 경우:

  1. 아카이브 로그 파일 복구
    RMAN> RESTORE ARCHIVELOG ALL;
    
  2. REDO 로그 재적용
    RECOVER DATABASE USING BACKUP CONTROLFILE;
    

예제 3: 로그 스위치 수동 실행

로그 파일이 가득 차지 않도록 수동으로 로그 스위치를 실행합니다.

ALTER SYSTEM SWITCH LOGFILE;

7. 데이터 파일과 로그 파일 관리 시 주의사항

  1. 데이터 파일 확장 관리:
    • 자동 확장 설정(AUTOEXTEND)은 필요한 경우에만 활성화.
    • 디스크 용량 모니터링 필수.
  2. REDO 로그 파일 손실 방지:
    • 다중 로그 그룹 사용으로 데이터 무결성 강화.
    • 중요한 로그는 주기적으로 아카이브 설정.
  3. 백업 전략 수립:
    • 데이터 파일과 로그 파일을 주기적으로 백업.
    • RMAN(Recovery Manager) 활용 권장.
  4. 로그 파일 크기 조정:
    • 로그 파일 크기가 너무 작으면 로그 스위치가 빈번히 발생해 성능 저하.

8. 데이터 파일과 로그 파일의 적절한 활용 시나리오

  1. 대규모 데이터 저장 및 관리:
    대규모 데이터를 관리할 때는 데이터 파일 크기를 계획적으로 설계하고 필요 시 확장.
  2. 장애 복구 대비:
    로그 파일을 활용한 아카이브 로그 모드 설정으로 모든 트랜잭션 데이터 복구 가능.
  3. 성능 최적화:
    다중 로그 그룹과 적절한 로그 크기 설정으로 데이터베이스 성능 유지.

결론

데이터 파일과 로그 파일은 오라클 데이터베이스의 핵심 구성 요소로, 각각의 역할과 특성을 이해하면 데이터 무결성과 복구 가능성을 높일 수 있습니다.
효율적인 데이터 관리와 복구 전략 수립을 위해 이 두 파일의 구조와 기능을 정확히 이해하고 실무에 활용해 보세요.

반응형