vacuumlo — supprimer les Large Objects orphelins à partir d'une base de données PostgreSQL™
vacuumlo [option...] nom_base...
vacuumlo est un outil simple qui supprimera tous les « Large Objects » « orphelins » d'une base de données PostgreSQL™. Un « Large Object » orphelin est tout « Large Object » dont l'OID n'apparaît dans aucune colonne oid ou lo de la base de données.
Si vous l'utilisez, vous pourriez être intéressé par le trigger lo_manage du module lo. lo_manage est utile pour tenter d'éviter la création de « Large Object » orphelins.
Toutes les bases de données indiquées sur la ligne de commande sont traitées.
vacuumlo accepte les arguments suivants en ligne de commande :
Supprime pas plus que limite Large Objects par transactions (par défaut 1000). Comme le serveur acquiert un verrou par Large Object à supprimer, supprimer beaucoup de Large Objects en une seule transaction risque de dépasser la limite imposée par le paramètre max_locks_per_transaction. Configurez la limite à zéro si vous voulez tout supprimer en une seule transaction.
Ne supprime rien, affiche simplement ce qu'il aurait fait.
Écrit de nombreux messages de progression.
Affiche la version de vacuumlo, puis quitte.
Affiche l'aide sur les arguments en ligne de commande de vacuumlo, puis quitte.
vacuumlo accepte aussi les arguments en ligne de commande pour les paramètres de connexion :
Hôte du serveur de la base.
Port du serveur.
Nom d'utilisateur pour la connexion.
Ne demande jamais un mot de passe. Si le serveur en réclame un pour l'authentification et qu'un mot de passe n'est pas disponible d'une autre façon (par exemple avec le fichier .pgpass), la tentative de connexion échouera. Cette option peut être utile pour les scripts où aucun utilisateur n'est présent pour saisir un mot de passe.
Force vacuumlo à demander un mot de passe avant la connexion à une base de données.
Cette option n'est jamais obligatoire car vacuumlo demandera automatiquement un mot de passe si le serveur exige une authentification par mot de passe. Néanmoins, vacuumlo perdra une tentative de connexion pour trouver que le serveur veut un mot de passe. Dans certains cas, il est préférable d'ajouter l'option -W pour éviter la tentative de connexion.
vacuumlo fonctionne avec la méthode suivante. Tout d'abord, vacuumlo construit une table temporaire contenant tous les OID des Large Objects se trouvant dans la base sélectionnée. Puis, il parcourt toutes les colonnes de la base qui sont du type oid ou lo, et supprime toutes entrées correspondant à la table temporaire. (Note : seuls sont pris en compte les types de ces noms ; en particulier, les domaines utilisant ces types ne sont pas pris en compte.) Les enregistrements restants dans la table temporaires sont identifés comme les Large Objects orphelins. Ils sont supprimés.