티스토리 뷰
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 작업을 수행하는 방법으로 작업을 해야 합니다.
'엔지니어링' 카테고리의 다른 글
Mariadb Galera Cluster 셋팅 (0) | 2020.03.07 |
---|---|
Mariadb MaxScale 제한 사항과 알려진 이슈 (0) | 2020.03.07 |
디스크 Write 성능 향상 (0) | 2020.03.07 |
Apache httpd 프로세스 제한 (0) | 2020.03.07 |
Windows CPU, Memory 상태 데이터 모니터링 (0) | 2020.03.07 |
댓글
warpmemory
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
페이지
TAG
- configuration
- engineering
- command
- example
- 외부링크
- check
- client
- httpd
- Linux
- Python
- MariaDB
- mysql
- RESTful
- PowerShell
- Module
- 코드
- 이슈처리
- apache
- limits
- File
- deview
- Web
- monitoring
- Ansible
- error
- Windows
- 명령어
- code
- 번역
- 예제
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함