Como o MariaDB Trata de Discos Sem Espaço
Quando o ocorre uma condição de disco sem espaço, o MariaDB faz seguinte:
- Ele verifica a cada minuto para ver se existe espaço suficiente para escrever a linha atual. Se houver espaço suficiente, ele continua como se nada tivesse aconteciso.
- A cada 6 minutos ele grava uma entrada no log de arquivo avisando sobre a condição de disco cheio.
Para aliviar o problema, você pode realizar as seguintes ações:
- Para continuar, você só tem que liberar espaço suficiente em disco para inserir todos os registros.
- Para abortar a thread, você deve enviar um
mysqladmin killpara a thread. A thread será abortada a próxima vez que ele verificar o disco (em 1 minuto). - Note que outra thread pode estar esperando pelas tabelas que provocaram a condição de disco cheio. Se você tiver diversas theads
bloqueadas
, matar a que está esperando pela condição de disco cheio irá permitir as outras threads de continuar.
A exceção ao comportamento acima é quando você usa REPAIR ou OPTIMIZE ou quando os índices são criados em um grupo antes de um LOAD DATA INFILE ou depois de uma instrução ALTER TABLE.
Todos os comandos acima podem usar arquivos temporários grandes que por si próprios poderiam causar grandes problemas para o resto do sistema. Se o MariaDB ficar sem espaço em disco enquanto faz qualquer uma das operações acima, ele removerá o arquivo temporário grande e indicara que houve falha na tabela (exceto para ALTER TABLE, no qual a tabela antiga ficará inalterada).