차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

mysql_8_replication [2019/06/14 17:12] (현재)
koov 만듦
줄 1: 줄 1:
 +====== 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''​를 사용해야 합니다.
 +<WRAP prewrap>
 +<code vim my.cnf>
 +[mysqld]
 +server-id = 1
 +innodb_flush_log_at_trx_commit = 1
 +sync_binlog = 1
 +</​code>​
 +</​WRAP>​
 +
 +==== Slave 설정하기 ====
 +  * ''​server-id''​ 설정을 추가한다.
 +<WRAP prewrap>
 +<code vim my.cnf>
 +[mysqld]
 +server-id = 2
 +</​code>​
 +</​WRAP>​
 +
 +====== 참조링크 ======
 +
 +  * https://​docs.oracle.com/​cd/​E17952_01/​mysql-8.0-en/​replication.html
 +  * 
  • mysql_8_replication.txt
  • 마지막으로 수정됨: 2019/06/14 17:12
  • 저자 koov