MySQL MMM 구성 (Centos7 + MySQL 8.0)
· Version : MySQL 8.0.XX, Centos 7
MySQL MMM(MySQL Multi-Master) 을 구성하는 방법에 대해서 살펴본다. 이번 포스트에서는 MMM 구성에 대해서만 다루므로 MySQL 설치 및 Master-Slave 구성은 다른 글을 참고할 수 있도록 한다.
MMM구성에 관한 글을 찾아보면 대부분 Centos6 기반의 환경에서 설치된 글을 많이 볼 수 있다. 필자의 경우 Centos7 환경에서 구성을 진행하였는데, Centos7 버전에서는 공식 가이드 문서에서 제공하는 코드와 조금 다르게 디렉터리 경로가 바뀐 부분이 있어 처음 설치시 오류가 발생하였다. 디렉터리 PATH에 대한 설정 값을 수정하고 정상 작동확인한 내용을 정리하였다.
서버 구성
Host |
IP |
VIP |
Role |
DevMMM-Witness |
192.168.0.1 |
|
Monitoring |
DevMySQLMMM-1 |
192.168.0.2 |
192.168.0.102 |
Master 1 |
DevMySQLMMM-2 |
192.168.0.3 |
192.168.0.103 |
Master 2 |
· Write VIP : 192.168.0.101
MNM 구성
· MMM Monitor : MMM Agent 서버의 상태를 체크하고 상태에 따라 역할(reader, writer)을 변경,관리
· MMM Agent : MMM 에서 reader, writer 역할을 하는 구성원
· MMM VIP : 유동적으로 writer 및 마스터 역할을 변경할 수 있도록 writer에 구성하는 virtual IP
· 역할구성 : master역할을 할 수 있는 writer후보자들은는 두개로 구성하고, 나머지는 slave 역할만 하도록 구성
|
DevMMM-Witness |
DevMySQLMMM-1 |
DevMySQLMMM-2 |
MMM에 사용할 계정 생성 |
|
CREATE USER 'mmm_monitor'@'%' IDENTIFIED BY 'PASSWORD'; CREATE USER 'mmm_agent'@'%' IDENTIFIED BY 'PASSWORD';
GRANT ALL PRIVILEGES on *.* TO'mmm_monitor'@'%'; GRANT ALL PRIVILEGES on *.* TO'mmm_agent'@'%';
FLUSH PRIVILEGES; |
|
호스트에 사용자 계정 추가 |
|
useradd --comment "MMM Script owner" --shell /sbin/nologin mmmd |
|
MMM 설치 |
sudo yum install mysql-mmm mysql-mmm-monitor |
sudo yum install mysql-mmm mysql-mmm-agent |
sudo yum install mysql-mmm mysql-mmm-agent |
mmm_common.conf 설정 |
sudo vi /etc/mysql-mmm/mmm_common.conf
아래 설정 값 입력 active_master_role writer
<host default> cluster_interface eth0 pid_path /run/mysql-mmm-agent.pid bin_path /usr/libexec/mysql-mmm/ replication_user repluser replication_password PASSWORD agent_user mmm_agent agent_password PASSWORD </host>
<host DevMySQLMMM-1> ip 192.168.0.2 mode master peer DevMySQLMMM-2 mysql_port 3306 </host>
<host DevMySQLMMM-2> ip 192.168.0.3 mode master peer DevMySQLMMM-1 mysql_port 3306 </host>
<role writer> hosts DevMySQLMMM-1, DevMySQLMMM-2 ips 192.168.0.101 mode exclusive </role>
<role reader> hosts DevMySQLMMM-1,DevMySQLMMM-2 ips 192.168.0.102,192.168.0.103 mode balanced </role> |
||
mmm_agent.conf 설정 |
|
sudo vi /etc/mysql-mmm/mmm_agent.conf
아래 설정 값 입력 include mmm_common.conf this DevMySQLMMM-1 |
sudo vi /etc/mysql-mmm/mmm_agent.conf
아래 설정 값 입력 include mmm_common.conf this DevMySQLMMM-2 |
mmm_mon.conf 설정 |
sudo vi /etc/mysql-mmm/mmm_mon.conf
아래 설정 값 입력 include mmm_common.conf
<monitor> ip 127.0.0.1 pid_path /run/mysql-mmm-monitor.pid bin_path /usr/libexec/mysql-mmm/ status_path /var/lib/mysql-mmm/mmm_mond.status ping_ips 192.168.0.2,192.168.0.2 auto_set_online 60 </monitor>
<host default> monitor_user mmm_monitor monitor_password PASSWORD </host> debug 0 |
|
|
부팅시 자동 시작 등록 |
sudo systemctl enable mysql-mmm-monitor |
sudo systemctl enable mysql-mmm-agent |
sudo systemctl enable mysql-mmm-agent |
MMM 시작 |
sudo systemctl start mysql-mmm-monitor |
sudo systemctl start mysql-mmm-agent |
sudo systemctl start mysql-mmm-agent |
MMM동작 확인
· sudo mmm_control show
· sudo mmm_control checks all
· Role Change (Run as Monitor)
sudo mmm_control move_role writer DevMySQLMMM-1 |
MMM Troubleshooting
MMM 서비스 후 아래와 같이 ADMIN 이 OFFLINE로 표시한 경우 아래 명령어 실행
mmm_control set_online mysqltest-2 |
[참고자료]
· https://mysql-mmm.org/mmm2_guide.html
2020-01-31 / Sungwook Kang / http://sungwookkang.com
MySQL, MMM, MySQL 복제, MySQL 이중화, MySQL Multi Master, 멀티마스터 복제, HA, Database 이중화, DBA
'MySQL, MariaDB' 카테고리의 다른 글
MySQL Master DB를 백업하여 Replication Slave DB 구성하기 (0) | 2021.05.29 |
---|---|
MySQL InnoDB Buffer Pool Resizing Online (0) | 2020.10.21 |
MySQL/MariaDB Single-pass, Two-pass Sort Algorithm (0) | 2019.09.21 |
MySQL/MariaDB Sort Buffer (1) | 2019.09.20 |
MySQL/MariaDB Full Table Scan (0) | 2019.09.19 |