OS

2022.02.21 14:25

mysql lock 쿼리 모두 강제 중지(kill)

  • 비아웹 오래 전 2022.02.21 14:25 인기
  • 3,975
    0

안녕하세요

서버호스팅 전문기업 비아웹입니다.

 

mysql 을 사용하다 보면, 테이블 lock 으로 인해 서비스 지연이 발생하는 경우가 있습니다.

table lock 의 경우 원인 파악 및 재발 방지 조치가 필수적이지만,

당장 웹 서비스가 안되는 경우에는 해당 lock 을 강제로 중지시켜아 하는 경우에

아래와 같이 kill PID 로 가능합니다.

mysql > kill PID;

소수의 DB lock 이 아닌, 다수의 lock 을 한번에 kill 시키는 방법에 대해 기록 남깁니다.

 

1. show processlist (현재 DB 상태 확인)


2. lock 상태 process 만 확인
mysql > select * from information_schema.processlist where State LIKE" Locked";

 

3. lock 상태 process 에 kill 명령어 붙여보기

mysql >select concat('KILL ',id,';')from information_schema.processlist where State LIKE "Locked";

 

4. 3번 항목의 명령어 결과를 별도 파일로 저장 후 실행

- 별도 파일로 저장

mysql> select concat('KILL ',id,';')from information_schema.processlist where State LIKE"Locked" \
into outfile '/tmp/kill.txt';

- source 명령어를 이용하여 별도 파일 불러오기

mysql> source /tmp/0210.txt ;

이상과 같이 mysql lock 상태 프로세스를 모두 강제 중지하는 방법에 대해 정리하였습니다.

이상의 방법은 임시적인 방안이며, 동일 테이블에 다수의 lock 발생시에는 개발자 및 웹 로그 확인을 통해 원인 파악이 필요합니다.

 

감사합니다.

서버호스팅 비아웹

  • 공유링크 복사

    댓글목록

    등록된 댓글이 없습니다.