Restaurar falha - Verifique o espaço livre em disco

Estou tentando fazer uma restauração em uma instância do Discourse recém-instalada e estou recebendo este erro no CLI:

ERROR:  could not extend file "base/16384/17011337": wrote only 4096 of 8192 bytes at block 15860
HINT:  Check free disk space.
EXCEPTION: psql failed: HINT:  Check free disk space.

O arquivo de backup que estou tentando restaurar tem 22 GB (compactado em gz) e tenho 198 GB livres no servidor, então sinto que não há como isso ser realmente um problema de espaço em disco. Alguma ideia do motivo pelo qual ele estaria reclamando aqui?

Você tem alguma ideia do tamanho sem compactação? Além disso, isso não considera os índices, então talvez valha a pena tentar em um servidor com mais espaço em disco?

Você também pode verificar suas partições de disco. É possível que você tenha 198 GB livres no servidor; mas o servidor tem mais de uma partição de disco, como tenho certeza que você sabe. Talvez responda com a saída do comando df?

Acho que o banco de dados tinha cerca de 40 GB sem compactação. Fiz um backup do fórum após a importação de outro software de fórum, então assumi que uma restauração não seria um problema. Definitivamente não estava sem espaço em disco antes. Posso adicionar um pouco mais de espaço, mas só pensei que não haveria como precisar de mais de 3 vezes o tamanho do banco de dados.

Tudo está particionado em /, então não acho que haja problemas aí:

Olá @Ghan

Você iniciou sua restauração pela linha de comando ou pela interface do “docker manager”?

Testei das duas formas, mas mais recentemente na CLI. Vou tentar aumentar o espaço em disco e depois monitorar o uso conforme a importação avança.

Adicionei 50 GB e a operação foi concluída com sucesso. Isso é bastante espaço em disco para um banco de dados.

O processo de restauração adiciona índices adicionais em comparação com uma importação?

Ele armazena o conteúdo do seu fórum. Temos instâncias do Discourse de 1 GB e de 500 GB, dependendo de quanto há de atividade :stuck_out_tongue:

Existe uma consulta para saber o tamanho de cada tabela no tópico Atualização do PostgreSQL 13. Talvez você possa tentar executá-la e postar os resultados aqui?

Sei que temos muito conteúdo. Mas parece que a necessidade de espaço aumentou drasticamente apenas ao fazer um backup e restauração. Tínhamos mais de 100 GB de espaço livre antes do backup, então assumi que não seria um problema realizar a restauração, mas a operação de restauração precisou de bastante mais espaço do que eu esperava. Parece que faltou apenas um pouco.

Estou tentando executar a consulta para mostrar os 20 maiores objetos no banco de dados, mas ela já está rodando há cerca de uma hora e não tenho ideia de quanto tempo ainda será necessário até que termine.

Verifique se os backups e restaurações de esquemas ainda estão presentes. Quando uma restauração/backup falha catastróficamente (como por falta de espaço), eles podem permanecer por mais tempo. Temos uma tarefa em segundo plano que os limpa semanalmente, mas você pode querer executá-la mais cedo.

Acesse /sidekiq/scheduler, pesquise por Jobs::DropBackupSchema e clique em “trigger”.

Se você tiver um backup completo, terá 3 cópias: o backup completo, o dump do banco de dados contido nele e o banco de dados restaurado, além de qualquer banco de dados que já existisse inicialmente.