galera_cluster_재기동_에러_해결_방안

Galera Cluster 재기동 에러 해결 방안

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

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

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

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

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

정상적으로 노드들이 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개의 파일을 삭제하고 다시 재구성을하면 된다.
로그인하면 댓글을 남길 수 있습니다.
  • galera_cluster_재기동_에러_해결_방안.txt
  • 마지막으로 수정됨: 2021/01/27 02:11
  • 저자 koov