Documentation PostgreSQL 9.0.23 > Annexes > Modules supplémentaires fournis > vacuumlo | |
uuid-ossp | xml2 |
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 contrib contrib/lo (voir Section F.17, « lo »). lo_manage est utile pour tenter d'éviter la création de « Large Object » orphelins.
vacuumlo [options] base [base2 ... basen]
Toutes les bases de données indiquées sur la ligne de commande sont traitées. Les options disponibles sont :
Écrit beaucoup de messages de progression.
Ne supprime rien, affiche simplement ce qu'il aurait fait.
Ne supprime pas plus que ce nombre (définie par le paramètre limite) de Large Objects par transaction (par défaut 1000). Comme le serveur récupère un verrou par Large Object supprimé, supprimer un grand nombre de Large Objects en une transaction risque de prendre trop de verrous par rapport à la configuration de max_locks_per_transaction. Configurez la limite à 0 si vous voulez tous les supprimer en une transaction.
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.
Serveur de la base de données.
Port du serveur de la base de données.
Tout d'abord, vacuumlo construit une table temporaire contenant tous les OID des « Large Objects » dans la base de donnée sélectionnée.
Ensuite, il parcourt toutes les colonnes de la base qui sont de type oid ou lo, et supprime les entrées correspondantes de la table temporaire. (Notez que seuls ces types sont pris en considération ; les domaines définies à partir de ces types ne le sont pas.)
Les entrées restantes de la table temporaire identifient les « Large Objects » orphelins. Ils sont supprimés.