redo와 undo 둘다 복구를 하는 것인데 정확히 무슨 차이점이 있을까?
데이터의 변경 기록을 기록한 것.
복구를 할 때, 사용자가 했던 작업을 그대로 한다. (roll-forward)
db의 변경 사항을 복구하거나 시스템 장애로 인해 생긴 예기치 않은 종료에 의한 복구를 위해 사용한다.

REDO Log Buffer는 SGA에 존재한다. LGWR를 통해 REDO 로그를 디스크에 기록한다.
REDO 로그 파일은 크기와 개수가 한정되어 있는 일시적인 창고이다. 만약 오래 보관해야하는 경우라면 아카이브 REDO 로그 파일에 저장해야 한다.
과거의 상태로 돌아갈 수 있는지에 관한 정보
사용자가 했던 작업의 반대로 진행하여 복구를 한다.(roll-back)
트랜잭션 롤백이나 read consistency를 위해 사용한다.

데이터가 변경되면, UNDO 정보가 생성되고, 이 정보는 undo segment에 저장이 된다.
undo segment는 ring buffer로 구현되어 있어, 일정 데이터가 넘어가면 이전 데이터에 새로운 데이터를 덮어 쓰기 때문에 이전 데이터가 소실될 수 있다. 따라서 시간이 오래 걸렸거나 이미 변경이 많이 일어나서 사라진 데이터를 다시 보려다가 ORA-1555( snapshot too old ) 오류를 볼 수 있다.