[작업로그] MHA Failover, RollChange 테스트

MARCH 03, 2021

MySQL MHA 테스트에 대한 작업 로그를 기록한다.


시나리오

  • Failover
  • Failback
  • Roll Change
  • MHA Manager 기동

■ 1. Failover

  • #1번서버

    • Ifconfig로 VIP up 확인 (master 확인)
    • MySQL 종료

      $ /usr/local/mysql/bin/mysqladmin -uroot -p shutdown
    • Ifconfig 로 VIP down 확인
  • #2번 서버

    • VIP up 확인
    • MySQL Slave 상태 확인, empty 이면 정상적으로 failover 완료

      mysql> show slave status;

■ 2. Failback

  • 수동작업 진행
  • #2번 서버

    • Data Dump

      $ mysqldump -u root -p --all-database > dump.sql
    • Master Status 확인

      mysql> show master status;
  • #1번 서버

    • MySQL 기동

      $ /usr/local/mysql/bin/mysqld_safe --user=mysql &
    • dump import

      $ mysql -u root -p < dump.sql
    • Slave 등록

      // 해당 쿼리문은 MHA.log에 기록되어 있음
      mysql> change master to master_host=[#2번서버 HOST], master_port=[PORT], 
      master_user=[replication db user], master_password=[replication user password],
      master_log_file=[#2번 서버의 master log file], master_log_pos=[#2번 서버의 master log pos];
    • Slave 시작 및 확인

      mysql> start slave;
      mysql> show slave status;
    • 이중화 되었는지 데이터 확인

■ 3. Roll Change

  • #2번 서버

    • Failover가 실행되면 MHA manager는 자동 종료되며, masterha_default.failover.complete 파일이 생성됨.
    • Roll 변경 전 해당 파일 삭제 필요
    • masterha_master_switch 실행

      masterha_master_switch --master_state=alive --conf=/etc/mha.cnf --orig_master_is_new_slave --interactive=0
    • VIP down 확인
    • slave 상태 확인

      mysql> show slave status;
  • #1번 서버

    • VIP up 확인
    • master 및 slave 상태 확인

■ 4. MHA Manager 기동

  • #2번 서버

    • MHA Manager 현재 상태 확인

      $ /usr/bin/masterha_check_status --conf=/etc/mha.conf
    • MHA Manager 기동

      $ nohup /usr/bin/masterha_manager --conf=/etc/mha.cnf &

작업 기록 블로그