clusterdb — Grouper une base de données PostgreSQL
clusterdb
[connection-option
...] [option
...]
[
--table
| -t
table
]
... [
nom_base
| -a
| --all
]
clusterdb est un outil de tri de tables au sein d'une base de données PostgreSQL. Il trouve les tables précédemment triées et les trie à nouveau sur l'index utilisé lors du tri initial. Les tables qui n'ont jamais été triées ne sont pas affectées.
clusterdb est un enrobage de la commande SQL CLUSTER. Il n'y a pas de différence réelle entre le tri d'une base par cet outil ou par d'autres méthodes d'accès au serveur.
clusterdb accepte les arguments suivants en ligne de commande :
-a
--all
Grouper toutes les bases de données.
[-d] nom_base
[--dbname=]nom_base
Le nom de la base de données à trier quand
-a
/--all
n'est pas utilisé. Si cette
option n'est pas indiquée, le nom de la base de données est lu à partir
de la variable d'environnement PGDATABASE
. Si cette
dernière n'est pas initialisée, le nom de l'utilisateur spécifié pour la
connexion est utilisé. Le paramètre nom_base
peut être une chaîne de
connexion. Dans ce cas, les paramètres de la chaîne de connexion
surchargent toutes les options en ligne de commande conflictuelles.
-e
--echo
Les commandes engendrées par clusterdb et envoyées au serveur sont affichées.
-q
--quiet
Aucun message de progression n'est affiché.
-t table
--table=table
Seule la table table
est
triée. Plusieurs tables peuvent être traitées en même temps en
utilisant plusieurs fois l'option -t
.
-v
--verbose
Affiche des informations détaillées lors du traitement.
-V
--version
Affiche la version de clusterdb puis quitte.
-?
--help
Affiche l'aide sur les arguments en ligne de commande de clusterdb, puis quitte
clusterdb accepte aussi les arguments suivants en ligne de commande pour les paramètres de connexion :
-h hôte
--host hôte
Le nom de la machine hôte sur laquelle le serveur fonctionne. Si la valeur commence par une barre oblique (slash), elle est utilisée comme répertoire du socket de domaine Unix.
-p port
--port=port
Le port TCP ou l'extension du fichier du socket local de domaine Unix sur lequel le serveur attend les connexions.
-U nomutilisateur
--username=nomutilisateur
Le nom de l'utilisateur utilisé 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
--password
Force clusterdb à demander un mot de passe avant la connexion à une base de données.
Cette option n'est jamais obligatoire car
clusterdb demandera automatiquement un mot de
passe si le serveur exige une authentification par mot de passe.
Néanmoins, clusterdb 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.
--maintenance-db=nom_base_maintenance
Indique le nom de la base où se connecter pour récupérer la liste des
bases pour lesquelles l'action de tri sera à exécuter. Cette option est
intéressante quand l'option -a
/--all
est utilisée. Si cette option n'est pas ajoutée, la base
postgres
sera utilisée. Si cette base n'existe pas, la
base template1
sera utilisée. Le nom de la base peut
être remplacé par une chaîne de
connexion. Dans ce cas, les paramètres de la chaîne de connexion
surchargeront les options en ligne de commande conflictuelles. De plus,
les paramètres de la chaîne de connexion autres que le nom de la base
lui-même seront réutilisés lors de la connexion aux autres bases.
PGDATABASE
PGHOST
PGPORT
PGUSER
Paramètres de connexion par défaut.
PG_COLOR
Spécifie s'il faut utiliser de la couleur dans les messages de
diagnostique. Les valeurs possibles sont always
,
auto
, never
.
Cet outil, comme la plupart des autres outils PostgreSQL, utilise aussi les variables d'environnement supportées par la bibliothèque libpq (voir Section 32.15).
En cas de difficulté, voir CLUSTER et psql qui présentent les problèmes et messages d'erreur éventuels. Le serveur de bases de données doit fonctionner sur l'hôte cible. De plus, toutes les configurations de connexion par défaut et variables d'environnement utilisées par la bibliothèque client libpq s'appliquent.
Trier toutes les tables de la base de données test
:
$
clusterdb test
Trier la seule table foo
de la base de données
nommée xyzzy
:
$
clusterdb --table=foo xyzzy