MySQL-NDB-Cluster 기반의 구성
특징
MySQL 클러스터의 필요성
MySQL-Replication 확장의 제약 : 데이터 입력 및 업데이트가 마스터 서버에 의존적이기 때문에 시스템 확장 시 슬레이브 서버의 증설은 용이하지만 마스터 서버의 증설에는 어느 정도 제약이 따르게 됩니다. 클러스터 구현 시 SQL-Node의 서버군은 각 서버가 데이터 입/출력을 모두 처리하는 형태로 구현됩니다.
구현 방법
MySQL 클러스터 서버 구성을 위해서 총 3개의 서버군(Node)을 필요로 합니다.
MGM-Node
클러스터 구성의 전체적 관리를 담당합니다. Management Server 중 한 대는 Primary Server로서 기능을 하다가 Fail 시 Standby Server가 임무를 수행합니다.Data-Node
입력된 데이터베이스를 저장하는 역할을 수행합니다. 각 Data-Node에 저장되는 모든 데이터베이스는 메모리에 유지시켜 신속한 응답을 지원합니다. (한비로는 적정한 메모리를 제시할 것입니다.) 새로 출시된 MySQL5.1 버전부터는 하드디스크를 기반으로 저장하는 것이 가능합니다.(ndb를 디스크 기반으로 생성하더라도,인덱스(index)를 포함하는 컬럼은 메모리에 저장됩니다.)SQL-Node
Data-Node로 저장될 데이터를 전달하거나, Data-Node의 데이터를 Application의 요청에 응답하는 역할을 수행합니다.
MySQL- Replication 기반의 구성
Mysql-Dual-Master-Replication
Mysql-Replication은 마스터로 설정된 MySQL 서버의 데이터를 슬레이브로 설정된 다수의 MySQL 서버의 데이터와 동기화시켜 실시간 백업 및 부하 분산을 위해서 사용하는 것입니다. 이를 이용해 2대의 마스터 서버를 구성해 데이터 업데이트 시 각 마스터 서버에 동일하게 적용될 수 있도록 하는 기술입니다.
Dual-Master-Replication의 필요성
구현 방법
방법 1
Master Server 두 대가 동일하게 작동하므로 서버 중 한 대가 Fail 시 나머지 서버가 계속해서 임무 수행 각 서버에 동일한 데이터가 저장되므로 어플리케이션 접근에 의한 부하를 분산시킬 수 있습니다.
방법 2
Master Server 중 한 대는 Primary Server로서 기능을 하다가 Fail시 Standby Server가 임무를 수행. 데이터 입력(Insert, Update, Delete)은 모두 마스터 서버에서 이루어지고, 데이터 불러오기(Select)는 슬레이브 서버들이 담당하게 되어 Select 쿼리가 많은 사이트에서 최적의 성능을 발휘할 수 있습니다. 실시간으로 데이터 복제가 가능하며, 서버에 거의 영향을 주지 않습니다.