데이터베이스 백업

Doya·2025년 1월 8일

1. 데이터베이스 백업

  • 전산 장비의 장애에 대비하여 데이터베이스에 저장된 데이터를 보호하고 복구하기 위한 작업
  • 치명적인 데이터 손실을 막기 위해서는 데이터베이스를 정기적으로 백업해야 함

2. 로그 파일

  • 데이버베이스의 처리 내용, 이용 상황 등 상태 변화를 시간의 흐름에 따라 모두를 기록한 파일
  • 데이터베이스 복구를 위한 가장 기본적인 자료
  • 로그 파일을 기반으로 데이터베이스를 과거 상태로 복귀 시키거나 현재 상태로 재생 시켜 데이터베이스 상태를 일관성 있게 유지할 수 있음
  • 로그 파일은 트랜잭션 시작 시점, Rollback 시점, 데이터 입력, 수정 삭제 시점 등에서 기록
    • 복귀(UNDO): 로그에 보관한 정보를 이용하여 가장 최근에 변경된 내용부터 거슬러 올라가면서 트랜잭션 작업을 취소하여 원래의 DB로 복구
    • 재생(REDO): 덤프와 로그를 이용, 가장 최근의 정상적인 DB로 회복 시킨 후 트랜잭션을 재실행 시킴

3. 데이터베이스 복구 알고리즘

1. No-UNDO/REDO

  • DB버퍼의 내용을 비동기적으로 갱신한 경우의 복구 알고리즘
  • NO-UNDO: 트랜잭션 완료 전에는 변경 내용이 DB에 기록되지 않으므로 취소할 필요 없음
  • REDO: 트랜잭션 완료 후 DB버퍼에는 기록외어 있고, 저장매체에는 기록되지 않았으므로 트랜잭션 내용을 다시 실행해야 함

2. UNDO/NO-REDO

  • DB버퍼의 내용을 동기적으로 갱신한 경우 복구 알고리즘
  • UNDO: 트랜잭션 완료 전에 시스템이 파손되었다면 변경된 내용을 취소
  • NO-REDO: 트랜잭션 완료 전에 DB버퍼 내용을 이미 저장 매체에 기록했으므로 트랜잭션 내용을 다시 실행할 필요 없음

3. UNDO/REDO

  • DB버퍼의 내용을 동기/비동기적으로 갱신한 경우의 복구 알고리즘
  • DB 기록 전에 트랜잭션이 완료될 수 있으므로 완료된 트랜잭션이 데이터베이스에 기록되지 못했다면 다시 실행해야 함

4. No-UNDO/NO-REDO

  • DB버퍼의 내용을 동기적으로 저장 매체에 기록하지만 DB와는 다른 영역에 기록한 경우의 복구 알고리즘
  • NO-UNDO: 변경 내용은 DB와 다른 영역에 기록되어 있으므로 취소할 필요가 없음
  • NO-REDO: 다른 영역에 이미 기록되어 있으므로 트랜잭션을 다시 실행할 필요가 없음

4. 백업 종류

  • 물리 백업
    • DB파일을 백업하는 방법
    • 백업 속도가 빠르고 작업이 단순함
    • 문제 발생시 원인 파악 및 문제 해결이 어려움
  • 논리 백업
    • DB내의 논리적 객체들을 백업하는 방법
    • 복원시 데이터 손상을 막고 문제 발생시 원인 파악 및 해결이 수월
    • 시간이 많이 소요됨

연습 문제

1. 다음 설명하는 용어를 쓰시오.

데이터베이스 처리 내용이나 이용 상황 등 상태 변화를 시간의 흐름에 따라 모두 기록한 파일로, 데이터 베이스 복구를 위해 필요한 가장 기본적인 자료이다.

정답
로그 파일

2. 다음 설명하는 DB의 트랜잭션 연산을 쓰시오

데이터베이스가 비정상적으로 종료되었을 때, 디스크에 저장된 로그를 분석하여 트랜잭션의 시작과 완료에 대한 기록이 있는 트랜잭션 작업을 재작업한다.
즉 로그를 이용하여 해당 데이터 항목에 대한 이전 값을 이후 값으로 변경하는 연산이다.

정답
REDO

profile
안녕하세요. 도야입니다

0개의 댓글