Database/Maria,Mysql

인프런 - 따라하며 배우는 MySQL on Docker 학습 정리 - Orchestrator를 이용한 HA(High Availability) HA 매뉴얼 테스트[자동 복구] (3)

bluebamus 2022. 1. 9.

2022.01.08 - [Database/Maria,Mysql] - 인프런 - 따라하며 배우는 MySQL on Docker 학습 정리 - Orchestrator를 이용한 HA(High Availability) 구성 방법 (1)

 

인프런 - 따라하며 배우는 MySQL on Docker 학습 정리 - Orchestrator를 이용한 HA(High Availability) 구성 방법

1. Orchestrator Container 실행 sudo docker run -it --name orchestrator -h orchestrator --net mybridge --net-alias=orchestrator -p 3000:3000 -d openarkcode/orchestrator:latest sudo docker ps --format..

devspoon.tistory.com

 

2022.01.09 - [Database/Maria,Mysql] - 인프런 - 따라하며 배우는 MySQL on Docker 학습 정리 - Orchestrator를 이용한 HA(High Availability) HA 매뉴얼 테스트[수동 관리] (2)

 

인프런 - 따라하며 배우는 MySQL on Docker 학습 정리 - Orchestrator를 이용한 HA(High Availability) HA 매뉴얼

2022.01.08 - [Database/Maria,Mysql] - 인프런 - 따라하며 배우는 MySQL on Docker 학습 정리 - Orchestrator를 이용한 HA(High Availability) 구성 방법 (1) 1. HA(High Availabiliry) 장애 발생 테스트 1) HA..

devspoon.tistory.com

 

 

1. Orchestrator를 이용한 Auto Failover

    1) 테스트 시나리오

        - Orchestrator의 설정을 변경하고, 장애 발생 테스트 수행

 

    2) Orchestrator 설정 변경

        - /etc/orchestrator.conf.json 파일의 파라미터 값을 변경한다.

            - RecoverMasterClusterFilters 값을 "*" 로 설정

            - PromitionIgnoreHostnameFilters 값을 db003으로 변경 (자동 복구시 해당 hostname은 선택지에서 제외함)

sudo docker exec -it orchestrator bash

cd /etc/

vi orchestrator.conf.json

변경 되기 전
변경 후
변경 되기 전
변경 후

        - Container 재가동 (환경 설정 적용)

sudo docker restart orchestrator

 

    3) 웹서버 Dashboard에서 확인

        - 자동 복구 설정 전 상태

자동 복구 설정 전 상태

        - 자동 복구 설정 후 상태

            - 왼쪽 상단 아이콘을 통해 자동으로 복구가 가능한 상태라는 정보를 확인할 수 있음

자동 복구 설정 후 상태

    3) 자동 복구 테스트 전 확인 사항

        - Audit의 Recovery 메뉴를 누르면 이전 장애 테스트로 인한 장애 기록이 남아 있음 해당 기록의 Acknowledge의

          처리를 먼저 해주어야 이후 테스트가 가능함

메뉴 선택
버튼 위치
처리 예시

   4) 자동 복구 테스트 

        * 만약, 테스트 오류로 클러스트가 꼬이게 된다면 다음과 같은 명령어로 master를 재설정 함

mysql> reset slave all;

mysql> GRANT SUPER, PROCESS, REPLICATION SLAVE, RELOAD ON *.* TO orc_client_user@'172.%';

mysql> GRANT SELECT ON mysql.slave_master_info TO orc_client_user@'172.%';

        - 테스트 전 상태

테스트 전 상태

        - db001 강제 종료

sudo docker stop db001

        - db001 강제 종료

클러스트 분리
db002가 Master로 승격

        - db001 복구 및 Slave로 연결

mysql> set global read_only=1; 

mysql> CHANGE MASTER TO MASTER_HOST='db002', MASTER_USER='repl', MASTER_PASSWORD='repl', MASTER_AUTO_POSITION=1; 

mysql> start slave; 

mysql> show slave status\G

db001이 db002의 Slave로 연결

댓글