서버 디스크가 가득 차서 Mysql 서비스를 시작할 수 없습니다. 데이터베이스를 축소하려면 어떻게 해야 합니까?

서버 디스크가 가득 차서 Mysql 서비스를 시작할 수 없습니다. 데이터베이스를 축소하려면 어떻게 해야 합니까?

현재 큰 문제가 있습니다. VPS 디스크가 가득 차고 mysql 데이터베이스가 예기치 않게 증가했으며 이미 최대 용량에 도달했기 때문에 호스팅에서 더 많은 공간을 구입할 수 없습니다.

저장 공간 문제로 더 이상 mysql 서비스를 시작할 수 없습니다.

서비스가 꺼진 상태에서 데이터베이스에 대한 쿼리를 실행할 수 있는 방법이 있나요? 하지만 제 생각에는 타사 도구가 필요할 것 같은데 서버 공간이 이를 허용하지 않습니다. 내가 착각한 것이 아니라면 데이터베이스에서 오래된 데이터를 삭제하더라도 어쨌든 축소되지는 않습니다.

내 컴퓨터에 있는 전체 데이터베이스 파일을 다운로드하여 재구축하려고 시도할 수도 없습니다. 데이터베이스 파일이 너무 커서 저장할 수 있는 드라이브가 없기 때문입니다.

지금은 어떤 옵션이 있나요? 내가 다음에 무엇을 할 수 있을지 아는 사람 있나요?

답변1

MySQL은 루트로 실행되지 않으므로 아마도 아직 '예약된' 여유 공간이 있을 것입니다. 다음을 회수할 수 있습니다 tune2fs -m 0 /dev/whatever.

어떤 OS를 사용하고 있는지는 밝히지 않았지만 다른 곳에서 확보할 수 있는 공간이 있을 수 있습니다. 우분투가 있다면 시도해 보세요 apt clean. 등에서 로그 파일을 제거합니다 /var/log/*.

여전히 무언가를 설치할 수 있는 경우 설치 ncdu하고 수행하여 ncdu -x /삭제할 항목에 대한 쉬운 개요를 제공합니다.

또한 제가 자주 사용하는 방법은 수백 MB 크기의 더미 파일을 어딘가에 두어 이러한 상황이 발생하면 제거할 수 있도록 하는 것입니다. 물론 모니터링도 가능합니다.

OPTIMIZE TABLE공간이 확보되면 문제가 되는 테이블 위로 달려가야 합니다 . 그러나 이로 인해 재생성이 발생하므로 추가 공간이 필요합니다. 또한 innodb_file_per_table현재 기본값인 로 실행해야 합니다.

관련 정보