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/