16.1 개요
- Source - Replica (이전에 Master - Slave 는 인종 차별 언어로 폐기)
- 복제 목적
- 스케일 아웃
- 데이터 백업
- 데이터 분석
- 지리적 분산
16.2 복제 아키텍처
- 모든 변경사항은 바이너리 로그에 순서대로 기록
- 소스 서버에서 레플리카 서버로 바이너리 로그가 전송됨
- 레플리카에는 현재까지 반영한 바이너리 로그를 릴레이 로그 라는 이름을 저장
- 레플리카에 반영되기 까지 사용되는 스레드
- 소스 서버
- 바이너리 로그 덤프 스레드: 바이너리 로그를 각 레플리카에 전송
- 레플리카 서버
- 레플리케이션 IO 스레드: 받은 바이너리 로그를 릴레이 로그 기록
- 레플리케이션 SQL 스레드: 변경된 릴레이로그를 기반으로 데이터 파일에 반영
- 레플리케서 서버의 복제 관련 로그
- 릴레이 로그
- 커넥션 메타데이터
- 어플라이어 메타데이터
- Crash-safe replication
- 예기치 않게 종료되었다 하더라도 다시 구동했을 때 문제없이 복제가 진행될 수 있음
16.3 복제 타입
- 바이너리 로그를 식별하는 방식에 따라 아래 두가지로 유형이 나뉨