MySQL의 replication의 특징은 다음과 같다.
- 한 방향(Master에서 Slave로 흘러감)
- 비동기
- Master:Slave = 1:N
- Slave겸 Master가 될 수 있다.
- 통신은 TCP/IP를 사용
- 바이너리 로그를 사용
- 갱신은 Master만 가능
MySQL의 Replication은 Master의 바이너리 로그의 내용을 Slave에 보내는 것으로 수행된다.
동작의 흐름은 다음과 같다.
- Slave I/O스레드가 Master에 접속
- Master가 Slave를 인증하고 Slave와의 세션 개시
- Slave I/O스레드가 바이너리 로그파일(파일명, 위치)를 요구
- Master(binlog dump스레드)가 요구되어진 지점으로부터 이벤트를 바이너리 로그에서 읽어들여 Slave 에 전송
- Slave I/O스레드는 받어낸 이벤트를 relay-log에 기록
- Slave SQL스레드가 relay-log내용을 읽어들여 SQL문을 실행
- Master에 새로운 이벤트가 있으면 Master가 Slave에 송신