본문 바로가기
Database/MariaDB Galera Cluster

Galera Cluster 재기동 에러 해결 방안

by 시스파고 2020. 6. 5.

[순서]

2020/06/02 - [Database/Galera Cluster] - MySQL/MariaDB Galera Cluster 구성하기 - Part 1

2020/06/04 - [Database/Galera Cluster] - MySQL/MariaDB Galera Cluster 구성하기 - Part 2

2020/06/04 - [Database/Galera Cluster] - MySQL/MariaDB Galera Cluster 구성하기 - Part 3

2020/06/05 - [Database/Galera Cluster] - Galera Cluster 재기동 에러 해결 방안

 

 

 

Database에 문제가 발생하여 복구하거나 어떠한 이유로 재시작해야할 경우들이 많을 것이다. Galera Cluster도 마찬가지로 운영중에 어떠한 문제로 인해서 구동에 이상이 생긴경우 마음과달리 재기동이 안될 수 있다.

이럴경우에는 어떻게 해야할까? 

 

1. grastate.dat 확인

Galera Cluster는 sync방식으로 둘 이상의 DB가 서로를 의존하며 구동되어지고 있을 것이다. 이때 하나의 node만 죽을수도 있고 여러개에 node가 한번에 죽을 수도 있다.(다같이 죽으면 재앙이다....그럴일은 없게지만?) 이때 확인해야할 파일이 바로 /var/lib/mysql/grastate.dat 값이다.

이 파일에서 safe_to_bootstrap속성의 값을 보면되는데 이 부분이 '1'의 값을 가지고 있으면 마지막에 죽은 node를 표시하고 있는 것이다.

따라서, 이 node를 기준으로 복구를 진행하면 된다.

[root@galera-01 ~]# cat /var/lib/mysql/grastate.dat
# GALERA saved state
version: 2.1
uuid:    UUID값
seqno:   -1                       # 마지막으로 죽은 node 확인 '1'을 찾자.
safe_to_bootstrap: 0

 

2. DB Galera Cluster 재설정

확인을 하였으면 앞 Galera Cluster에서 했던 방식과 동일하게 DB를 재가동 시켜주고 나머지 노드들도 순차적으로 Cluster에 추가해주면 된다.

[root@galera-01 ~]# service mysql start --wsrep-new-cluster
Starting mysql (via systemctl):                            [  OK  ]
.
.
.
service mysql start
나머지 node 추가

 

3. Cluster 정상 확인

정상적으로 노드들이 Cluster에 묶였는지 확인하고, 동기화가 잘되었는지 확인하는 방법은 다음과 같다.

# Cluster size가 제대로 되었는지 확인
> show global status like 'wsrep_cluster_size';

# 다음 옵션을 변경하여 동기화되도록 설정
> SET GLOBAL wsrep_provider_options='pc.bootstrap=YES';

 

[예외 사항]

- 위에 방법과는 다르게 safe_to_bootstrap의 값이 모두 '-1'로 동일하면 cluster node 중 하나를 선택하여 '1'로 수정하여 Cluster 재설정을 진행하면된다. 

- 또는, /var/lib/mysql/grastate.dat와 /var/lib/mysql/galera.cache 2개의 파일을 삭제하고 다시 재구성을하면 된다.

댓글