1.1. 리플리케이션 구성
1.1.1. 리플리케이션 설정 방법
1.1.2. 리플리케이션 포맷
1.1.3. 리플리케이션 옵션과 변수
1.1.4. 일반적인 리플리케이션 관리 업무
MySQL 서버 간의 리플리케이션은 바이너리 로깅 메커니즘을 사용한다. 마스터로 구동하는 MySQL 인스턴스는 데이터베이스 업데이트와 변경 사항을 바이너리 로그에 기록한다. 바이너리 로그에 있는 정보는 기록해야 할 데이터베이스 변경 사항에 따라서 서로 다른 로깅 포맷으로 저장된다. 슬레이브는 마스터에서 바이너리 로그를 읽은 후에 바이너리 로그에 있는 이벤트를 자신의 로컬 데이터베이스에서 실행하도록 구성된다.
일단 바이너리 로깅이 활성화되면, 모든 명령문은 바이너리 로그에 기록된다. 각 슬레이브는 바이너리 로그 전체 복사본을 전달 받는다. 어떤 명령문을 실행해야 하는지를 결정하는 것은 전적으로 슬레이브가 결정한다; 마스터가 특정 이벤트만을 기록하도록 구성할 수는 없다. 특정 데이터베이스 또는 테이블에 관련된 이벤트만을 처리하도록 슬레이브를 구성할 수 있고, 어떠한 것도 지정하지 않을 수 있는데, 이러한 경우에는 바이너리 로그에 있는 모든 이벤트가 슬레이브에서 실행된다.
슬레이브는 마스터에서 읽은 후에 처리한 로그 파일에서 바이너리 로그 파일 및 위치 정보를 관리한다. 이것은 여러 대의 슬레이브가 마스터에 연결될 수 있고, 각각의 슬레이브가 동일한 마스터 바이너리 로그의 서로 다른 부분을 처리할 수 있다는 것을 의미하는 것이다.
마스터 서버 및 각 슬레이브 서버는 각각 고유 ID (server-id 옵션을 사용해서)로 구성해야 한다. 또한, 슬레이브 서버는 마스터 호스트 이름, 로그 파일 이름 및 그 위치에 대한 정보를 사용해서 구성해야 한다. 이러한 상세 정보는 CHANGE MASTER 명령문을 사용해서 MySQL 세션 안에서 제어되고, master.info 파일 안에 저장되어 있다.