클리엘
CLIEL LAB
클리엘
전체 방문자
오늘
어제
  • 분류 전체보기 (513)
    • Mobile (47)
      • Kotlin (47)
    • Web (84)
      • NestJS (9)
      • HTML5 & CSS3 (38)
      • Javascript (20)
      • TypeScript (6)
      • JQuery (11)
    • .NET (300)
      • C# (83)
      • ASP.NET (67)
      • Windows API for .NET (128)
    • Server (53)
      • SQL Server (10)
      • MariaDB (18)
      • Windows Server (6)
      • node.js (19)
    • System (12)
      • 작업LOG (12)
    • Review (11)
    • ETC (6)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 블로그 정리

인기 글

태그

  • android studio
  • node.js
  • HTML5
  • MariaDB
  • NestJS
  • 변수
  • CSS3
  • LINQ
  • JavaScript
  • android
  • ASP.NET
  • Entity Framework
  • asp.net core
  • Windows API
  • exception
  • .NET
  • asp.net core web api
  • Kotlin
  • jQuery
  • c#

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
클리엘

CLIEL LAB

[2020-02-19] CentOS-MariaDB MHA 원복하기
System/작업LOG

[2020-02-19] CentOS-MariaDB MHA 원복하기

2020. 3. 3. 10:48
728x90

1. Master 장비 복구

- 정상적으로 Master의 DB가 작동하는 상태로 전환

- 만약 Master장비가 다시 부팅이 되는경우 가상IP가 설정된 eth는 up상태가 되어서는 안됨(slave에서 가상IP가 이미 up된 상태이므로 Master도 up이 되면 IP충돌이 발생) -> 따라서 기본적으로 Master의 가상IP가 설정되는 eth도 Slave와 동일하게 IP를 제거하고 onboot를 no로 설정


2. Slave DB 상태 확인

show master status\G;
show slave status\G; -> Empty set이면 현재 slave가 master로 승격되었음을 뜻함

3. Slave에서 아래 명령을 내림

tail -n1000 /var/log/mha.log|grep 'All other slaves should start replication from here'|tail -n1

4. 본래 Master DB를 현재 Master DB(본래 Slave DB)의 Slave로 만듦

3에서 가져온 명령의 결과에서

CHANGE MASTER TO MASTER_HOST='xxx.xxx.xxx.xxx', MASTER_PORT=3306, MASTER_LOG_FILE='mysql-bin.000004', MASTER_LOG_POS=505, MASTER_USER='mha', MASTER_PASSWORD='xxx';

부분을 가져와 Master장비의 DB에 설정


5. Master DB에서 start slave로 slave로 실행

show slave status\G; 로 상태확인

6. 동기화가 시작되어 현재 Slave에서 Master로의 DB의 변경사항이 반영됨


7. Slave에서 /var/log/mha(log가 남는 경로)의 xxx.failover.complete 파일 삭제


8. Slave에서 Master 쪽으로 이관처리

masterha_master_switch --master_state=alive --conf=/etc/mha.cnf

위 명령을 내린 후 Master 쪽(192.168.0.10)으로 DB 접속이 거부되는 상황이 발생함. master_ip_online_change를 확인해 보니 암호 앞에 \문자가 붙어서 그런 게 아닌가 하는 추측을 해봄(도데체 왜???)

 

대체방법으로 master_ip_online_change에서 command의 start와 stop부분에... = new MHA:DBHelpler(); 하위 위치에 $new_master_password와 $orig_master_password값을 강제 지정함. (오류 발생 X)


9. 8번의 명령을 수행하고 나면 console에 'mysql-bin.xxxxxx:xxx' 아래에

All other slaves should start replication from here. Statement should be: CHANGE MASTER TO MASTER_HOST='192.168.0.12', MASTER_PORT=3306, MASTER_LOG_FILE='mysql-bin.0
00005', MASTER_LOG_POS=342, MASTER_USER='mha', MASTER_PASSWORD='xxx';

형태의 Log를 출력함. 여기 change구문을 slave의 DB에 설정하고 start slave; 명령을 내림. 이렇게 하면 현재 Master(192.168.0.20)가 Slave가 되고 현재 Slave(192.168.0.10)가 Master로 처리됨.


10. Master DB의 내용이 Slave DB에 동기화되고 처음처럼 Master와 Slave로 원래 동작을 시작


11. Slave(Manager)의 상태 확인

masterha_check_status --conf=/etc/mha.cnf

12. mha 재가동

masterha_manager --conf=/etc/mha.cnf

백그라운드에서 실행하려면

nohup masterha_manager --conf=/etc/mha.cnf > /tmp/masterha_manager.log 2>&1 &

 

728x90
저작자표시 비영리 변경금지

'System > 작업LOG' 카테고리의 다른 글

[2020-03-17] 아파치 나이파이(Apache nifi)이용 MariaDB연결  (0) 2020.03.26
[2020-03-03] 아파치 나이파이(Apache nifi) 설치  (0) 2020.03.16
[2020-02-19] CentOS-MariaDB MHA 테스트  (0) 2020.02.28
[2020-02-07] CentOS-MariaDB Replication / MHA 설치및 설정  (2) 2020.02.28
[2020-01-28] MySQL Replication - DBMS 단방향 이중화  (0) 2020.01.28
    'System/작업LOG' 카테고리의 다른 글
    • [2020-03-17] 아파치 나이파이(Apache nifi)이용 MariaDB연결
    • [2020-03-03] 아파치 나이파이(Apache nifi) 설치
    • [2020-02-19] CentOS-MariaDB MHA 테스트
    • [2020-02-07] CentOS-MariaDB Replication / MHA 설치및 설정
    클리엘
    클리엘
    누구냐 넌?

    티스토리툴바