미스터 역마살

binlog 와 redo log 차이 본문

Database/MYSQL

binlog 와 redo log 차이

Mr. YeokMaSsal 2022. 8. 11. 23:28
728x90
반응형

binlog

Mysql 서버에서 CREATE, DROP, ALTER와 같은 DDL과 DML을 통해 DB에 변경사항이 생길때 그 변화된 이벤트를 기록하는 이진 파일이 있는데 이것이 바로 바이너리 로그(binlog)라고 한다. slow나 select등 조회 문법은 제외되며 binlog는 2가지의 중요한 용도가 있다.

주로 binlog는 replication 구성이나 HA 구성시에 활용되는 로그이며, 또한 특정시점 복구(Point in time)에 주로 사용된다.

 

redolog

하드웨어나 소프트웨어 등 여러가지 문제점으로 인해 mysql 서버가 비정상 적으로 종료 됐을때 데이터 파일에 기록되지 못한 데이터를 잃지 않게 해주는 안정 장치 역할으 하는 로그이다.

데이터가 변경되는 경우 데이터파일에 쓰려면 많은 비용이 들어간다. 그로인한 성능저하를 막기 위해 redolog에 해당 내용을 가지고 있으며 서버가 다운되면 커밋됐지만 데이터 파일에 기록되지 않은 데이터는 redolog를 통해 복구 할 수 있다.

 

차이점

  • redolog는 innodb에만 해당하는 로그이며 binlog는 mysql 서버계층에 구현되어 있다.
  • redolog는 innodb 엔진 레벨의 물리적 로그 이며 binlog는 SQL Statement에 상응하는 논리적 로그이다. 즉 리두 로그는 데이터 페이지의 변경 사항을 기록하는 물리적 로그이며. binlog는 명령문의 원래 논리를 기록하는 논리 로그란 소리다.
  • redolog는 복수의 고정 사이즈의 파일로 이루어져 있으며 binlog는 일련번호로 파일이 생성된다.
  • 바이너리 로그는 트랜잭션 커밋이 완료된 후 한 번만 기록되며, InnoDB 스토리지 엔진의 redo 로그는 트랜잭션에 지속적으로 기록된다.

 

 

 

728x90

'Database > MYSQL' 카테고리의 다른 글

백업 및 복원 [feat - mysqldump]  (0) 2022.08.12
Replication  (0) 2022.08.11
binlog  (0) 2022.08.10
Mysql 쿼리 힌트  (0) 2022.08.09
Mysql 프로파일링  (0) 2022.08.08
Comments