본문 바로가기
Mysql

Mysql Master Slave 동기화 끊겼을 시 처리

by NaHyungMin 2019. 5. 13.

KT 클라우드 문제로 게임 서버 중 Slave와 Log 서버가 폭파되어 어쩔 수 없이 Slave 정보와 Log를 잠시 본서버에 옮겼다가 복구되자마자 다시 원복.

하지만 이미 Master 서버와 Slave 서버 동기화가 끊겨버렸다.

이것저것 알아보다가 처리.

 

리눅스 mysql에 접속방법.

mysql -u(user) -p(pwd)로 접속

 

접속 후에. show slave status \G;를 치면 현재 상태가 나온다.

 

* 마지막 바이너리로그 파일과 포지션 위치

 

Slave_IO와 Slave_SQL이 둘다 Yes여야 한다. 하나라도 No면 제대로 처리가 안되고 있는 상황.

문제가 생긴 정보는 Last_Io_Error나, Last_SQL_Error에 정보가 나온다.

그리고 Last_IO_Error_TimeStamp, Last_Sql_Error_Timestamp에는 오류 시간이 나온다.

 

결국 이곳에 나온 정보로 처리했다.

https://stackoverflow.com/questions/28838040/mysql-error-1236-from-master-when-reading-data-from-binary-log

 

Mysql error 1236 from master when reading data from binary log

I have 2 MySql with a master/slave configuration and the replication is failing. The MySql Master crashed and a new register in the mysql-bin.index was created. I deleted this new register because ...

stackoverflow.com

  1. Slave: stop slave;
  2. Master: flush logs
  3. Master: show master status; — take note of the master log file and master log position

  4. Slave: CHANGE MASTER TO MASTER_LOG_FILE='log-bin.00000X', MASTER_LOG_POS=106;

  5. Slave: start slave;

간단하게 Slave를 멈추고 마스터에 바이너리 로그를 다 쓰게 한 다음 마스터 정보를 읽어와 Slave에 연결하고 시작하라는 내용.(해당 오류난 시점으로 이동해 처리한다.)

 

KT 클라우드 주말에 16시간동안 큰 고통을 주다니. -.-

 

참고 사이트

리눅스 접근
https://zetawiki.com/wiki/MySQL_%EB%A0%88%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98_%EC%83%81%ED%83%9C_%ED%99%95%EC%9D%B8

--참고
https://stackoverflow.com/questions/28838040/mysql-error-1236-from-master-when-reading-data-from-binary-log
https://www.redips.net/mysql/replication-slave-relay-log-corrupted/