less than 1 minute read

회복

트랜잭션이 수행되는 동안 시스템에 알 수 없는 오류 또는 문리적으로 문제가 발생했을 때 트랜잭션의 수행을 되돌리는 것

rollback 은 트랜잭션 내의 질의 수행 중 문제가 발생하는 경우 회복은 시스템 상의 문제이므로 트랜잭션이 다시 수행되는 경우

데이터의 신뢰성을 보장하며 트랜잭션의 원자성과 영속성 보장

  • undo, redo, check point

    • failure

      시스템 오류 또는 물리적인 문제

      종류로 하나의 트랜잭션/모든 트랜잭션 의 실패인 local failure/global failure 있음

      • undo, redo

        실패가 발생했을 시 시스템의 회복을 위해 undo or redo 수행

        • undo

          트랜잭션을 이전 상태로 되돌리는 것

        • redo

          이전 상태로 되돌아간 후, 실패가 발생하기 전까지의 과정을 그대로 따라가는 것

          정상적으로 실행 되기까지의 과정을 기록한 log 가 있어야 가능

      • check point

        설정된 지점 이전 까지의 트랜잭션이 성공적으로 수행돼서 disk에 확실히 저장된 상태를 의미

        설정하는 이유는 시스템 회복하기 위해 되돌아갈 때 너무 많이 되돌아가지 않도록 하기 위함

        • 실패가 발생하여 회복 시 check point 설정됐을때

          redo 는 check point 시점부터 log를 따라가며 트랜잭션 수행

          undo 는 log 따라가지 않고 트랜잭션 재 수행

  • redo, undo 의 구분

    회복을 위해 시스템이 restart 되면 DB 에서 restart file 읽음

    restart file 은 log 의 check point record 참조하고 있으며 check point record 에서 undo 할 대상 확인함

    구분은 트랜잭션이 failure 까지 실행 여/부 에 따라 undo/redo 실행됨

출처 : https://victorydntmd.tistory.com/130

Categories:

Updated: