Oracle Undo vs Redo

이기현·2021년 11월 3일
0

Oracle

목록 보기
28/39

Undo Log

Undo Log는 Rollback을 위한 data이다.
내가 이해한 바로는 Undo Log는 transaction이 commit되기 전에 Data를 변경한 내용이 있으면, 변경되기 이전의 데이터를 가지고 있는 것이다. 그래서 failure발생시 Rollback을 위해 쓰이거나, 사용자의 Read Consistency를 위해 사용된다.

Redo Log

Redo Log는 복원을 위해서 사용되는 log이다. 그래서 Data자체가 아니라 Data를 복원할 수 있는 DML Log같은 것이다.( insert, delete를 실행한 DML 기록 등)

원래는 Undo Log가 commit이 되면 Redo Log로 가는 건줄 알았는데, 그게 아닌가보다 형식이 다른가 보다

REDO

오라클에서는 데이터 변경이 발생하면 두가지 메커니즘에 의해 Redo Log에 기록된다.
Write Log ahead
-> 실제 데이터를 변경하기 전에 Redo Log Buffer에 먼저 기록한 후 데이터 저장
Log force at commit
-> Commit 요청이 들어오면 관련된 Redo Record를 Redo Log File에 저장한 후 Commit을 완료한다.

  • Redo Log Buffer에서 Redo Log File로 기록하고 해당 내용을 Buffer에서 삭제하는 경우
  1. 3초마다
  2. Redo Log Buffer의 전체 크기의 1/3 차거나 1M가 넘는 경우
  3. 사용자가 Commit이나 Rollback했을경우
  4. DBWR 이 LGWR에게 쓰기를 요청할 때
profile
실력을 쌓아가는 하루하루

0개의 댓글