2019년 10월 23일 수요일

Binary Log - Redo log 차이점

MySQL의 binary log와 redo log의 차이점을 살펴보자.

  • redo log는 innodb engine에만 해당하는 로그이고, binary log는 모든 engine에 해당한다.
  • redo log는 innodb engine level의 물리적 로그이며, binary log는 SQL statement에 상응하는 논리적 로그이다.
  • redo log는 복수의 고정 사이즈의 파일로 이루어져 있으며, binary log는 일련번호로 파일이 생성된다.

다음으로 redo log와 binary log가 기록되는 흐름을 알아보자.
설정은 sync_binlog = 1, innodb_flush_log_at_trx_commit = 1을 가정한다.
  1. DML 발행
  2. innodb log buffer에 기록
  3. 커밋 시 redo log에 flush(prepared 상태)
  4. binlog에 기록
  5. redo log와 binlog의 status를 완료로 변경 
* 만약 그림의 1 타이밍에 crash가 일어나면 binlog에 기록되지 않은 상태이므로, MySQL을 재시작 하면 해당 DML은 rollback 된다.
* 2 타이밍에 crash가 일어나면 binlog에 기록된 상태이므로, MySQL을 재시작 하면 해당 DML은 commit 된다 .

# Refer



댓글 없음:

댓글 쓰기

결혼이민비자 신청방법(F-6-1 국민의 배우자)

 제가 일본인 여자친구와 결혼 후, 한국에 귀국하기 위해 신청한 결혼이민비자에 대하여 작성해보도록 하겠습니다. 필자는 일본에서 근무하고 있었으며, 한국에서의 소득은 없었습니다. 결혼이민비자를 신청한 날짜는 2021-04-21 이며, 사증이 발급된 날짜...