Print
카테고리: [ MariaDB ]
조회수: 9979

MySQL Replication과 Galera Cluster에 대하여

 

Galera에 대해 말하기 전에, 우선 MySQL의 복제 방식에 대해 알아보자.

일반적으로 Master/Slave 방식으로 구성한다. 2개 노드 중 한 노드는 Read, 한 노드는 Write를 담당하게끔 한다. DB마다 차이는 있지만 보통 Read 작업의 비중이 더 크다. 따라서 Read/Write의 분리만으로도 의미는 있다.

좀 더 자세히 알아보자.

Master 노드에서 Write 작업이 수행되면, 이 노드는 데이터를 저장하고 트랜잭션 로그를 Bin Log라는 파일에 저장한다.
그러면 Slave 노드는 Master 노드의 Bin Log를 가져온다. 이 가져오는 작업(뽁사 작업)은 IO Thread라는 스레드가 담당한다. 그리고 가져온 내용은 Replay Log라는 파일에 기록한다. 그러면 SQL Thread라는 스레드가 차례대로 읽고 수행하여 MySQL 데이터 파일에 기록한다.

이 방식의 장점은 단순하다는 것, 반면 단점들은 다음과 같다.


그럼 이제부터 Galera 클러스터에 대해 알아보자.

wsrep란?

MySQL의 InnoDB 스토리지 엔진 내부에서 Write Set을 추출하고 구현한다. Write Set은 트랜잭션을 기록하는 모든 논리적인 데이터 집합이라고 보면 된다. 노드 간 Write Set을 전송하거나 통신하기 위해서는 별도의 복제 플러그인을 사용하며, 복제 엔진은 wsrep에 정의된 call/callback 함수에 의해 동작한다.

다만, Galera도 단점을 가지고 있다.


이외에 뜬금없는 이야기지만 서로 다른 MySQL 간에도 Galera 구성을 할 수 있다.


설치에 대하여..
yum 방식으로 설치하거나, rpm 파일을 이용하여 직접 설치할 수 있다.


설정 파일 내용 중에는..