[DB] Redo Log Buffer와 Redo Log File

양시준·2022년 4월 21일
1

SQLP 메모

목록 보기
2/3

로그 버퍼

DB 버퍼 캐시에 가해지는 모든 변경사항을 로그 파일에 기록한다고 설명했다.
로그 엔트리(로그 내의 개별 기록)도 파일에 곧바로 기록하는 것이 아닌라 로그 버퍼에 기록한다.
건건이 기록하는 것보다 배치로 기록하는 것이 더 효율적이기 때문이다.

햇갈리는 부분 정리

Dirty 버퍼를 데이터 파일에 저장되기 전에 항상 로그 버퍼를 로그 파일에 기록해야 한다.

Dirty 버퍼를 디스크에 저장한 상황에 비정상적인 종료가 일어난 경우 Dirty 버퍼의 값이 커밋된 값인지 알 수 없어서 커밋되지 않은 데이터가 저장될 수 있다.
이러한 일을 막기 위해서 로그 파일에 기록해서 디스크의 데이터와 비교해서 최종 커밋되지 않은 데이터를 롤백한다.

Dirty 버퍼를 디스크에 기록하기 전에 해당 로그 엔트리를 로그 파일에 기록해야 한다. (White Ahead Logging)

버퍼 캐시

  • 디스크의 정보를 매모리에 캐시하는 용도
  • 읽기, 쓰기 작업이 여기에 일어난다.
  • 변경사항을 기록해 두고 나중에 한 번에 디스크에 기록한다. (배치)
  • 모든 변경사항을 Redo Log에 저장된다.

Redo Log

  • 버퍼 캐시의 모든 변경사항을 저장한다.

Redo Log Buffer

  • 변경사항을 기록해 두고 나중에 한 번에 처리한다.
  • 늦어도 커밋되기 전까지는 디스크에 저장되어야 한다. (Log Force at Commit)

Redo Log File

  • 비정상적인 종료가 일어났을 때 이를 참고하여 복구한다.
profile
광주소프트웨어마이스터고등학교 5기 학생입니다.

0개의 댓글