MHA를 이용한 MySQL 고가용성 환경 구축

MHA의 주요 기능:

  • 장애 발생 시 MySQL의 바이너리 로그 이벤트 저장;
  • 최신 업데이트를 포함하는 슬레이브 서버 식별;
  • 차이점 리레이 로그 적용을 통한 다른 슬레이브 서버 동기화;
  • 마스터로부터 저장된 바이너리 로그 이벤트 적용;
  • 새로운 마스터로 슬레이브 서버 승격;
  • 나머지 슬레이브 서버들을 새로운 마스터에 연결하여 복제 설정;

MHA 환경 설정:

  • 관리자 노드: 192.168.125.210
  • 노드1: 192.168.125.200
  • 노드2: 192.168.125.201
  • 노드3: 192.168.125.202

1, 먼저 MySQL의 주-복제 설정을 구성해야 합니다.

2, SSH 비밀번호 없는 접근 설정:

[root@localhost ~]# ssh-keygen -t rsa -q -N ""  // 공개 키 생성
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
[root@localhost ~]# cat .ssh/id_rsa.pub >> .ssh/authorized_keys  // 공개 키를 인증 파일에 추가
[root@localhost ~]# chmod 600 .ssh/authorized_keys 
[root@localhost ~]# scp .ssh/id_rsa .ssh/authorized_keys 192.168.125.200:/root/.ssh/ // 각 노드에 SCP를 통해 전송
[root@localhost ~]# scp .ssh/id_rsa .ssh/authorized_keys 192.168.125.201:/root/.ssh/
[root@localhost ~]# scp .ssh/id_rsa .ssh/authorized_keys 192.168.125.202:/root/.ssh/

3, MHA 설치:

다운로드 링크: https://downloads.mariadb.com/MHA/mha4mysql-manager-0.58-0.el7.noarch.rpm https://downloads.mariadb.com/MHA/mha4mysql-node-0.57-0.el7.noarch.rpm EPEL 저장소 필요, YUM을 통한 설치. 관리자 노드에서는 매니저와 노드 패키지를 모두 설치하며, 다른 복제 노드에서는 노드 패키지만 설치합니다.

4, MHA 설정:

[root@manager ~]# cat /etc/masterha/app1.cnf 
[server default]
manager_workdir=/var/lib/masterha/app1   # 매니저 작업 디렉토리 설정
manager_log=/var/log/masterha/app1.log # 매니저 로그 설정
master_binlog_dir=/var/lib/mysql/ # 마스터 바이너리 로그 위치 설정
user=admin  # 모니터링 용 계정 설정, 모든 노드에서 생성 필요
password=securepass  # 비밀번호
ssh_user=root  # SSH 접속 사용자 설정
repl_user=repladmin  # 복제 환경에서 사용할 복제 계정
repl_password=replicapass # 복제 계정 비밀번호
 
[server1]
hostname=192.168.125.200
port=3306
candidate_master=1  # 후보 마스터로 지정
  
[server2]
hostname=192.168.125.201
port=3306
candidate_master=1 
 
[server3]
hostname=192.168.125.202
port=3306

5, MHA 테스트:

[root@manager ~]# masterha_check_ssh --conf=/etc/masterha/app1.cnf  # SSH 연결 테스트
[root@manager ~]# masterha_check_repl --conf=/etc/masterha/app1.cnf # 복제 설정 테스트

6, MHA 시작 및 중지:

[root@manager ~]# nohup masterha_manager --conf=/etc/masterha/app1.cnf > /var/log/masterha/app1/manager.log 2>&1 &

[root@manager ~]# masterha_stop --conf=/etc/masterha/app1.cnf

수동으로 슬레이브를 마스터로 전환:

[root@manager ~]# masterha_master_switch --master_state=alive --conf=/etc/masterha/app1.cnf --orig_master_is_new_slave --running_updates_limit=3600 --interactive=0

태그: MySQL MHA SSH HighAvailability Replication

6월 11일 02:21에 게시됨