내 Webmin에 디스크가 꽉 찼다는 오류 메시지가 표시되었습니다. 조사 결과 내부에 있는 3개의 파일이 /var/lib/mysql
너무 커진 것을 발견했습니다.
- mysql.ibd (8.8G)
- undo_001 (8.4G)
- undo_003 (2.5G)
이 파일을 제거할 수 있는지 확인하기 위해 검색했지만 undo_001 및 undo_002에 대한 명확한 정보가 없는 반면 제안은 mysql.ibd에 대한 것이었습니다.
파일을 안전하게 제거하려면 어떻게 해야 하며 어떤 파일을 서버에 복원해야 합니까? 현재로서는 0바이트가 비어 있고 서버에서 할 수 있는 일이 없습니다.
또 다른 질문은 이러한 파일이 너무 커지는 것을 방지하는 방법입니다.
답변1
파일을 안전하게 제거하려면 어떻게 해야 하며 어떤 파일을 서버에 복원해야 합니까? 현재로서는 0바이트가 비어 있고 서버에서 할 수 있는 일이 없습니다.
직접적으로는 아닙니다. 공간을 확보하려면 mysql 내에서 테이블을 삭제해야 합니다. 이는 설정한 경우 innodb에 대해서만 작동한다는 점에 유의하십시오. innodb_file_per_table
그렇지 않으면 테이블을 삭제하고 전체 데이터베이스의 덤프를 생성한 후 다시 로드해야 합니다(그리고 그렇습니다... 공간이 필요합니다). 그렇지 않으면 데이터베이스 파일이 축소되지 않습니다.
더 쉬운 방법은 시스템에서 다른 파일을 제거하는 것입니다.
2 UNDO 파일에 관하여:
UNDO 테이블스페이스를 제거하는 명령은 다음과 같습니다.
ALTER UNDO TABLESPACE tablespace_name SET INACTIVE;
DROP UNDO TABLESPACE tablespace_name;
그리고 MySQL 프롬프트 내에서 이를 수행합니다. 롤백 기능이 상실됩니다.
mysql 데이터베이스를 루트 시스템과 동일한 시스템에 두지 마십시오. 파티션이나 다른 디스크를 사용하십시오. 1개의 디스크만 사용하는 경우 /var/
자체 파티션에 넣는 것이 일반적이었습니다 . 그러면 루트가 가득 차는 것을 방지할 수 있습니다.
공간을 확보하려면 끝에 /var/log/
있는 모든 항목을 제거할 수 있는지 살펴보세요 . .gz
숫자로 끝나는 파일도 마찬가지입니다 *[0-9]
. 이것들은 모두 로그 파일의 백업이며 때로는 너무 커지는 경향이 있습니다.
그러면 실행 취소 로그가 자동으로 잘립니다.
SET GLOBAL innodb_undo_log_truncate=ON;