PostgreSQLLa base de données la plus sophistiquée au monde.

F.41. vacuumlo

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.

F.41.1. Usage

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 :

-v

Écrit beaucoup de messages de progression.

-n

Ne supprime rien, affiche simplement ce qu'il aurait fait.

-l limite

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.

-U nom_utilisateur

Nom d'utilisateur pour la connexion.

-w, --no-password

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.

-W

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.

-h nom_hote

Serveur de la base de données.

-p port

Port du serveur de la base de données.

F.41.2. Méthode

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.

F.41.3. Auteur

Peter Mount

http://www.retep.org.uk