코딩일기/자격증

[정보처리기사] 데이터베이스 장애와 회복 기법 | 정보처리사 실기 기출

jhy_2023 2024. 12. 2. 12:47
728x90
반응형

 

📌 데이터베이스 장애와 회복 기법

데이터베이스 회복(Recovery)은 트랜잭션 실행 도중 발생한 장애로 인해 손상된 데이터베이스를 정상 상태로 복구하는 작업입니다. 장애의 원인에는 하드웨어, 소프트웨어, 사용자 실수 등 다양한 요소가 있으며, 회복 작업은 데이터베이스의 무결성신뢰성을 보장하기 위해 필수적입니다.


📌 데이터베이스 장애의 유형

  1. 트랜잭션 장애
    • 트랜잭션 실행 중 논리적 오류 또는 시스템 오류로 작업이 중단되는 경우.
    • 예: SQL 구문 오류, 무효한 데이터 입력.
  2. 시스템 장애
    • 하드웨어나 소프트웨어 오류로 인해 데이터는 손상되지 않으나 작업이 중단되는 경우.
    • 예: 전원 문제, 운영체제 충돌.
  3. 미디어 장애
    • 저장 매체(디스크 등)의 물리적 손상으로 데이터가 손실되는 경우.
    • 예: 디스크 크래시, 미디어 고장.
반응형

📌 Undo와 Redo

UndoRedo는 데이터베이스에서 트랜잭션 실행 중 발생할 수 있는 장애 상황을 대비해 데이터 일관성과 무결성을 유지하기 위해 사용되는 회복(Recovery) 기법의 핵심 작업입니다.
이들은 특정 회복 기법의 일부로 작동하며, 로그(log) 정보를 기반으로 데이터베이스 상태를 복구하는 데 사용됩니다.

🔎 로그(Log)는 데이터베이스에서 트랜잭션의 실행 과정과 변경 사항을 기록한 이력 정보 파일입니다. 이는 장애 발생 시 데이터베이스를 복구하거나 트랜잭션의 일관성을 유지하는 데 사용됩니다.

1️⃣ Undo

  • 의미:
    트랜잭션이 수행한 변경 작업을 원래 상태로 되돌리는 작업입니다.
    작업 취소 (원래 상태로 되돌리기).
  • 작동 방식:
    로그를 읽고, 변경 내용을 취소하여 데이터베이스를 이전 상태로 복구합니다.
  • 예시:
    UPDATE 쿼리를 실행해 A 값이 100 → 200으로 변경되었다면, Undo는 이를 200 → 100으로 되돌립니다.
    (이전 상태 복원)

2️⃣ Redo

  • 의미:
    트랜잭션이 수행한 변경 작업을 다시 실행하여 장애 이전 상태를 복원하는 작업입니다.
    작업 재실행 (완료된 작업 반영하기).
  • 예시:
    UPDATE 쿼리를 실행해 A 값이 100 → 200으로 변경되었으나, 변경 사항이 반영되기 전에 시스템이 다운되었다면, Redo는 다시 100 → 200 작업을 수행합니다.
    (최종 상태 복원)
728x90

📌 데이터베이스 회복 기법

Undo와 Redo는 트랜잭션 회복 기법의 구성 요소로 사용되며, 주요 회복 기법에 따라 적용 방식이 달라집니다.

1️⃣ 로그 기반 회복 기법  - 즉시 갱신 회복 기법 (Immediate Update)

  • 트랜잭션이 실행(활동) 상태에서 변경되는 내용을 그때그때 바로 데이터베이스에 적용하는 기법
  • 변경되는 모든 내용은 로그(Log)에 기록하여 장애발생 시 로그(Log)의 내용을 토대로 회복
  • Undo와 Redo 모두 사용
    • 장애 발생 시 작업 중이던 트랜잭션은 Undo.
    • 완료된 트랜잭션은 Redo.

2️⃣ 로그 기반 회복 기법  - 지연 갱신 회복 기법 (Deferred Update)

  • 트랜잭션이 완료되기 전까지는 변경 사항을 데이터베이스에 반영하지 않음.
  • 트랜잭션이 수행되어 부분완료 될 때까지 데이터베이스에 적용하지 않고 지연시킨 후 부분완료가 되면 로그(Log)의 내용을 토대로 데이터베이스에 적용하는 기법
  • Undo없이 Redo만 사용
    • 완료되지 않은 트랜잭션은 데이터베이스에 영향을 미치지 않으므로 Undo 불필요.

3️⃣ 체크포인트(검사점) 회복 기법 (Checkpoint Recovery)

  • 특정 시점의 데이터 상태를 저장한 체크포인트를 기준으로 복구.
  • 트랜잭션이 실행되는 중간에 검사 시점(Checkpoint)를 지정하여 검사 시점까지 수행 후 완료된 내용을 데이터베이스에 적용하는 기법
  • Undo와 Redo가 필요할 수도 있음.
    • 체크포인트 이후의 작업은 Redo.
    • 체크포인트 이전의 작업은 Undo.

