1.1. 리플리케이션 구성
1.1.1. 리플리케이션 설정 방법
1.1.2. 리플리케이션 포맷
1.1.3. 리플리케이션 옵션과 변수
1.1.4. 일반적인 리플리케이션 관리 업무
1.2. 리플리케이션 솔루션
1.2.1. 백업용으로 리플리케이션 사용하기
1.2.2. 서로 다른 스토리지 엔진을 사용하는 마스터와 슬레이브 간의
리플리케이션 구성
1.2.3. 리플리케이션을 이용한 시스템 분산 처리 (Scale-Out)
1.2.4. 서로 다른 데이터베이스를 서로 다른 슬레이브에 복제하기
1.2.5. 리플리케이션 성능 개선
1.2.6. 마스터 서버 변경하기
1.2.7. SSL을 사용해서 리플리케이션 설정하기
1.3. 리플리케이션 노트 (Notes) 및 팁 (Tips)
1.3.1. 리플리케이션 기능 및 이슈 사항
1.3.2. MySQL 버전간의 리플리케이션 호환성
1.3.3. 리플리케이션 설정 업그레이드하기
1.3.4. 리플리케이션 FAQ
1.3.5. 리플리케이션 문제 해결
1.4. 리플리케이션 구현
1.4.1. 리플리케이션 구현 상세 설명
1.4.2. 리플리케이션 마스터 쓰레드 상태
1.4.3. 리플리케이션 슬레이브 I/O 쓰레드 상태
1.4.4. 리플리케이션 슬레이브 SQL 쓰레드 상태
1.4.5. 리플리케이션 슬레이브 연결 쓰레드 상태
1.4.6. 리플리케이션 릴레이 및 상태 파일
1.4.7. 서버의 리플리케이션 규칙 평가 방법
리플리케이션이란 하나의 MySQL 데이터베이스 서버 (마스터)에 있는 데이터를 하나 이상의 다른 MySQL 데이터베이스 서버 (슬레이브)에 복제하는 것을 의미한다. MySQL 리플리케이션은 비-동기적으로 구현된다. 모든 데이터베이스, 선택한 데이터베이스, 그리고 데이터베이스 내부의 선택한 테이블만 복제하도록 리플리케이션을 구성할 수 있다.
리플리케이션을 실행하는 목적은 다음과 같다:
-
시스템 확장 – 여러 대의 서버에 로드를 분산함으로써 전체 시스템 성능을 개선한다. 이와 같은 환경에서는 쓰기 및 업데이트가 마스터 서버에서만 실행되어야 한다. 하지만, 읽기 연산은 하나 이상의 슬레이브에서 진행될 수 있다. 이 모델은 쓰기 연산 속도를 개선시키며 (마스터가 업데이트 서버로 지정되기 때문에), 슬레이브 서버 수를 늘릴 수록 읽기 속도 역시 현저하게 개선된다.
-
데이터 안정성 – 데이터를 슬레이브에 복제한 후에, 슬레이브가 리플리케이션 프로세스를 잠시 중단 시킬 수 있기 때문에, 마스터 데이터와는 상관없이 슬레이브에서 안전하게 백업을 실행할 수 있다.
-
분석 – 실제 데이터는 마스터에서 생성되기 때문에, 마스터 서버의 성능에는 영향을 주지 않은 채로 슬레이브에서 데이터 분석을 실행할 수 있다.
-
원격 데이터 분산 – 지역 사무소에서 메인 데이터 복사본을 사용해서 업무를 처리해야 한다면, 마스터 서버에서 복사본을 가져와서 로컬에서 처리할 수 있다.
MySQL은 단-방향 (one-way) 비 동기 리플리케이션을 사용하며, MySQL 클러스터의 동기식 리플리케이션과 반대되는 개념이다.
리플리케이션은 여러 가지 방법으로 설정할 수 있기 때문에, 어떤 엔진을 사용해서 데이터를 처리할 것인지에 따라서 적절한 방법을 선택하도록 한다.
리플리케이션은 두 가지 주요 포맷을 사용한다: 명령문 기반 리플리케이션 (Statement based Replication-SBR)은 전체 SQL 명령문을 복제하고, 열 기반 리플리케이션 (Row Based Replication-RBR)은 변경된 열만 복제한다. 또한, 혼합 기반 리플리케이션 (Mixed Based Replication-MBR)도 사용할 수 있는데, MySQL 5.1.14 버전 이후에는 이 방식이 디폴트 모드로 사용된다.