Undo Log는 Rollback을 위한 data이다.
내가 이해한 바로는 Undo Log는 transaction이 commit되기 전에 Data를 변경한 내용이 있으면, 변경되기 이전의 데이터를 가지고 있는 것이다. 그래서 failure발생시 Rollback을 위해 쓰이거나, 사용자의 Read Consistency를 위해 사용된다.
Redo Log는 복원을 위해서 사용되는 log이다. 그래서 Data자체가 아니라 Data를 복원할 수 있는 DML Log같은 것이다.( insert, delete를 실행한 DML 기록 등)
원래는 Undo Log가 commit이 되면 Redo Log로 가는 건줄 알았는데, 그게 아닌가보다 형식이 다른가 보다
오라클에서는 데이터 변경이 발생하면 두가지 메커니즘에 의해 Redo Log에 기록된다.
Write Log ahead
-> 실제 데이터를 변경하기 전에 Redo Log Buffer에 먼저 기록한 후 데이터 저장
Log force at commit
-> Commit 요청이 들어오면 관련된 Redo Record를 Redo Log File에 저장한 후 Commit을 완료한다.