본문 바로가기

제안&정리

AWS Aurora 3 (MySQL 8 호환) BEFORE/AFTER 구문 등 테이블 리빌드 필요 시 리더에서 테이블 인식불가 버그

회사에서 업무하면서 컬럼을 추가할 일이 있었는데 AFTER 구문을 활용해서 DDL을 작성했습니다.

 

INSTANT 알고리즘으로 실행되지는 못하지만 (INSTANT 알고리즘으로 실행되려면 맨 마지막에 추가되어야 하므로)

자주 조회되는 테이블도 아니고 데이터도 많지 않기 때문에 컬럼 순서를 잘 유지하는게 더 낫다고 생각했기 때문입니다.

 

하지만 DBA 분께 AWS Aurora 3에서 컬럼 추가 시에 before/after 구문을 지정하면 작업이 진행되는 동안 reader에서 해당 테이블을 인식하지 못하는 버그가 있다고 알려주셨습니다.

그래서 꼭 필요한 경우가 아니라면 before/after 구문을 사용하지 말아달라고 하는데요.

 

관련해서 좀 더 알아보니 꼭 BEFORE/AFTER 구문이 아니더라도 INPLACE 알고리즘으로 실행되는 DDL에서 데이터 리빌딩이 필요한 경우 DDL이 실행되는 동안 리더에서 관련 테이블을 찾지 못하는 버그였습니다.

 

해당 버그는 3.03.2 버전에서 해결이 되었다고 하며 해당 버전 Release Note에서도 내용을 확인할 수 있습니다.

  • Fixed an issue where the reader instance is unable to open a table, with ERROR 1146. This issue occurs when executing certain types of online Data Definition Language (DDL) while the INPLACE algorithm is being used on the writer instance.

3.03.2 이전 버전을 사용하고 있다면 before/after 구문을 포함해서 테이블 리빌딩이 필요한 경우에 대해 주의를 해야겠네요.