4️⃣ 그림자 페이징 회복 기법

  • 데이터베이스 변경 시, 기존 데이터를 직접 수정하지 않고 그림자 페이지에 변경 내용을 저장. 장애 발생 시 그림자 페이지를 통해 원래 상태로 복구.
  • 로그(Log)를 사용하지 않고, 데이터베이스를 동일한 크기 단위인 페이지로 나누어 각 페이지마다 복사하여 그림자 페이지를 보관
  • 데이터베이스의 변경되는 내용은 원본 페이지에만 적용하고, 장애가 발생되는 경우 그림자 페이지를 이용해 회복
  • 장점: 로그 없이 복구 가능, 디스크 접근 최소화.
  • 단점: 유지 관리 및 구현이 복잡.

5️⃣ 미디어 회복 기법

  • 미디어 장애 복구는 데이터 손실을 방지하기 위한 대책이 포함됩니다.
    1. 덤프(Dump): 데이터베이스를 주기적으로 백업.
    2. 미러링(Mirroring): 데이터를 다른 디스크에 실시간 복제.
    3. RAID: 중복 디스크를 사용해 데이터 복구 가능.

6️⃣ ARIES 회복 기법

  • ARIES(Algorithm for Recovery and Isolation Exploiting Semantics)는 데이터베이스 장애 상황에서 데이터의 일관성과 무결성을 유지하며 효율적으로 복구하기 위한 로그 기반 회복 기법입니다. 
  • 분석(Analysis), Redo, Undo 세 단계를 통해 장애 시점 이전 상태로 복구합니다.
  • WAL(Write-Ahead Logging) 규칙에 기반하며, 대규모 트랜잭션 처리 시스템에서 많이 사용됩니다.

2020년 4회 정보처리기사 실기 기출문제

문제

데이터베이스의 회복(Recovery) 기법 중 Rollback 시 Redo, Undo가 모두 실행되는 트랜잭션 처리법으로 트랜잭션 수행 중 갱신 결과를 바로 DB에 반영하는 기법은 무엇인가?

정답

즉시 갱신 회복 기법

해설

즉각 갱신 회복 기법은 트랜잭션이 수행 중일 때 발생하는 갱신 작업을 즉시 데이터베이스에 반영하는 방식입니다. 즉, 트랜잭션이 완료되기 전에 데이터베이스에 변화가 생깁니다. 이 기법은 데이터의 무결성과 회복 작업을 보장하기 위해 Redo(시스템 장애로 인해 트랜잭션이 중단된 경우 로그에 기록된 내용을 바탕으로 변경 사항을 재실행합니다.)와 Undo(트랜잭션이 실패하거나 Rollback이 호출된 경우 로그를 기반으로 변경 사항을 취소합니다.) 작업을 모두 사용할 수 있도록 설계되었습니다.

예시

  1. 트랜잭션 수행 순서
    • T1: 계좌 A에서 100원을 차감하고 계좌 B에 100원을 더함.
    • 변경 내용이 발생할 때마다 즉시 데이터베이스에 기록됩니다.
  2. 장애 발생 상황
    • 계좌 A에서 100원을 차감한 후, 계좌 B에 100원을 더하기 전에 장애가 발생했다고 가정합니다.
  3. 회복 과정
    • Redo: 계좌 A의 차감 작업을 재실행하여 완료합니다.
    • Undo: 작업이 완료되지 않은 계좌 B의 갱신을 취소하여 원래 상태로 복구합니다.

2020년 4회 정보처리기사 실기 기출문제

문제

데이터베이스 회복 기법에 관련된 설명에서 괄호에 들어갈 가장 알맞은 용어를 쓰시오.

1. 다양한 데이터 회복 기법 중 (          ) 회복 기법은 로그를 이용한 회복기법으로 데이터베이스에 대한 갱신 로그를 저장함으로서 회복에 대비한다.
2. (          ) 회복 기법은 트랜젝션이 실행 상태에서는 변경되는 내용을 그때그때 바로 데이터베이스에 적용하는 기법이다.
3. (          ) 회복 기법은 장애가 발생하면 로그 파일에 기록된 내용을 참조하여, 장애 발생 시점에 따라 Redo나 Undo를 실행하여 데이터베이스를 복구한다

정답

즉시 갱신

해설

즉시 갱신 기법

  • 트랜잭션이 실행(활동) 상태에서 변경되는 내용을 그때그때 바로 데이터베이스에 적용하는 기법
  • 변경되는 모든 내용은 로그(Log)에 기록하여 장애발생 시 로그(Log)의 내용을 토대로 회복
  • Undo와 Redo 모두 수행

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

728x90
반응형