728x90
- 클러스터 DB서버 정보
- 1번 서버 - 192.168.59.134 maria1
- 2번 서버 - 192.168.59.135 maria2
- 3번 서버 - 192.168.59.136 maria3
- 예상 테스트 시나리오
- 1~3번 서버 기존 mysql 서비스 stop
- 1번 서버 galera.cnf 수정 (gcomm)
- 2,3번 서버 galera.cnf 수정 (gcomm)
- 1번 노드 재기동, 에러 발생
- 1번 서버 galera_new_cluster 명령 입력
- 1번 서버 mysql start, 성공 시 2,3번 서버 mysql 서비스 start
- status 체크 후 data insert 테스트 진행
- (1번 → 2번 / 2번 → 1,3번 / 3번 → 1,2번) 형태의 클러스터 구축 성공 (로컬에서 운영 환경으로 테스트)
1. 1~3번 서버 mysql stop
systemctl stop mysql
2. 1번 서버 galera.cnf 수정
vi /etc/my.cnf.d/galera.cnf
[galera]
wsrep_on=ON
wsrep_provider=/usr/lib64/galera-4/libgalera_smm.so //플러그인 위치
wsrep_cluster_name="galera" //클러스터의 이름을 지정. 일반적으로 같은 네트워크 서브넷에 여러개의 서버가 있을 때 사용, 원치 않는 노드가 잘못된 클러스터로 들어가는 것을 방지
wsrep_cluster_address=gcomm://192.168.59.135 //galera 클러스터에 연결할 ip 주소, 2번 서버를 바라보도록 설정
#wsrep_node_address='192.168.59.134' //현재 서버 노드 ip 주소
wsrep_node_name='maria1' //현재 서버의 노드명
wsrep_sst_method=rsync //노드간 전송방법, rsync, xtrabackup(MariaDB 10.4 이상 버전부터는 mariabackup으로 대체)
binlog_format=row //로그 형식을 정의
default_storage_engine=InnoDB //디폴트 저장소 구동방식
innodb_autoinc_lock_mode=2 //락 메커니즘 설정
bind-address=0.0.0.0
wsrep_provider_options="gcache.size = 512M; gcache.name = /tmp/galera.cache; gcache.page_size = 100M"
3. 2,3번 서버 galera.cnf 수정
[galera]
wsrep_on=ON
wsrep_provider=/usr/lib64/galera-4/libgalera_smm.so
wsrep_cluster_name="galera"
wsrep_cluster_address=gcomm://192.168.59.134,192.168.59.136 //1번,3번 서버를 바라보도록 설정
#wsrep_node_address='192.168.59.135'
wsrep_node_name='maria2'
wsrep_sst_method=rsync
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
wsrep_provider_options="gcache.size = 512M; gcache.name = /tmp/galera.cache; gcache.page_size = 100M"
4. 1번 서버 재기동, connect timeout, failed 에러 발생
systemctl start mysql
→ connect timeout, failed 에러 발생
→ 해당 서버 grastate.dat의 safe_to_bootstrap을 1로 설정한 후 galera_new_cluster 명령으로 새로운 클러스터를 적용하는 해결법 발견
5. 1번 서버 grastate.dat 수정
safe_to_bootstrap: 0→1로 수정
6. 1번 서버 galera_new_cluster 명령 입력
→ 이후 서비스 정상 기동
7. 2,3번 서버 mysql 서비스 start
8. 클러스터 status 체크
MariaDB [(none)]> show status like 'wsrep_cluster_size';
9. data insert 후 동기화 테스트 (2,3번 서버에 각각 data insert, 1번 서버에서 조회)
→ 기존 테이블 조회
9-1. 2,3번 서버에 각각 data insert
9-2. 1번 서버에서 조회
→ data insert 후 테이블 조회, 데이터 확인 완료
10. 테스트 완료
728x90
'DB > MariaDB' 카테고리의 다른 글
[MariaDB] Galera Cluster 모니터링 - 2 (1) | 2024.09.24 |
---|---|
[MariaDB] Galera Cluster 모니터링 - 1 (1) | 2024.09.23 |
[MariaDB] Mysql 디렉토리 접근 사용자/그룹 권한 장애 테스트 (0) | 2024.08.26 |
[MariaDB] 서버 장애테스트 (0) | 2024.08.26 |
[MariaDB] Galera Clustering (0) | 2024.08.26 |