728x90
※ 개발 환경
Ubuntu 18.04.2 LTS
Mysql 5.7.26
Master - Slave 구조로 Replication을 구성해 놓은 상태에서 Master의 복제 유형을 조회합니다.
...더보기
■ 선행 작업
# mysql -u root -p
Enter password: [비번 입력]
mysql> show variables like 'binlog_format';
∴ 결과
※ 복제 유형 2가지 (+ 관점에 따라 3가지)
- Statement-based replication
- Row-based replication
- Mixed-format replication
1. SBR (Statement-based replication)
- Master의 binary log에 SQL statement를 저장한다
- Slave는 이 데이터를 읽고, Slave DB에 해당 SQL statement를 실행해 Master DB의 복제를 수행한다
- MySQL 5.1.11 이하, MySQL 5.1.29 버전의 기본 설정값
- Bulk Insert에 적합하다
- Replication의 요구사항이 간단한 편이라면 SBR을 사용하는 것이 좋다
- 문제 해결이 상대적으로 쉬운 편이다
2. RBR (Row-based replication)
- Master의 binary log에 레코드 레벨의 변경사항을 저장한다
- Slave는 이 데이터를 읽고, Slave DB의 레코드에 적용한다
- 슬레이브가 행 변경을 처리하는 작은 쓰기에 적합하다
- 상대적으로 적은 Table-Lock이 발생한다
- 일반적으로 좀 더 효율적이다
3. Mixed-Format Replication
- MySQL 5.1.12와 MySQL 5.1.28 버전의 기본 설정값
- 서버가 특정 조건에 따라 동적으로 SBR과 RBR을 선택한다
- 특정 조건은 아래 항목들이 해당된다
UDF(User-Defined Function) 사용자 정의 함수
DELAYED 문이 사용된 INSERT 명령어
임시 테이블의 사용
system 변수를 사용하는 명령문
( 출처1 : What You Should Know About MySQL Replication Types, by Vikram Vaswami )
( 출처2 : 복제 슬레이브 지연 문제를 해결하는 방법, by Henry Hwang )
728x90
댓글