Mysql MMM이란
- MMM은 Multi Master Manager로 약자로, Mysql장애 시 자동으로 failover(대체 시스템 작동)를 해주는 솔루션이다.
- 오픈 소스 기반으로 Perl로 되어 있다.
MMM왜 필요한가?
Mysql서버를 Master-Slave로 이중화하여도 Master장애 발생 시
자동으로 Failover기능이 수행되지 않기 때문에 MMM을 도입하여 서비스 장애를 최소화함으로 DB가용성을 보장하게 한다.
MMM의 구조
MMM Monitor : MMM Agent 서버의 상태를 체크하고 상태에 따라 역할(reader, writer)을 관리
MMM Agent : MMM 에서Master(active), Master(standby) 역할을 하는 구성원. Master DB서버 자체.
MMM VIP : 유동적으로 Master(active) 역할을 변경할 수 있도록 구성하는 virtual IP
Slave는 1개 이상으로도 구성할 수 있다.
Master(Active)에는 Write, Read가능
Master(Standby), Slave에는 Read 만 가능.
주요 기능
- Health Check : Mysql과 Server의 상태를 체크한다.
- 일정한 간격으로 test query수행
- server ping 체크
- mysqld ping 체크
- 자동 Failover 기능 수행
- Master(active) 장애 발생 시 Mastser(standby)에 데이터 정합성을 위한 replicate 작업을 하고
- VIP를 Mastser(standby)로 이동시킨다.
- 장애가 발생한 기존 Master(active)를 복구한 후에는 Master(standby)로 운영한다
Master DB에 발생할 수 있는 장애 종류
아래 장애들이 발생 했을 때 자동 Failover가 가능하다.
- process 무한 증가로 인한 hang
- memory 부족으로 인한 hang
- disk 부족으로 인한 hang
- network 단절로 인한 장애
- Mysql 데몬 kill 발생 시
- 서버 shutdown 시
'Database > MySQL' 카테고리의 다른 글
FCM토큰 저장 테이블 최적화 (0) | 2023.04.10 |
---|---|
프로젝트 쿼리 최적화 작업 (0) | 2023.04.06 |
MySQL 초단위 precision 자릿수 넘어갈 경우 (0) | 2022.06.03 |
Mysql 날짜관련 data type, datetime과 timestamp 차이 (0) | 2022.06.02 |
Mysql 스토리지엔진, InnoDB 와 MyISAM (0) | 2022.06.01 |
댓글