요약: 복제(Replication) 는 Source(Primary)에서 발생한 변경을 Binary Log 기반으로 Replica(Secondary)에 전달·적용하여 가용성, 읽기 확장성, 재해복구를 달성하는 기술입니다. MySQL은 Row / Statement / Mixed 세 가지 binlog 포맷을 제공하며, 복제는 I/O 스레드 → Relay Log → SQL 스레드 순으로 동작합니다.
주의: 복제는 기본적으로 비동기이며, 네트워크/부하에 따라 지연(Lag) 이 발생할 수 있습니다.
NOW(), UUID(), 비결정적 함수/트리거/시스템 변수 영향으로 재실행 결과 상이 위험실무 기본값으로는 Row 또는 Mixed 가 널리 사용됩니다.
Seconds_Behind_Master(레거시 용어), performance_schema.replication 뷰 등 사용mysql-bin.000123:4-5678 형태로 위치 관리binlog_format = ROW 또는 MIXEDsync_binlog, innodb_flush_log_at_trx_commit 로 내구성/성능 균형read_only, super_read_only 로 쓰기 보호pt-online-schema-change 등 온라인 도구 고려binlog_row_image, --compress) 및 로테이션 튜닝AUTO_POSITION=1 로 간단히 재연결read_only/semi-sync로 RPO 최소화| 항목 | Row | Statement | Mixed |
|---|---|---|---|
| 일관성 | 매우 높음 | 낮을 수 있음(비결정적) | 중간~높음 |
| 로그 크기 | 큼 | 작음 | 중간 |
| 적용 예측 | 쉬움 | 어려움(실행 맥락 영향) | 중간 |
| 권장도 | 높음(일반적 기본) | 제한적 | 높음(균형형) |