Undo는 최신 LSN부터 거꾸로 지우고, 지운 사실은 CLR로 다시 남깁니다.
대상은 ATT에 남은 미완료 트랜잭션뿐입니다. 그래서 Redo로 상태를 복구한 뒤에도 loser transaction의 흔적만 안전하게 걷어낼 수 있습니다.
종료 지점
BEGIN
더 이전 로그가 없으면 Undo가 끝납니다.
이전 변경
LSN 1005
`C.stock 50 → 49`아직 commit되지 않았으므로 되돌릴 대상입니다.
시작점
LSN 1007
`D.price 1000 → 900`Undo는 가장 최근 변경부터 먼저 처리합니다.
Undo 후 남기는 기록
CLR: `49 → 50` 복구
이 변경을 되돌렸다고 로그에 남기고 다음 PrevLSN으로 이동합니다.
CLR: `900 → 1000` 복구
도중에 다시 장애가 나도, 다음 복구 때 이미 취소한 지점을 알 수 있습니다.