'error 1032'에 해당되는 글 1건

  1. 2017.05.08 [Mysql] Error_code: 1032
MySQL2017.05.08 11:42

[에러 메세지]

[ERROR] Slave SQL: Worker 3 failed executing transaction '' at master log mysql_bin.000126, end_log_pos 180180588; Could not execute Delete_rows event on table 테이블; Can't find record in '테이블', Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND; the event's master log mysql_bin.000126, end_log_pos 180180588, Error_code: 1032

 

[내용]

위와 같은 에러 메시지가 나오면서 Slave Sync 종료 되었을 , 해결 방법에 대해 알아 봅시다.

 

[원인]

에러 메세지의 원인은 master slave 간에 데이터가 일치 하지 않아서 발생합니다.

예를 들어 master slave table 아래와 같이 데이터가 있다고 가정합니다.

 

1. master table

a

b

1

1

2

2

3

3

 

2. slave table

a

b

2

2

3

3

 

위와 같은 상태에서 master에서 DELETE FROM table where a = 1; 이라는 명령어를 했을 , slave에서 binlog 읽어서 반영하려 시도 하였으나 일치하는 row가 없어서 에러 메시지를 출력하고, sync 종료하게 됩니다.

 

[해결방법]

slave에서 아래와 같은 명령어 순서로 작업을 하면 됩니다.(에러가 statement 만큼 실행 해줘야 )

STOP SLAVE; SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; START SLAVE;

 

하지만, 방법은 workaround 적인 방법입니다.

 

어느 시점에 어떤 이유로 sync 오류가 난지 파악을 하지 못한다면, 해당 오류는 지속적으로 발생할 있으면, 궁극적으로는 master slave 데이터를 맞춰 주는 것이 가장 좋은 방법입니다.

신고

'MySQL' 카테고리의 다른 글

[Mysql] Error_code: 1032  (0) 2017.05.08
Can't connect to local MySQL server through socket '/tmp/mysql.sock'  (1) 2016.05.19
[Mysql] 변수  (0) 2016.05.19
[Mysql] 제어문  (0) 2016.05.19
[Mysql] 스토어드 함수  (0) 2016.05.17
[Mysql] 스토어드 프로시저  (0) 2016.05.17
Posted by TM ~ing