오퍼링 > 소프트웨어 테크놀로지 서비스 > 오픈소스 SW > DBMS > 자료실

오픈소스 SW 자료실 - DBMS

오픈소스 DBMS 관련 기술서비스 정보 및 자료를 제공합니다.

[FAQ/MariaDB] 슬레이브의 binlog 포맷 변경 후 binary log 사이즈 변화

2021.02.04

Question


마스터/슬레이브 구조에서 슬레이브의 binlog_format을 MIXED에서 ROW로 변경을 하였습니다.
슬레이브의 binary log의 크기가 증가할  것으로 예상했지만, 생각과 다르게 binary log의 크기가 오히려 감소하였습니다.
원인이 무엇인가요?




Answer


일반적으로 binlary log의 포맷을 ROW로 변경하면 하나의 DML 문장이 여러 개의 ROW로 변경되는 경우가 많습니다. 운영하는 데이터 성격상 이런 DML 문장이 많은 경우 ROW 포맷의 binary log 사이즈가 증가하게 됩니다.

하지만 복잡한 DML 문장은 ROW 포맷으로 변경 시, 단순한 INSERT 또는 UPDATE 문으로 변경되어 binary log에 쓰여져 오히려 크기가 감소할 수 있습니다.

아래의 테스트는 INSERT DUPLICATE KEY UPDATE KEY인 경우에 ROW 포맷으로 복제할 때 binlog size가 감소하는 예로 문의 주신 binary log 감소의 원인은 이러한 경우로 예상됩니다.

 

INSERT DUPLICATE KEY UPDATE의 예


테스트 1 (MIXED > ROW & 단순 INSERT 쿼리)

- 테스트 쿼리
INSERT DUPLICATE KEY UPDATE의 예-테스트쿼리

- 마스터 (MIXED row format)
마스터 (MIXED row format)
→ 쿼리 수행 후 마스터의 binlog 크기 1418 증가

- 슬레이브 (ROW row format)
슬레이브 (ROW row format)
→ 쿼리 수행 후 슬레이브의 binlog 크기 1422 증가

쿼리 수행 후 슬레이브의 relaylog 크기 1418 증가
→ 쿼리 수행 후 슬레이브의 relaylog 크기 1418 증가 (마스터의 binlog 증가 크기와 동일함)

 
테스트 2 (MIXED > ROW & INSERT DUPLICATE UPDATE KEY 쿼리)

- 테스트 쿼리
MIXED > ROW & INSERT DUPLICATE UPDATE KEY 쿼리

- 마스터 (MIXED row format)
마스터 (MIXED row format)
→ 마스터 binlog의 크기가 2076 증가

- 슬레이브 (ROW row format)
슬레이브 (ROW row format)
→ 슬레이브 binlog의 크기가 1209 증가 (마스터의 binary Log 크기보다 작음)

슬레이브의 relaylog의 크기가 2076 증가
→ 슬레이브의 relaylog의 크기가 2076 증가 (마스터와 동일)

 
GTID 0-11-28888331 mysqlbinlog 결과

마스터
GTID 0-11-28888331 mysqlbinlog 결과-마스터

슬레이브
GTID 0-11-28888331 mysqlbinlog 결과-슬레이브