Restaurar fallido - Comprobar espacio libre en disco

Estoy intentando realizar una restauración en una instancia de Discourse recién instalada y estoy obteniendo este error en la 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.

El archivo de respaldo que estoy intentando restaurar tiene 22 GB (comprimido en gz) y tengo 198 GB libres en el servidor, así que siento que no puede ser realmente un problema de espacio en disco. ¿Alguna idea de por qué estaría quejándose aquí?

¿Tienes alguna idea del tamaño sin comprimir? Además, eso no tiene en cuenta los índices, así que quizás deberías probarlo en un servidor con más espacio en disco.

También puedes verificar tus particiones de disco. Es posible que tengas 198 GB libres en el servidor, pero el servidor tiene más de una partición de disco, como estoy seguro de que sabes. ¿Quizás podrías responder con la salida del comando df?

Creo que la base de datos tenía alrededor de 40 GB sin comprimir. Hice una copia de seguridad del foro después de importar desde otro software de foros, así que asumí que una restauración no sería un problema. Definitivamente no me faltaba espacio en el disco antes. Puedo agregar un poco más de espacio, pero pensé que no había manera de que necesitara más de 3 veces el tamaño de la base de datos.

Todo está particionado en /, así que no creo que haya problemas allí:

Hola @Ghan,

¿Iniciaste tu restauración desde la línea de comandos o desde la interfaz de usuario de “docker manager”?

Lo intenté de ambas formas, pero más recientemente en la CLI. Intentaré aumentar el espacio en disco y luego observaré el uso a medida que avance la importación.

He añadido 50 GB y se completó correctamente. Eso es mucho espacio en disco para una base de datos.

¿El proceso de restauración añade índices adicionales en comparación con una importación?

Almacena el contenido de tu foro. Tenemos instancias de Discourse de 1 GB y de 500 GB, depende de cuánta actividad haya :stuck_out_tongue:

Hay una consulta para conocer el tamaño de cada tabla en el tema Actualización de PostgreSQL 13, ¿quizás podrías ejecutarla y publicar los resultados aquí?

Sé que tenemos mucho contenido. Pero parece que el requisito de espacio se disparó simplemente al realizar una copia de seguridad y una restauración. Teníamos más de 100 GB de espacio libre antes de la copia de seguridad, así que asumí que no sería un problema hacer una restauración, pero la operación de restauración necesitó bastante más espacio del que esperaba. Parece que nos faltó solo un poco.

Estoy intentando ejecutar la consulta para mostrar los 20 objetos más grandes en la base de datos, pero lleva ejecutándose alrededor de una hora y no tengo idea de cuánto tiempo más necesitará para completarse.

Verifica si las copias de seguridad y restauraciones de esquemas aún están presentes. Cuando una restauración o copia de seguridad falla catastróficamente (como por falta de espacio), pueden quedar huérfanas. Tenemos un trabajo en segundo plano que las limpia semanalmente, pero quizás quieras ejecutarlo antes.

Visita /sidekiq/scheduler y busca Jobs::DropBackupSchema, luego haz clic en “trigger”.

Si tienes una copia de seguridad completa, tendrás 3 copias: la copia de seguridad completa, el volcado de la base de datos que contiene y la base de datos restaurada, además de la base de datos que ya existía inicialmente.