MySQL 의 꽤 괜찮은 Cluster인 Galera Cluster의 테스트 보고서 입니다.
장비사양: MacBook Pro (Retina, 15-inch, Mid 2014), 프로세스:2.5 GHz Intel Core i7, 메모리: 16GB 1600 MHz DDR3
Virtual Box 로 Linux 2대를 구성하여 MySQL Galera Cluster 를 구성하였습니다.
편의상 Master(최초 Cluster 의 Group을 생성하는 머신, service mysql start --wsrep-new-cluster 로 구동) 가 되는 서버를 galera1 이라 하겠습니다.
다른 하나는 galera2 라고 하고요.
테스트 상황:
1. Galera1 / Galera2 가 동작중인 상황에서 Galera2에 장애 발생 >> Galera1 에서 Insert 발생 >> Galera2 에서 service mysql start 실행
위 그림과 같이 오류 발생 하지만 다시한번 service mysql start 를 하게되면 정상적으로 접속이 가능하다.
만약 이렇게 해도 해결되지 않으면 cd /var/lib/mysql 로 MySQL 데이터 폴더로 가서 rm -f galera.cache ib_* 하여 총 3개의 파일을 삭제 해준 후
Linux를 Reboot 하고 다시한번 mysql 서비스를 실행해 준다.
2. Galera1 / Galera2 가 동작중인 상황에서 Galera1 에 장애 발생 >> Galera2 에서 Insert 발생 >> Galera1 을 실행
Galera1 을 재구동 할때는 Galera1이 Master 였다고 하여 service mysql start --wsrep-new-cluster 로 실행하면 않된다.
만약 위와 같이 실행하게 되면 Galera1이 새로운 Cluster Group을 생성하게 된다.
이런 경우 Galera1 에서 service mysql start 로 서비스를 실행하게 되면 Galera2 의 Cluster Group에 들어가게 되고 데이터 동기화도 수행 된다.
내 노트북이 좋아서 인지는 모르겠지만 예전에 사용해본 NDB Cluster에 비해서 성능, 장애처리 부분에서 Galera Cluster가 월등히 좋은것 같다.
다만 한가지 약간의 문제점이라면 ... Auto Increment Column 이 있는 테이블에서 Insert 작업이 이루어질 경우
Galera1 은 1,3,5,7,9 로 Insert가 되고 Galera2에서는 2,4,6,8,10 순으로 증가가 된다.
예로 Galera1 에서 3건을 insert 하면 1,3,5 가 되고 후에 Galera2 에서 2건을 insert 하면 6,8이 된다.
해보진 않았지만 Node가 3개라면.. 각각의 Node 는 3씩 증가시키는 것으로 알고 있다.
이것은 Auto Increment 의 값을 동기화 시키느라 발생하는 Lock 및 성능저하 문제를 해결하기 위한 Galera만의 방법이고
내 기억으로 NDB Cluster 에서는 Auto Increment Column 에서 값이 비는 경우는 없었던 것으로 알고있다.
'Database & Data > MYSQL' 카테고리의 다른 글
MYSQL 실행계획 분석 방법 요약 (3) | 2016.02.25 |
---|---|
MySQL Dump 파일 복원시 주석까지 복원하는 방법 (0) | 2015.12.09 |
MySQL 집합 복제, 일련번호 코드 생성 방법 (1) | 2015.11.24 |
MySQL REPLACE명령어-AutoIncrement PK 컬럼의 수정에 용이 (0) | 2015.11.20 |
MySQL 계정 및 권한 생성 , 5.7 버전 계정 비밀번호 확인 (0) | 2015.11.16 |