MySQL 8 Replication
복제 기능을 사용하면 하나의 MySQL 데이터베이스 서버 (마스터)의 데이터를 하나 이상의 MySQL 데이터베이스 서버 (슬레이브)에 복사 할 수 있습니다. 복제는 기본적으로 비동기입니다. 슬레이브는 마스터로부터 업데이트를 받기 위해 영구적으로 연결될 필요가 없습니다. 구성에 따라 모든 데이터베이스, 선택한 데이터베이스 또는 데이터베이스 내의 선택된 테이블을 복제 할 수 있습니다.
MySQL에서의 복제의 장점은 다음과 같습니다.
수평 확장 솔루션
- 여러 슬레이브간에로드를 분산하여 성능을 향상시킵니다. 이 환경에서는 모든 쓰기 및 업데이트가 마스터 서버에서 수행되어야합니다. 그러나 읽기는 하나 이상의 노예에서 일어날 수 있습니다. 이 모델은 마스터가 업데이트 전용이므로 쓰기 성능을 향상시킬 수 있으며 증가하는 슬레이브 수에 따라 읽기 속도를 크게 높입니다.데이터 보안
- 데이터가 슬레이브에 복제되고 슬레이브가 복제 프로세스를 일시 중지 할 수 있기 때문에 슬레이브에서 해당 마스터 데이터를 손상시키지 않고 백업 서비스를 실행할 수 있습니다.분석
- 마스터에서 라이브 데이터를 생성 할 수 있으며 마스터의 성능에 영향을주지 않고 슬레이브에서 정보 분석을 수행 할 수 있습니다.장거리 데이터 배포
- 복제를 사용하여 마스터에 영구적으로 액세스하지 않고 원격 사이트가 사용할 로컬 데이터 복사본을 만들 수 있습니다.
복제 방법
MySQL 8 에서 지원되는 복제 방법은 아래와 같습니다.
- Binary log replication
- General Transaction ID(GTID) replication
GTID복제 방법은 8에서 새롭게 선보이는 기능입니다.
복제 동기화 방법
MySQL 8 에서 지원되는 동기화 방법은 아래와 같다.
- One-way asynchronous (단방향 비동기 복제)
- Semi-synchronous (반동기 복제)
- Delayed replication (지연 복제)
- Synchronous (동기 복제 - NDB Cluster)
복제 형식
MySQL 8 에서 는 아래와 같은 복제 형식을 지원합니다.
- Statement Based Replication (SBR) - SQL행 전체 복제
- Row Based Replication (RBR) - 변경된 ROW 만 복제
- Mixed Based Replication (MBR) - 혼합 복제 방식
Binary log based replication
바이너리 로그 파일 기반 복제 설정방법에 대해 설명한다.
전체 과정은 아래와 같은 순서로 진행된다.
- Master 서버에서 바이너리 로그 설정을 진행하고 server-id 를 설정한다. (재기동 필요)
- Slave 서버에서 server-id 를 설정한다. (재기동 필요)
- 복제를 수행할 사용자 계정을 구성한다.
- Master에서 Slave로 복제하기 위한 Binary log position을 확인한다.
Master 설정하기
server-id
설정을 추가한다.- InnoDB트랜잭션과 함께 사용하는 복제 설정에서 최대한의 내구성과 일관성을 유지 하려면 복제 마스터
my.cnf
파일 에서innodb_flush_log_at_trx_commit=1
와sync_binlog=1
를 사용해야 합니다.
[mysqld] server-id = 1 innodb_flush_log_at_trx_commit = 1 sync_binlog = 1
Slave 설정하기
server-id
설정을 추가한다.
[mysqld] server-id = 2
참조링크
로그인하면 댓글을 남길 수 있습니다.