본문 바로가기
[DataBase]/MySql

mysql replication 에서 동기화 Error - 1062

by control+c 2017. 1. 6.
반응형

mysql 중복 복제 에러 건너뛰기


show slave status; 명령어로 동기화가 깨진 걸 확인 할 수 있다.

Slave_IO_Running: Yes
Slave_SQL_Running: No -> 동기화가 꺠져 slave로의 역할을 할수 없게 되었다.


mysql replication 에서 동기화가 깨질 때 1062 코드를 자주 볼 수 있다. 


Replicate_Wild_Ignore_Table: 
                 
Last_Errno: 1062
                 
Last_Error: Error 'Duplicate entry '1004' for key 1' on query.


해당에러 내용은 유일키의 중복으로 인한 replication Error로 slave 동기화가 깨진다.


1062 에러는 근본적으로 유일키의 중복을 방지 하는 방법을 사용해야한다. 


하지만 우리의 노력에도 불구하고 가끔씩 일어나고, 해당 데이터를 무시해도 되는 것이라면


my.cnf에 slave-skip-errors을 추가하자.


slave-skip-errors는 해당 코드에 에러가 발생하면 해당건의 작업을 건너 뛰게 해준다.

 


# skip

slave-skip-errors=1062,1032


참고 


1032 Error


마스터 와 슬레이브 서버간에 데이타가 일치하지 않음을 나타내는 에러코드 


마스터에서 넘어온 update, delete 쿼리를 실행 하려는데 해당 값이 없어서 생기는 Error

마스터와 슬레이브간의 데이터 동기화가 필요하다. 


마스터의 데이터를 덤프 하는 것으로 해결 할 수 있다.


slave-skip-errors을 주면 동기화가 깨지지 않게 안정적인 운영이 가능하다. (데이터 정합성은 조금 떨어질 수 있다.)



반응형

댓글