회복
회복
트랜잭션이 수행되는 동안 시스템에 알 수 없는 오류 또는 문리적으로 문제가 발생했을 때 트랜잭션의 수행을 되돌리는 것
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