mysql replication error(동기화 문제)

  • 등록 2017.07.12 11:47:33
크게보기

mysql Replication 이용 중 마스터 디비의 데이터가 슬래이브 디비의 데이터에 반영되지 않을 경우
슬래이브 상태를 확인했을 때 아래와 같은 에러가 발생할 수 있다.

101008 19:48:58 [ERROR] Slave: Error 'Duplicate entry '222' for key 1' on query. Default database: 'M_SERVICE'. Query: 'INSERT INTO      T_LOTTO_MY     (     MY_SEQ,USERNO,NUM1,NUM2,NUM3,NUM4,NUM5,NUM6,GAME_NUM,RANK,PRIZE,UPDATE_DATE     )   VALUES     (     null,'620013149754',4,18,25,44,16,8,409,'0',0,NOW()     )', Error_code: 1062

원인은 슬래이브 데이터베이스에 갱신된 데이터를 쓰로고 할때 발생하는 에러이다.

슬래이브는 에러가 발생하면 더이상 마스터로부터 갱신된 데이터를 반영하지 않는다.
하지만 다행스럽게도 마스터에서의 갱신 정보는 슬래이브에 쌓여있어
위 문제를 해결하여 Replication을 정상화 시킬 수 있다.


해결책)
1. 슬래이브 상태를 멈춘다.
stop slave;

2. 에러 쿼리를 하나 스킵한다.
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;

3. 다시 슬래이브를 시작한다.
start slave;

노랑배 kosthb@gmail.com
Copyright @2011 mediaon Corp. All rights reserved.

사이트에 관련하여 연락은 메일로 주세요. kosthb골뱅이gmail.com Copyright 2011 mediaon. All rights reserved.