본문 바로가기

개발노트/SQL&DB

Mysql GTID-based Replication 오류 Skip 하기

뚜렷이 어떤 SQL 에러가 발생한 지 확인 가능하고, 그걸 Skip 해도 된다는 확신이 있으면 이 방법이 가장 쉽고 빠르다.

1. 문제가 된 gtid 트랜잭션 번호 찾기

2. 문제가 된 gtid 트랜잭션 건너 띄도록 빈(empty) 트랜잭션 주입

mysql> SET GTID_NEXT="c85b621b-8fd3-11e8-862c-020051680009:66194695";
Query OK, 0 rows affected (0.00 sec)

mysql> begin;
Query OK, 0 rows affected (0.00 sec)

mysql> commit;
Query OK, 0 rows affected (0.01 sec)

mysql> SET GTID_NEXT="AUTOMATIC";
Query OK, 0 rows affected (0.00 sec)

mysql> start slave;
Query OK, 0 rows affected (0.01 sec)

 

 

참고

https://www.percona.com/blog/2013/03/26/repair-mysql-5-6-gtid-replication-by-injecting-empty-transactions/#targetText=That%20means%20that%20transaction%205,GTID%20we%20want%20to%20skip.

 

Repair MySQL 5.6 GTID replication by injecting empty transactions

Repair MySQL 5.6 GTID replication by injecting empty transactions. Is this an easy way to skip a single transaction?

www.percona.com

 

아래 글은 binlog position 으로 오류가 발생한 gtid를 찾아내는 방법도 나와있음

https://www.thegeekdiary.com/how-to-skip-a-transaction-on-mysql-replication-slave-when-gtids-are-enabled/

 

How To Skip a Transaction on MySQL replication slave When GTIDs Are Enabled – The Geek Diary

 

www.thegeekdiary.com