소개
디스크 공간이 가득 차면 MySQL은 어떻게 되나요? 우리는 어떻게 대응해야 합니까?
어떻게 되나요?
디스크 공간이 가득 차면 MySQL은 binlog, binlog는 물론 테이블 데이터 쓰기를 포함하여 더 이상 데이터를 쓸 수 없습니다. -색인 및 기타 파일.
물론 InnoDB는 더티 데이터를 메모리에 먼저 저장할 수 있기 때문에, binlog가 켜지지 않으면 쓰기 요청이 차단된다는 것을 즉시 표시하지 않습니다.
매 순간: 새 데이터를 쓸 수 있도록 공간이 확보되었는지 확인하세요. 남은 공간이 있는 것으로 확인되면 데이터가 계속 기록되며 모든 작업은 평소대로 진행됩니다.
10분마다: 여전히 남은 공간이 없는 것으로 확인되면 디스크 공간이 가득 찼음을 알리는 기록이 로그에 기록됩니다(몇 바이트만 기록). 지금은 충분합니다.) 재발 방지를 위해 모니터링 시스템의 감지 빈도를 높입니다. 적시에 사용하지 않는 파일을 삭제하여 공간을 확보하세요. 디스크가 가득 차서 스레드가 차단된 경우 먼저 스레드를 종료할 수 있으며, 다음 순간 다시 확인하면 다시 정상적으로 작동할 수 있습니다. 아마도 디스크가 가득 차서 일부 스레드가 차단되어 다른 스레드가 차단될 수 있으며 차단된 다른 스레드는 계속 작동할 수 있습니다. 예외 예외가 있습니다:
REPAIR TABLE 또는 OPTIMIZE TABLE 작업을 실행하는 경우 또는 LOAD DATA INFILE 또는 ALTER를 실행하는 경우 TABLE 이후 일괄적으로 인덱스를 생성하면 이러한 작업을 수행할 때 mysqld는 디스크 공간이 가득 찼음을 발견하고 관련된 테이블을 충돌로 표시하고 임시 파일을 삭제합니다(ALTER TABLE 작업 제외, MySQL 작업은 제외). 수행 중인 작업이 중단되고 임시 파일이 삭제되며 디스크 공간이 해제됩니다.)
참고: 이러한 명령을 실행하는 동안 mysqld 프로세스가 실수로 종료된 경우 생성된 임시 파일은 자동으로 삭제되지 않으며 수동으로 삭제하여 디스크 공간을 확보해야 합니다.
디스크 공간이 가득 차면 MySQL에 발생하는 현상은 다음과 같습니다. 자세한 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!