• 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.3. 리플리케이션을 이용한 시스템 분산 처리 (Scale-Out)

 

리플리케이션을 일종의 시스템 분산 처리 솔루션 형태로 사용하면, 데이터베이스 로드를
여러 대의 데이터베이스 서버에 분산 시킬 수 있다.

리플리케이션은 한대의 마스터와 여러 대의 슬레이브 사이에 로드를 분산 처리하기 때문에,
읽기 연산이 많고 쓰기/업데이트 연산이 적은 환경에 매우 적합한 솔루션으로 구성할 수
있다. 대부분의 웹 사이트가 이러한 환경으로 구성되는데, 사용자는 웹 사이트를 열고,
그 안의 내용을 읽고, 제품 설명을 읽고, 간혹 게시판에 글을 남기게 된다. 업데이트는
세션을 관리하는 동안, 또는 게시판에 글을 남기는 경우에만 발생한다.

 

Figure 1.1. 리플리케이션을 이용한 시스템 분산 처리


모든 쓰기 연산은 마스터에서만 실행되고 읽기 연산은 마스터 또는 슬레이브에서
실행되도록 데이터베이스를 수정한다. 레퍼 라이브러리 (wrapper library) 또는
모듈이 다음 함수를 구현하도록 만든다:

  • safe_writer_connect()
  • safe_reader_connect()
  • safe_reader_statement()
  • safe_writer_statement()

각 함수의 safe_는 함수가 모든 에러 조건을 조심스럽게 처리한다는 것을 의미한다.
각 함수의 이름은 다른 것을 사용할 수 있다, 중요한 것은, 각 함수가 읽기 연결,
쓰기 연결, 읽기 실행, 그리고 쓰기 실행에 대해서 통일된 인터페이스를 가져야 한다는 점이다.

그런 다음에, 클라이언트 코드가 레퍼 라이브러리를 사용할 수 있도록 변경한다. 클라이언트
코드가 레퍼 라이브러리를 사용하도록 변경하는 작업은 시간이 오래 걸리는 어려운 일이기는
하지만, 일단 변경을 시켜 놓으면, 모든 어플리케이션이 마스터/슬레이브 구성의 장점을
잘 활용하게 되고, 코드를 관리하고 문제를 해결하는 것이 매우 쉬워진다.

표준 MySQL 배포판과 함께 제공되는 replace 유틸리티를 사용해서 코드를 자동 변경 시킬 수
있을 것이다.

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