Module DE
Dalibo SCOP
25.03
12 mars 2025
Formation | Module DE |
Titre | Outils graphiques et console |
Révision | 25.03 |
https://dali.bo/de_pdf | |
EPUB | https://dali.bo/de_epub |
HTML | https://dali.bo/de_html |
Slides | https://dali.bo/de_slides |
TP | https://dali.bo/de_tp |
TP (solutions) | https://dali.bo/de_solutions |
Cette formation est sous licence CC-BY-NC-SA. Vous êtes libre de la redistribuer et/ou modifier aux conditions suivantes :
PostgreSQL® Postgres® et le logo Slonik sont des marques déposées par PostgreSQL Community Association of Canada.
Ce document ne couvre que les versions supportées de PostgreSQL au moment de sa rédaction, soit les versions 13 à 17.
Les outils graphiques et console :
createdb
: ajouter une nouvelle base de donnéescreateuser
: ajouter un nouveau compte utilisateurdropdb
: supprimer une base de donnéesdropuser
: supprimer un compte utilisateurpg_dumpall
: sauvegarder l’instance PostgreSQLpg_dump
: sauvegarder une base de donnéespg_restore
: restaurer une base de données
PostgreSQLpg_basebackup
pg_verifybackup
et pg_combinebackup
(v17)vacuumdb
: récupérer l’espace inutilisé,
statistiquesclusterdb
: réorganiser une table en fonction d’un
indexreindexdb
: réindexerinitdb
: création d’instancepg_ctl
: lancer, arrêter, relancer, promouvoir
l’instancepg_upgrade
: migrations majeurespg_config
, pg_controldata
:
configurationpgbench
pour des testsPour se connecter à une base :
Option | Variable | Valeur par défaut |
---|---|---|
-h HÔTE |
$PGHOST | /tmp ,
/var/run/postgresql |
-p PORT |
$PGPORT | 5432 |
-U NOM |
$PGUSER | nom de l’utilisateur OS |
-d base |
$PGDATABASE | nom de l’utilisateur PG |
$PGOPTIONS | options de connexions |
psql
)
-W | --password
-w | --no-password
$PGPASSWORD
.pgpass
chmod 600 .pgpass
nom_hote:port:database:nomutilisateur:motdepasse
psql
\?
\h <COMMANDE>
\q
ou ctrl-D
quit
ou exit
(v11)\password nomutilisateur
\conninfo
SELECT current_user,session_user,system_user;
\c ma base
\c mabase utilisateur serveur 5432
Lister :
\l
, \l+
\d
, \d+
, \dt
,
\dt+
\di
, \di+
\dn
\df[+]
\du[+]
\dp
\ddp
ALTER DEFAULT PRIVILEGES
\drds
\dv
, \df
\sv
\sf
\dconfig
(v15+)\x
pour afficher un champ par ligneless
:
set PAGER='less -S'
\setenv PAGER 'pspg'
\gdesc
\gexec
\e
\ev nom_vue
\ef nom_fonction
\s
\i fichier.sql
\o resultat.out
\echo "Texte…"
\timing on
\! ls -l
(sur le client !)\cd /tmp
\getenv toto PATH
\set NOMVAR nouvelle_valeur
ON_ERROR_STOP
: on
/ off
ON_ERROR_ROLLBACK
: on
/ off
/ interactive
ROW_COUNT
: nombre de lignes renvoyées par la dernière
requête (v11)ERROR
: true
si dernière requête en erreur
(v11)SET
(au niveau du serveur) !\if
\elif
\else
\endif
~/.psqlrc
~/.psqlrc-X.Y
ou ~/.psqlrc-X
-X
.psqlrc
:psql
est en mode auto-commit par défaut
AUTOCOMMIT
BEGIN;
COMMIT;
ou ROLLBACK;
-1
(--single-transaction
)\encoding
SET client_encoding
DO $$
DECLARE r record;
BEGIN
FOR r IN (SELECT schemaname, relname
FROM pg_stat_user_tables
WHERE coalesce(last_analyze, last_autoanalyze) IS NULL
) LOOP
RAISE NOTICE 'Analyze %.%', r.schemaname, r.relname ;
EXECUTE 'ANALYZE ' || quote_ident(r.schemaname)
|| '.' || quote_ident(r.relname) ;
END LOOP;
END$$;
ON_ERROR_ROLLBACK
ON_ERROR_STOP
-XAt
-t
(--tuples-only
)-A
(--no-align
)-X
(--no-psqlrc
)-F
(--field-separator
) et
-R
(--record-separator
)-H | --html
--csv
(à partir de la version 12)\crosstabview [colV [colH [colD [colonnedetriH]]]]
\pset title 'Résultat de la requête
’\pset format html
(ou csv
…)cron
#!/bin/bash
# Paramètre : la base
t=$(mktemp) # fichier temporaire
pg_dump -Fc "$1" > $t # sauvegarde
d=$(eval date +%d%m%y-%H%M%S) # date
mv $t /backup/"${1}_${d}.dump" # déplacement
exit 0