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.
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.