본문 바로가기
Database

[DataBase ⑤] DB 장애와 회복 (트랜잭션 / 장애 / 회복)

by 비전공자 기록광 2021. 10. 7.
반응형

DB 복습 INDEX

① DB 기본 이론 (DBMS 개념 / 데이터 언어)
② 데이터 모델링 (데이터모델 / 객체 / 속성)
③ 정규화 (이상현상 / 이행적 함수 종속)
④ 관계 데이터연산 (관계 대수 /관계해석 /SQL)
⑤ 트랜잭션 (트랜잭션 / 장애 / 회복)

트랜잭션 Transaction

트랜잭션은 DB 상태를 변화시키기 위해 논리적 기능을 수행하는 하나의 작업 단위을 말한다.

쉽게 말해 한번에 수행되어야할 연산의 집합을 말한다.

 

 

트랜잭션은 Commit 혹은 Rollback 작업을 수행한다.

 

  • 커밋 Commit : 트랜잭션 작업의 논리적 단위가 성공적으로 완료되었음을 알리는 연산자
  • 롤백 Rollback : 트랜잭션 작업이 실행 실패되었음을 알리고 결과를 원상 복구 시키는 연산자

 

트랜잭션 특징

  •  원자성 : 트랜잭션 연산은 DB에 모두 반영되거나 전혀 반영되지 않아야 한다. (All or Noting)
  •  일관성 : 트랜잭션 실행이 성공적으로 완료되면 DB는 일관성 있는 상태가 된다.
  •  독립성 : 트랜잭션 실행 중에 있는 연산의 중간 결과에 다른 트랜잭션이 접근할 수 없다.
  •  영속성 : 트랜잭션이 일단 실행 완료되면 결과는 영구적이다.

 

트랜잭션 상태

  • Active : 트랜잭션 실행 중
  • Failed : 트랜잭션 실행 중 오류 / 중단
  • Aborted : 트랜잭션 실행 실패 / 철회 → 롤백
  • Partially Commited : 트랜잭션의 마지막 연산까지 실행했지만 Commit 직전의 상태
  • Commit : 트랜잭션 실행 완료

 

 

장애

장애는 쉽게 말해 DB 실행 오류이다.

장애 발생시 회복 작업의 단위가 바로 트랜잭션이 된다.

 

장애 종류

  • 트랜잭션 장애 : 트랜잭션 수행 오류
  • 시스템 장애 : 하드웨어의 결함으로 인한 오류
  • 미디어 장애 : 디스크 장치 결함

 

 

회복

트랜잭션 수행 중 장애로 인해 손상된 DB를 이전 상태로 복구시키는 작업

 

회복 연산

  • 덤프 Dump : DB 전체를 다른 저장장치에 주기적으로 복사하는 연산
  • 로그 Log : DB에서 갱신 연산 실행될때마다 데이터 갱신 이전 값과 이후 값을 별도의 파일에 기록하는 연산
  • 재실행 Redo : DB 복사본 가져와 로그 이용해 발생 직전 DB 상태로 복구하는 연산 → 트랜잭션 완료 전 장애 발생한 경우
  • 취소 Undo : 로그 이용해 실행된 갱신 연산을 취소해 DB의 원래 상태로 복구하는 연산 → 트랜잭션 완료 후 장애 발생한 경우

 

회복 기법

  • 로그 회복 기법
    • 지연 갱신 회복 기법 : 트랜잭션의 데이터 갱신 연산 결과 로그 파일에만 기록, 트랜잭션 부분 완료 후 DB 반영
    • 즉시 갱신 회복 기법 : 트랜잭션 수행 중 데이터 갱신 연산 결과 DB와 로그 파일에 즉시 반영, 기록
  • 검사시점 회복 기법 : 로그 이용하지만 일정시간 간격으로 검사시점 만들어 두고 장애 발생하면 가장 최근 검사시점 이후 트랜잭션에만 회복작업 수행
  • 미디어 회복 기법 : 전체 DB 일정주기마다 안전한 저장장치에 복사하는 기법 (덤프) → 디스크 장애에 대비한 회복 기법
반응형

댓글