• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 서비스
    • MySQL유지보수
    • MySQL라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL HA 한글메뉴얼) [close]
  • 1. Chapter 리플리케이션
  • 1. 리플리케이션 구성
    2. 리플리케이션 솔루션
    1. 백업용으로 리플리케이션 사용하기
    2. 서로 다른 스토리지 엔진을 사용하는 마스터와 슬레이브 간의 리플리케이션 구성
    3. 리플리케이션을 이용한 시스템 분산 처리 (Scale-Out)
    4. 서로 다른 데이터베이스를 서로 다른 슬레이브에 복제하기
    5. 리플리케이션 성능 개선
    6. 마스터 서버 변경하기
    7. SSL을 사용해서 리플리케이션 설정하기
    3. 리플리케이션 노트 (Notes) 및 팁 (Tips)
    4. 리플리케이션 구현
  • 2. Chapter MySQL ndb Cluster

1.2.2. 서로 다른 스토리지 엔진을 사용하는
       마스터와 슬레이브 간의 리플리케이션 구성

 

리플리케이션 프로세스는 마스터 소스 테이블과 슬레이브 복제 테이블이 서로 다른 스토리지 엔진을 사용하는 것을 허용한다. 실제로, 시스템 변수 storage_engine와 table_type은 복제되지 않는다.

마스터와 슬레이브에 서로 다른 스토리지 엔진을 설정하는 방법은 초기에 리플리케이션 프로세스를 설정하는 방식에 따라 달라진다:

  • 마스터 서버에서 mysqldump를 사용해서 데이터베이스 스냅샷을 만들었다면, 덤프 텍스트를 편집해서 각 테이블이 사용하는 엔진 타입을 변경시킬 수 있다.

또한, mysqldump를 사용하면 슬레이브에서 사용하고 싶지 않은 엔진을 비활성화 시킬 수 있다. 예를 들면, 슬레이브에 --skip-innodb 옵션을 추가하면 InnoDB 엔진이 비활성화된다.  지정 엔진이 존재하지 않는다면, MySQL은 디폴트 엔진 타입을 사용하고, 일반적인 경우에는 MyISAM이 디폴트 엔진이 된다.

  • 슬레이브 퍼퓰레이션 (population)을 위해 로우 데이터를 사용한다면, 초기 테이블 포맷을 변경할 수 없게 된다. 대신에, 슬레이브가 시작된 후에 ALTER TABLE를 사용해서 테이블 타입을 변경하도록 한다.
  • 새로운 마스터/슬레이브를 설정하는 경우에는, 새로운 테이블을 생성할 때 엔진 타입을 지정하지 않도록 한다.

이미 리플리케이션이 구동 중인 상황에서 현재 테이블의 엔진 타입을 다른 것으로 변경하고자 한다면 다음과 같이 한다:

1.      슬레이브를 중지 시킨다:

 

mysql> STOP SLAVE;

 

2.      엔진 타입을 변경하고자 하는 모든 테이블에 대해서 ALTER TABLE ... Engine='enginetype'을 실행한다.

3.      슬레이브 리플리케이션 프로세스를 다시 시작한다:

 

mysql> START SLAVE;

 

비록 storage_engine 및 table_type 변수는 복제되지 않지만, 엔진 상세 내역을 가지고 있는 CREATE TABLE 및 ALTER TABLE 명령문은 슬레이브에 정확하게 복제된다는 점을 알아두자. CSV 테이블을 실행한다고 가정하자:

 

mysql> ALTER TABLE csvtable Engine='MyISAM';

 

위의 명령문은 슬레이브에 복제가 되고, 이전에 슬레이브 테이블 타입을 CSV가 아닌 다른 엔진으로 변경했다고 하더라도 슬레이브 엔진 타입은 MyISAM으로 변경이 된다. 마스터와 슬레이브의 엔진 타입을 서로 다르게 계속 유지하고자 한다면, 마스터에서 새로운 테이블을 생성할 때 storage_engine 변수를 주의 깊게 사용해야 한다. 예를 들면, 아래의 명령문을 사용하는 대신에:

 

mysql> CREATE TABLE tablea (columna int) Engine=MyISAM;

 

다음과 같은 포맷을 사용하도록 한다:

 

mysql> SET storage_engine=MyISAM;

mysql> CREATE TABLE tablea (columna int);

 

이렇게 하면, 리플리케이션을 진행할 때 storage_engine 변수는 무시되고, CREATE TABLE 명령문은 슬레이브의 디폴트 엔진 타입을 사용해서 실행된다.

서울시 강남구 영동대로 602 6층  TEL: 02-6061-0006
주식회사 이노클러스터  등록번호 : 727-86-02261
Copyright © innocluster Co. ltd. all rights reserved