PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Eu recebo um erro não foi possível escrever o bloco .... do arquivo temporário sem espaço no dispositivo ... usando postgresql


OK. Como ainda faltam alguns fatos, uma tentativa de resposta para talvez esclarecer a questão:

Parece que você está ficando sem espaço em disco. Provavelmente porque você não tem espaço suficiente em seu disco. Verifique em um Linux/Unix df -h por exemplo.

Para mostrar a você, como isso pode acontecer:Tendo uma tabela com talvez 3 inteiros, os dados sozinhos ocuparão cerca de 12 bytes. Você precisa adicionar alguma sobrecarga a ele para gerenciamento de linhas etc. Em outra resposta Erwin mencionou sobre 23Byte e vinculou ao manual para mais informações sobre. Também pode ser necessário algum preenchimento entre as linhas etc. Então, fazendo um pouco de matemática:

Mesmo com um inteiro 3, terminaremos em cerca de 40 Byte por linha. Tendo em mente que você queria inserir 8.000.000, isso somará 320.000.000 Byte ou ~ 300 MB (apenas para nosso exemplo de 3 inteiros e muito aproximadamente).

Agora dando, você tem alguns índices nesta tabela, os índices também vão crescer durante as inserções. Além disso, outro aspecto pode ser o inchaço na tabela e os índices que podem ser limpos com um vácuo.

Então, qual é a solução:
  1. Forneça mais espaço em disco para seu banco de dados
  2. Divida suas inserções um pouco mais e certifique-se de que haja vácuo entre elas