728x90
728x90
Table Lock(테이블 락) 확인 및 해제 하기
MySQL을 사용하다 보면 실수 혹은 어떠한 이유로 인해 Table(테이블)에 Lock(락)이 발생하는 경우가 있다.
이때, Lock이 발생한 Table 확인 및 Lock 해제를 할 수 있다.
우선 간략하게 확인 및 해제에 대해서 확인해 보자.
728x90
1. Lock Table 확인
특정 Table에 DDL / DML / DCL 권한에 속한 명령어들이 정상적으로 이뤄지지 않는 경우가 발생할 수 있다.
이럴 때 제일 먼저 Table에 Lock이 걸렸는지 확인이 필요하다.
아래 명령어를 통해서 현재 DB에 사용되고 있는 프로세스에 대한 리스트를 확인할 수 있다.
- SHOW FULL PROCESSLIST;
# Table Lock 확인 방법
SQL> SHOW FULL PROCESSLIST;
Id User Host db Command Time State
507390 dev 127.0.0.1:60635 dev Query 1000 Waiting for table metadata lock
위와 같이 State 칼럼에 "Waiting for table metadata lock"으로 인해 해당 Table에 대해서 쿼리가 진행되지 않음을 확인 가능하다.
728x90
2. Lock 해제
그렇다면 이제 Lock이 걸린 항목에 대해서 아래 명령어를 통해서 해제를 해보도록 하자.
- KILL Id;
# Table Lock 해제 방법
SQL> KILL 507390;
SQL> SHOW FULL PROCESSLIST;
Id User Host db Command Time State
....
위와 같이 해당 Lock이 발생한 ID 값을 Kill로 종료 함으로써 Lock에 발생한 Table에 대해서 쿼리가 제거됨을 확인할 수 있다.
단, Lock 발생한 프로세스를 강제적으로 종료 함에 따라서 사용했던 명령어에 데이터들은 증발할 수 있는 부분도 알아 두도록 하자.
728x90
728x90
🌵댓글