본문 바로가기

-DB

mariadb/mysql Disk is full writing 일시 대처법

반응형

db 접속 데이터 이상없음을 확인 그러나 에러가 발생. (Disk is full writing '/temp001/masvc01/TEST/#sql_5a37_3.MAD' 뭐 이런식)

서버 디스크가 꽉찼다는 것을 인지하고 df -h 확인  (최상위 폴더에서 100% 찬것을 확인 )


최상위 폴더에서 du -sh * 를 실행하여 어디가 문제인지 확인 (확인 결과 tmp 폴더 문제)


tmp폴더에 mariadb tmp 파일이 47G 인것을 확인 


스토리지 엔진으로부터 받아온 레코드를 order by 나 group by 할 때 
혹은 alter 테이블 명령어 수행을 위해 내부적인 임시 테이블을 사용함.
일반적으로 임시 테이블은 처음엔 메모리에 생성됐다가 설정값 (max_heap_table_size 혹은 tmp_table_size 값)을 초과하는 경우 디스크로 옮겨짐. 
이와 같은 내부적인 임시테이블은 쿼리 수행이 완료되면 자동으로 삭제됨

그러나 mms_list_tb쪽에는 데이터가 50g 를 넘기때문에 서버가 100% 멈춘 현상 
그렇기에 db 접속하여 show processlist 확인 후 
kill 함

 

반응형