DB/MariaDB

[MariaDB] 서버 장애테스트

Dev.Congsik 2024. 8. 26. 15:44
728x90
  • 테스트서버 목록
  • 192.168.59.134 maria1 (1번 노드)
  • 192.168.59.135 maria2 (2번 노드)
  • 192.168.59.136 maria3 (3번 노드)

 

  • 1~3번 MariaDB 서버 Galera Clustering 정상 구축 완료 전제

서비스 active 확인
클러스터 서버 3대 정상 구축 확인

  • 1번 서버의 mysql 서비스가 갑자기 중지되는 상황 부여

  • 2번 서버에서 클러스터 사이즈 확인

클러스터에 연결된 노드의 수를 나타내는 wrsep_cluster_size의 value=2 확인

→ 이는 1번 서버의 mysql 서비스 중단으로 인해 클러스터링이 깨진 상황

 

1번 서버 shutdown 상황

  • 1번 서버의 전원을 종료시킨 후 테스트 진행
  • 이후 2대 서버의 mysql 서비스는 정상 동작, 클러스터링 또한 정상 (2-3번 서버만)
  • 원복을 위해 1번 서버의 전원 on
  • mysql 서비스가 자동으로 실행되며 클러스터링 또한 자동 복구 완료
  • 나머지 2대 서버에서 서비스 정상 여부 테스트

2번 서버 서비스, 프로세스 확인
3번 서버 서비스, 프로세스 확인

 

→ 2,3번 서버 mysql 서비스는 모두 inactive로 표시되나, 프로세스 상으로는 정상 동작 중임을 확인

  • 서비스 status 비정상 표시(inactive) 해결법

** 1번 서버 복구 후에도 2,3번 서버의 상태가 inactive(dead)로 계속 표시

** 서비스와 mysql 관련 프로세스를 모두 종료

** systemctl restart mysql 명령어로 서비스를 재시작

** 2,3번 서버의 mysql 서비스 status가 모두 active로 바뀌었음

 

** 예상 원인 : 최초 서비스 기동 시 아래 명령어와 연관이 있을 것으로 추정

mysqld_safe --user=mysql --wsrep-new-cluster &  //1번 노드 start, 클러스터 생성
mysqld_safe --user=mysql & //2,3번 노드 start

→ 일반적으로 서비스를 시작하는 systemctl start mysql 명령과의 차이 확인 필요

→ mysqld_safe는 mysql을 감시하는 데몬

 

데이터 동기화 여부 테스트

  • 2번 서버에서 테스트 데이터 insert (idx=5)

 

  • 3번 서버에서 insert 데이터 조회

→ 조회가 정상적으로 됨에 따라 2, 3번 서버는 클러스터링이 깨지지 않았음을 확인

 

중지된 서비스 복구 및 클러스터 원상복구

  • 1번 서버 서비스 restart

 

mysql 서비스 restart만으로 노드가 정상적으로 클러스터에 포함되었음을 확인

 

 

728x90