DB/SQL

[MySQL] 테이블 복원 중에 만난 ERROR 3546 해결 방법

bskyvision.com 2022. 9. 11. 19:41

예전에 테이블 단위로 백업해놨던 것을 다시 복원할 일이 있어서 하나씩 다음과 같은 명령으로 복원하던 중에 에러를 만났습니다. 

 

mysql -u root -p 데이터베이스명 < 테이블백업파일.sql

 

ERROR 3546 (HY000) at line 26: @@GLOBAL.GTID_PURGED cannot be changed: the added gtid set must not overlap with @@GLOBAL.GTID_EXECUTED

 

구글링을 통해 얻은 해법은 mysql 콘솔에서 다음 명령을 실행하는 것이었습니다.

 

RESET MASTER

 

위 명령을 실행한 후에 다시 테이블 복원 명령을 실행하니 에러 없이 테이블이 잘 복원되었습니다. 

 

RESET MASTER를 해주면 다음과 같은 일이 일어난다고 합니다[1].

1) 인덱스 파일에 있는 모든 바이너리 로그 파일들이 지워집니다.

2) 바이너리 로그 인덱스 파일이 빈(empty) 상태가 되도록 리셋됩니다.

3) .000001 접미사(suffix)를 가진 새로운 바이너리 로그 파일이 생성됩니다. 

 

만약 쌓여있는 바이너리 로그를 잘 보존해야 하는 상황이라면 함부로 해서는 안되는 명령이겠죠. 저는 그냥 예전 데이터를 확인할 필요만 있었던 것이기 때문에 상관 없는 상황이긴 했습니다. 

 

참고자료

[1] https://mariadb.com/kb/en/reset-master/ 

 

관련 글

- [MariaDB] 데이터베이스 백업 및 복구하기