Ir para conteúdo
Jorge Eurípedes de Oliveir

ErrCode 28 - No Space Left on Device

Recommended Posts

Abaixo listo os problemas que estamos tendo em nosso ambiente, com o Mysql 5.7 em um servidor CentOS. Boa parte dos erros estão relacionados explicitamente, com problemas de área disponível.

 - Não é possível acessar as PROCS, para editar, criar ou deletar uma proc, pois elas não são listadas.

 - Ao realizar um select na mysql.proc, há um erro que informa que não é possível listar os dados e a  tabela deve estar corrompida e precisa ser reparada.

 - Não é possível criar uma nova função. Não temos outras funções no nosso banco, para verificar podem ser listadas sem problemas. Ao tentá-lo surge a mensagem "ErrCode 28 - No space left on device".

 - Não é possível criar uma nova tabela. Ao tentá-lo surge a mensagem "ErrCode 28 - No space left on device".

 - Não é possível criar uma nova trigger, nem fazer pequenas alterações nas que já existem. Ao tentá-lo surge a mensagem "ErrCode 28 - No space left on device".

 - Não é possível criar uma nova database.  Ao tentá-lo surge a mensagem "ErrCode 28 - No space left on device".

 Investigações: Verifiquei através dos comandos abaixo, a área disponível no FileSystem. Verifiquei na variável DataDir, o diretório de dados do mysql: /var/lib/mysql. Confirmei esta informação na tela abaixo do Mysql Workbench. Um ponto de atenção na imagem abaixo,é a informação Disk Space in Data Dir: “Unable to retrieve”. Desde que o problema começou, esta informação alterna entre 0 e “Unable to retrieve”.

 image.png.02e9d8cc71e21b68351e5c524f54b02f.png

 Pelos erros apresentados acima, parece que realmente não há área disponível para o DataDir, no Servidor. Mas a investigação abaixo, mostra que isso não é verdade.

 Vamos aos comandos, utilizados para avaliar a área disponível no FileSystem /dev/root. Este FileSystem está montado no diretório raiz (/), conforme pode ser confirmado nas três imagens abaixo:

 Df -i

image.png.e05ed2e9f443f152ad4f7d413a806838.png

 

Df -h

image.png.7187893e83041c478654a8e9b835257a.png

 

CPanel:

image.png.e17dd668ec5a6f3bad70e88186bc7c66.png 

 

Ou seja, há bastante espaço livre FileSystem do DataDir, porém, temos diversos erros relacionados a falta de espaço disponível. Alguém sabe a causa deste comportamento estranho e como corrigi-lo?

 Algum de vocês já viu este BUG, onde há bastante área disponível para o MySQL mas ele não consegue enxerga-la?

 A propósito, encontrei no planet.mysql, um artigo que descreve muitos dos sintomas que o descrevi no nosso caso, porém não apresenta solução para o problema: https://planet.mysql.com/entry/?id=5989853

 Ainda na tentativa de resolver o proble;ma, realizamos alguns WorkArounds, que não corrigiram o problema. Estes workarounds foram sugeridos para a correção de um problema específico, dentre os que foram listados acima: a tabela mysql.proc estar sendo apresentada como corrompida, e precisa ser reparada. Eles não funcionaram, muito provavelmente, devido ao problema de área, e não devido ao problema relacionado à tabela mysql.proc, como pensei originalmente.

WorkAround 1: Executei o comando mysql_upgrade. O upgrade foi realizado mais o problema não foi resolvido.

WorkAround 2: Tentei reparar mysql.proc, com o comando myisamchk -r -q, mas o problema não foi resolvido. Conforme instruções da URL: https://dev.mysql.com/doc/refman/8.0/en/myisam-repair.html

 

 Desde já, obrigado!

 Att.

Jorge Eurípedes

image.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por _marlon307
      Tenho uma tabela em meu banco de dados em que as colunas usuário e e-mail são do tipo unio. Como faço para verificar as duas colunas ao mesmo tempo e retorna um valor se encontrar um registro iguai.
    • Por leonardo021970
      Tem alguma maneira de capturar todas as urls do site?
      Testei pelo google mas ele retorna apenas alguns resultados pelo jeito que testei
    • Por _marlon307
      Estou fazendo um sistema simples de cadastro de usuário e preciso que o usuário e e-mail sejam únicos. Mas já configurei a minha tabela para que esses campos seja único. O problema e fazer a checagem para que não retorne erros, e sim redirecionar para pagina de cadastro.
       
      Código:
      <?php require_once 'config/connect.php'; $usermail = mysqli_real_escape_string($link, $_POST['email']); $username = mysqli_real_escape_string($link, $_POST['usuario']); $userpsw = mysqli_real_escape_string($link, $_POST['senha']); $sql = "SELECT usuario, email FROM `tb_usuarios` WHERE `usuario` = '$username', `email` = '$usermail'"; mysqli_query($link, $sql) or die(mysqli_error($link)); $linhas = mysqli_affected_rows($link); if($linhas > 0) { header("Location:cadastro"); } else { $sql = "INSERT INTO tb_usuarios (usuario, senha, email) VALUES ('$username','$userpsw','$usermail')"; mysqli_query($link,$sql) or die(mysqli_error($link)); $linhas = mysqli_affected_rows($link); if($linhas > 0) { header("Location:login"); } } ?>  
    • Por eduardom
      Olá.
       
      Tentarei exemplificar o problema.
       
      Tenho uma tabela com duas colunas e seus respectivos conteúdos:
      VALOR (int), DATA (datetime)
      1, 2018-12-10 20:50:00
      5, 2018-12-13 12:00:00
      4, 2018-12-13 13:00:00
      3, 2018-12-13 17:00:00
      2, 2018-12-15 06:00:00
      9, 2018-12-15 08:00:00
       
      Consulto as informações, por exemplo:
       
      SELECT * FROM TABELA WHERE DATA BETWEEN '2018-12-13 00:00:00' AND '2018-12-13 23:59:59'
       
      Está me trazendo somente os valores 4 e 5, o 3 ele não trás, porém todos estão dentro do período.
      Com isso, estou perdendo registros nas consultas.
      Buscando somente o valor 3 direto, (SELECT * FROM TABELA WHERE VALOR = 3), ele trás a informação normalmente.
      Adicionei e removi os índices, tentei otimizar a tabela, porém nada resolve.
      Não sei se envolve o tamanho da tabela, pois há 2.782.219 registros na mesma.
       
      Estrutura da tabela: InnoDB
      Formatação da tabela: utf8_general_ci
       
      Se alguém tiver uma luz...
    • Por nosredna
      Olá amigos, vocês poderiam me ajudar?
       
      Eu tenho a input abaixo em PHP, quando eu acabar de digitar algo eu desejo que ela selecione o texto digitado automaticamente. É possível? Como eu faria?
      Exemplo abaixo:

       
      Agradeço a ajuda. Valeuuuu.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.