DEV&OPS/Database
MySQL ibtmp1 파일 용량, Gerneral_log 파일 용량
ALEPH.GEM
2022. 4. 20. 14:22
리눅스 개발서버에서 MySQL 5.X 사용중에 디스크 용량 부족 메시지가 나오길래 우선 디스크 용량을 조사해 보았습니다.
df -h
과연 루트 파티션의 용량이 꽉차 있었습니다.
그래서... 원인을 찾기 위해 좀더 조사해보았습니다.
du -h
여러분의 실제 경로는 다를 수 있습니다만
/var/lib/mysql/ibtmp1
용량을 잡아먹던 범인은 바로 이 ibtmp1 파일이었습니다.
무한정 커지고 있더군요.
문제 해결은 단순히 MySQL를 재시작하는 것이었습니다.
리눅스 콘솔에서 아래와 같이 재시작 합니다.
systemctl restart mysqld
MySQL Temporary Tablespace
사용자가 생성한 임시 테이블들이 shared temporary tablespace 에 생성됩니다.
아무것도 설정하지 않으면 기본적으로 innodb_data_home_dir 경로에 ibtmp1 파일에 생성됩니다.
기본적으로 12M에서 시작하여 계속해서 용량이 늘어납니다.
사용량 확인
mysql> SELECT * FROM INFORMATION_SCHEMA.FILES WHERE TABLESPACE_NAME='innodb_temporary';
또는
mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_TEMP_TABLE_INFO;
만약 파일시스템의 temporary file 의 공간이 작다면
/etc/my.cnf 파일의
tmpdir = 여기
여기에 경로를 지정해두면 됩니다.
General 로그
general 로그의 기본값은 꺼져있으나 모든 실행 쿼리를 저장하므로 만약 켜져 있다면 용량이 빠르게 늘어나므로 관리가 필요합니다.
General로그 파일 위치 확인
mysql> show variables like 'general%';
Gerneral로그 활성화
mysql> set global general_log=ON;
비활성화는 ON대신 OFF를 하면됩니다.
mysql 재시작
systemctl restart mysqld
728x90