web-dev-qa-db-fra.com

Vacuum Full échoue avec 'Erreur: Vérifiez l'espace disque disponible »

J'utilise Postgres 9.4. J'ai une base de données que \l+ me dit est 164 Go. Lorsque j'essaie d'exécuter l'aspirateur complet sur la base de données, je reçois cette erreur (après plusieurs heures):

ERROR:  could not extend file "base/18222/20547.2": wrote only 4096 
        of 8192 bytes at block 279347
HINT:  Check free disk space.

J'ai 320 Go de SSD sur le serveur dont 89 Go est disponible:

$ df -h
Filesystem                 Size  Used Avail Use% Mounted on
rootfs                     315G  211G   89G  71% /
udev                        10M     0   10M   0% /dev
tmpfs                      6.4G  192K  6.4G   1% /run
/dev/disk/by-label/DOROOT  315G  211G   89G  71% /
tmpfs                      5.0M     0  5.0M   0% /run/lock
tmpfs                       13G  4.0K   13G   1% /run/shm

Je ne peux pas facilement ajouter plus d'espace disque au serveur. Y at-il autre chose que je puisse faire?

J'ai trouvé cette question , pour que je puisse essayer cela si nécessaire. Mais je me demandais si je pouvais dire à l'aspirateur plein de travailler avec moins de mémoire.

4
Richard

Selon la documentation PostgreSQL:

Tables compactes activement des compacts sous vide en écrivant une nouvelle version complète du fichier de table sans espace mort. Cela minimise la taille de la table, mais peut prendre beaucoup de temps. Cela nécessite également un espace disque supplémentaire pour la nouvelle copie de la table, jusqu'à ce que l'opération se termine.

Donc, si vous avez une grande table sous vide, vous pouvez facilement manger tout votre espace disque. Peut-être que la meilleure chose à faire serait de faire une sauvegarde/restauration complète - le résultat sera le même que si vous avez fait un aspirateur complet.

3
Dragan Matic