본문 바로가기
DataBase/MySQL

[MySQL] Table Lock(테이블 락) 확인 및 해제 하기

by 선인장 🌵 2022. 4. 13.
728x90
728x90

Table Lock(테이블 락) 확인 및 해제 하기

MySQL을 사용하다 보면 실수 혹은 어떠한 이유로 인해 Table(테이블)에 Lock(락)이 발생하는 경우가 있다.

이때, Lock이 발생한 Table 확인 및 Lock 해제를 할 수 있다.

우선 간략하게 확인 및 해제에 대해서 확인해 보자.

[MySQL] Table Lock(테이블 락) 확인 및 해제 하기

728x90

1. Lock Table 확인

특정 Table에 DDL / DML / DCL 권한에 속한 명령어들이 정상적으로 이뤄지지 않는 경우가 발생할 수 있다.

 

[SQL] DDL / DML / DCL 이란?

DDL / DML / DCL 이란? 관계형 데이터베이스(RDBMS)인 여러 가지 데이터베이스(DataBase)를 사용을 위해서는 반드시 SQL(Structered Query Language)을 사용해야 한다. 그중 SQL 문법에는 3가지의 종류가 있다. 그..

happylie.tistory.com

이럴 때 제일 먼저 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


🌵댓글

 

loading