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 kill
para 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).