데이터베이스 회복

기술노트
Admin (토론 | 기여)님의 2025년 9월 6일 (토) 05:53 판 (Gemini 벌크 업로더로 자동 업로드)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

💾 데이터베이스 회복 (Recovery)

데이터베이스 회복은 데이터베이스 시스템에 장애가 발생했을 때, 손상된 데이터베이스를 일관성 있고 정확한 상태로 복구하는 과정입니다. 트랜잭션의 지속성(Durability)을 보장하기 위한 핵심적인 기능입니다.


🤔 데이터베이스 장애의 종류

  • 트랜잭션 장애 : 트랜잭션 실행 중 논리적 오류, 데이터 오류, 시스템 자원 부족 등으로 인해 트랜잭션이 비정상적으로 종료되는 경우.
  • 시스템 장애 : 하드웨어 고장, OS 오류, 전원 공급 중단 등으로 인해 데이터베이스 시스템이 갑자기 중단되는 경우. (메모리에 있던 데이터 손실)
  • 미디어 장애 : 디스크 손상, 헤드 충돌 등으로 인해 데이터베이스 파일 자체가 손상되는 경우. (가장 심각한 장애)

⚙️ 회복 기법의 핵심: 로그 (Log)

데이터베이스 회복의 핵심은 로그(Log) 파일입니다. 로그 파일에는 모든 트랜잭션의 시작, 종료, 데이터 변경 내용(변경 전 값, 변경 후 값) 등 데이터베이스의 모든 변경 이력이 기록됩니다.

장애 발생 시, 데이터베이스 관리 시스템(DBMS)은 이 로그 파일을 사용하여 데이터베이스를 일관된 상태로 되돌립니다.

  • Redo (재실행) : 장애 발생 시, 로그에 기록된 내용을 바탕으로 완료된(Commit된) 트랜잭션의 모든 변경 내용을 재실행하여 데이터베이스에 반영합니다.
  • Undo (취소) : 장애 발생 시, 로그에 기록된 내용을 바탕으로 아직 완료되지 않은(Commit되지 않은) 트랜잭션의 변경 내용을 취소하여 트랜잭션 시작 이전 상태로 되돌립니다.

📚 회복 기법의 종류

  • 즉시 갱신 (Immediate Update) : 트랜잭션 실행 중 변경 내용을 즉시 데이터베이스에 반영하는 방식입니다. 장애 발생 시 Undo와 Redo를 모두 수행해야 합니다.
  • 지연 갱신 (Deferred Update) : 트랜잭션이 성공적으로 완료(Commit)될 때까지 변경 내용을 데이터베이스에 반영하지 않고 로그에만 기록하는 방식입니다. 장애 발생 시 Redo만 수행하면 됩니다.
  • 체크포인트 (Checkpoint) : 특정 시점에 데이터베이스의 모든 변경 내용을 디스크에 강제로 기록하고, 로그 파일에 체크포인트 기록을 남깁니다. 장애 발생 시 전체 로그를 검사할 필요 없이, 마지막 체크포인트부터 복구를 시작할 수 있어 회복 시간을 단축합니다.

💡 정보처리기사 핵심 Point

  • 데이터베이스 회복은 트랜잭션의 지속성(Durability)을 보장하는 핵심 기능입니다.
  • 정보처리기사 시험에서는 로그 파일의 역할, Redo와 Undo의 개념, 그리고 주요 회복 기법(즉시 갱신, 지연 갱신, 체크포인트)의 특징을 묻는 문제가 자주 출제됩니다.
  • 미디어 장애와 같은 심각한 상황에 대비하여, 데이터베이스의 정기적인 백업은 필수적입니다.