24.2. Échec sur disque plein

La tâche la plus important de l'administrateur de base de données dans la surveillance de l'utilisation de disque est de s'assurer que l'espace disque ne viendra pas à manquer. Un disque plein a de fortes chances de mener à des index de base de données corrompus. Mais cet état du disque ne comporte pas que des risques au niveau base de données. Si les fichiers de WAL se trouvent sur le même disque que la base (comme cela doit être le cas avec une configuration par défaut) et que le disque est complètement rempli lors de l'initialisation de la base de données, les fichiers de WAL risquent d'être soit incomplets, soit corrompus. Ce cas d'échec est détecté par le système de base de données qui refusera alors de démarrer.

Si vous êtes dans l'incapacité d'ajouter de l'espace disque en supprimant des données annexes à la base de données, vous pouvez déplacer des fichiers de la base de données sur d'autres systèmes de fichiers et créer un lien symbolique à partir de l'emplacement d'origine. Notez cependant que l'utilitaire pg_dump ne pourra sauvegarder l'agencement entre les liens symboliques et les fichiers réels que vous aurez choisi ; ainsi une restauration ne pourra rétablir cet agencement, se contentant de remettre tous les fichiers dans le même répertoire. Afin d'éviter de se retrouver dans la situation de saturation d'espace disque, vous pouvez placer les fichiers WAL ou les base de données individuelles à différents endroits lors de leur création. Pour cela, lisez la documentation de la commande initdb ainsi que la Section 18.5 pour plus d'informations à ce sujet.

Astuce : Certains systèmes de fichiers réagissent mal lorsqu'ils sont presque pleins. À toutes fins utiles, n'attendez pas que le disque soit plein pour agir.