티스토리 뷰

엔지니어링

Mysql 메타데이터 락

warpmemory 2020. 3. 7. 17:17

MySQL 5.5.3 이상 버전에서 Alter 테이블 작업 시,

Alter가 진행되지 못하고 계속 대기하는 문제가 발생하여, 

show processlist를 통해서 확인해보니 "Waiting for table metadata lock" 상태로 락이 발생하고 있었습니다.

 

찾아보니, 5.5 이전 버전에서 DDL 작업시 트랜젝션을 고려하지 않는 문제가 있었는데,

이를 해결하기 위하여, 메타 데이터락이라는 정책을 추가했고, 
트랜젝션이 유지 되는 동안에 DDL 작업이 들어오면 락이 걸리는 것이었습니다.

(락이 걸리면, lock_wait_timeout 설정에 따라서 (기본값은 1년), 대기후 DDL 작업은 자동으로 취소됨.)

 

현재 최신 버전인 5.5.27 기준으로 어느 세션에 의해 메타데이터 락이 걸렸는지 확인할 수 있는,

방법이 제공되고 있지 않기 때문에, DDL 작업 시에는 해당 디비에 접속 세션을 모두 확인하여 접속을 종료하거나,

신규 세션을 차단하고 기존 트랜젝션 완료 후 DDL 작업을 수행하는 방법으로 작업을 해야 합니다.

 

 

MySQL 5.5 Metadata Locking

5.5 버전 이전의 MySQL에서는 DDL 작업을 진행하는 경우 기존 동작중인 트랜잭션을 고려하지 않고 ...

blog.naver.com

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
페이지
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함