[MariaDB] 갈레라 클러스터(galera cluster) 설치
하단에 참고 사이트를 보고 [MariaDB] 갈레라 클러스터(galera cluster) 설치 해본것입니다.
설치는 잘 되고 실행도 잘 됩니다. 그리고 복제 기능도 멀티 마스터로 잘 됩니다.
여기 언급은 안되었지만 캐릭터셋 디폴트가 맘에 안들던데 최신의 utf8m4로 설정 하시면 됩니다.
● 기본환경
yum -y install epel-release cmake socat rsync
yum -y groupinstall 'Development Tools'
● 보안문제 및 확인
setenforce 0
getenforce
sestatus
- 재부팅시 적용
vim /etc/sysconfig/selinux
● 설치
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | bash
yum makecache fast
yum install -y mariadb-server galera
● 사용 되는 포트는 방화벽에 열려 있어야 한다.
4444 (SST , State Snapshot Transfer)
새 노드가 클러스터에 참여하면 다른 노드와 동기화.
4568 (IST , Incremental State Transfer)
기준 노드와 비교할 때, 누락된 트랜잭션 존재하면 동기화.
4567 (Galera Cluster)
각 노드의 연동 상태를 체크
3306 (Maria DB) MariaDB 클라이언트 연결 및 상태 스냅 샷 전송
포트는 변경하면 변경된것으로 적용이 된다.
테스트 할때는 방화벽 때문에 고생 할 수 있으니 우선 꺼 두는 것으로 합니다.
iptbles 사용하게 되면 -F 옵션을 주면 사슬이 모두 삭제 됩니다.
firewall-cmd --state
firewall-cmd --list-all
systemctl disable firewalld
systemctl stop firewalld
● my.cnf 환경설정
[galera]
wsrep_on=ON
wsrep_provider=/usr/lib64/galera-4/libgalera_smm.so
wsrep_cluster_address=gcomm://192.168.152.143,192.168.152.144,192.168.152.145
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
● DBMS 프로그램 실행
첫번째 서버에서 아래를 실행 합니다. stystemctl start mysqld 를 실행하는것이 아니라 아래를 실행 합니다.
galera_new_cluster
다른 2대의 서버에서는 이렇게 하면 첫번째 서버에선 mysql 서버 별도 실행하지 않아도 같이 적용.
아래 비밀번호 변경한것 까지 적용 된다.
systemctl start mariadb.service
/usr/bin/mysqladmin -u root password '비밀번호'
접속한후 상태를 확인해 본다.
mysql -u root -p
show global status like 'wsrep_cluster_size';
유심히 봐야 할것은 wsrep_local_state_uuid 값인데 모든 노드가 같아야 된다고 한다.
● 환경설정을 기존것과 맞춘 다음.
디폴트로 설정된 데이터: /var/lib/mysql/ 이 폴더에 있다.
rsync -av /var/lib/mysql/ /db/mysql/
chown mysql.mysql /db/mysql
위처럼 서버 데이터 다른 디렉토리로 옮기고 난 후 두대 모두에서 실행 안됨
갈레라 관련된 파일 삭제 - 운영중에 시작 안되어 삭제 한 후 시작 되었다는 글이 있었다.
https://ongamedev.tistory.com/entry/mariadb-%EC%8B%9C%EC%9E%91-%EC%9A%94%EB%A5%98
rm -f galera.cache
rm -f grastate.dat
● 시작하고 접속해 본다.
galera_new_cluster
systemctl start mariadb.service
mysql -u root -p비밀번호
● 마리아 MySQL 오로라
MySQL 기반으로 만들어진것이 마리아, AWS 오로라 입니다. 그리고 그외 더 있겠지요.
오픈소스라서 그리고 안정성 및 문제가 되지 않는 속도등 쓸만한 정도의 무료 DBMS이기 때문에 선택이 많이 되어 집니다. 현재는 프로토콜 버전등 호환되는 측면이 있으니 새로운 버전 부터는 조금씩 다릅니다. 그래도 기본적인 사용법등은 같지만 달라지고 있습니다. 여기서 보면 마리아DB 인데 mysql이 언급이 되고 있는데요. 실제 실행도 systemctl start mysqld 해도 실행이 되도록 되어 있습니다. 선마이크로시스템이 오라클로 인수 되면서 갈라져 나왔습니다.
◆ 참고사이트
https://bamdule.tistory.com/66
https://louie0.tistory.com/140
https://sightstudio.tistory.com/59
https://github.com/SightStudio/blog-code/tree/develop/galera-cluster-mariadb