Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| postgresql [Le 22/01/2021, 14:05] – [Formations] bcag2 | postgresql [Le 04/05/2026, 13:43] (Version actuelle) – [Guide de survie pour le client psql] liste les dates de création des bases de données bcag2 | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | + | {{tag> | |
| - | {{tag> | + | |
| ---- | ---- | ||
| Ligne 7: | Ligne 6: | ||
| ===== Introduction ===== | ===== Introduction ===== | ||
| - | PostgreSQL est un système de gestion de bases de données ([[:SGBD]]) très performant sous licence BSD dont les performances sont comparables à Oracle 9. | + | [[wpfr>PostgreSQL]] est un système de gestion de bases de données ([[:SGBD]]) très performant sous licence BSD dont les performances sont comparables à Oracle 9. |
| - | Il propose de très nombreuses fonctionnalités, | + | Il propose de très nombreuses fonctionnalités, |
| ===== Documentation ===== | ===== Documentation ===== | ||
| - | La documentation ainsi que d' | + | La documentation ainsi que d' |
| La communauté [[https:// | La communauté [[https:// | ||
| Ligne 60: | Ligne 59: | ||
| Confirmation de l' | Confirmation de l' | ||
| Lancer l' | Lancer l' | ||
| - | ==== L' | + | |
| + | ==== Désinstallation ==== | ||
| + | Si vous souhaitez désinstaller, | ||
| + | <code bash> | ||
| + | # arrêtez le service s'il est lancé | ||
| + | sudo systemctl stop postgresql | ||
| + | # lister les paquets installés liés à postgres : | ||
| + | dpkg -l | grep postgres | ||
| + | # et les supprimer : | ||
| + | sudo apt --purge remove postgresql-* | ||
| + | </ | ||
| + | |||
| + | ===== Configuration ===== | ||
| + | ==== L' | ||
| PostgreSQL est un serveur qui permet de se connecter à différentes bases de données. Par défaut, seul l' | PostgreSQL est un serveur qui permet de se connecter à différentes bases de données. Par défaut, seul l' | ||
| Ligne 82: | Ligne 94: | ||
| Vous devriez obtenir quelque chose comme : | Vous devriez obtenir quelque chose comme : | ||
| < | < | ||
| - | psql (9.5.10) | + | psql (13.1-1) |
| Type " | Type " | ||
| Ligne 100: | Ligne 112: | ||
| Cette ligne de commande sera bien sûr utilisée pour exécuter des requêtes SQL, et aussi des commandes internes à postgreSQL (elles commencent toutes par un antislash) | Cette ligne de commande sera bien sûr utilisée pour exécuter des requêtes SQL, et aussi des commandes internes à postgreSQL (elles commencent toutes par un antislash) | ||
| - | Petit guide de survie pour le client psql | + | ==== Guide de survie pour le client psql ==== |
| + | ^ \h | pour l' | ||
| + | ^ \? | pour l' | ||
| + | ^ \g | ou point-virgule en fin d' | ||
| + | ^ \q | pour quitter| | ||
| + | ^ \l | liste les bases de données existantes| | ||
| + | ^ \du | liste les rôles (utilisateur ou groupe)| | ||
| + | ^ \c nom_base nom_utilisateur | connecte à la base < | ||
| + | ^ \lt | liste les tables de la base courante| | ||
| + | ^ set search_path to mon_schema1, | ||
| + | ^ \d | liste les tables du ou des schéma·s courant·s| | ||
| + | ^ \d nom_table_ou_vue | description de la table < | ||
| + | ^ \d+ nom_table_ou_vue | description complète (avec commentaires!) de la table < | ||
| + | ^ \sv nom_vue | à la différence de \d+, n' | ||
| + | ^ \dn | liste tout le schéma de la base courante| | ||
| + | ^ \h ALTER TABLE | affiche l'aide pour la commande ALTER TABLE| | ||
| + | |||
| + | Pour lister les schémas : | ||
| + | <code sql> | ||
| + | select *from pg_namespace; | ||
| + | </ | ||
| + | |||
| + | Pour lister les tables d'un schéma : | ||
| + | <code sql> | ||
| + | select t.table_name | ||
| + | from information_schema.tables t | ||
| + | where t.table_schema = ' | ||
| + | and t.table_type = 'BASE TABLE' | ||
| + | order by t.table_name; | ||
| + | </ | ||
| + | |||
| + | Lister les vues : | ||
| + | <code sql> | ||
| + | select schemaname, viewname from pg_catalog.pg_views where schemaname NOT IN (' | ||
| + | </ | ||
| + | |||
| + | Lister les fonctions d'un schéma (**monSchema** dans l' | ||
| + | <code sql> | ||
| + | SELECT routines.routine_name, | ||
| + | FROM information_schema.routines | ||
| + | LEFT JOIN information_schema.parameters ON routines.specific_name=parameters.specific_name | ||
| + | WHERE routines.specific_schema=' | ||
| + | ORDER BY routines.routine_name, | ||
| + | </ | ||
| + | |||
| + | Lister les droits (//\du// est très limité !) : | ||
| < | < | ||
| - | \h pour l'aide-mémoire des commandes SQL | + | select grantee, table_catalog, |
| - | \? pour l'aide-mémoire des commandes psql | + | |
| - | \g ou point-virgule en fin d'instruction pour exécuter la requête | + | |
| - | \q pour quitter | + | |
| </ | </ | ||
| + | |||
| + | et si besoin : | ||
| + | <code sql> | ||
| + | REVOKE ALL ON SCHEMA mon_schema FROM mon_role; | ||
| + | </ | ||
| + | |||
| + | Lister les clés étrangères de la table //matable// dans // | ||
| + | <code sql> | ||
| + | SELECT | ||
| + | tc.table_schema, | ||
| + | tc.constraint_name, | ||
| + | tc.table_name, | ||
| + | kcu.column_name, | ||
| + | ccu.table_schema AS foreign_table_schema, | ||
| + | ccu.table_name AS foreign_table_name, | ||
| + | ccu.column_name AS foreign_column_name | ||
| + | FROM information_schema.table_constraints AS tc | ||
| + | JOIN information_schema.key_column_usage AS kcu | ||
| + | ON tc.constraint_name = kcu.constraint_name | ||
| + | AND tc.table_schema = kcu.table_schema | ||
| + | JOIN information_schema.constraint_column_usage AS ccu | ||
| + | ON ccu.constraint_name = tc.constraint_name | ||
| + | WHERE tc.constraint_type = ' | ||
| + | AND tc.table_schema=' | ||
| + | AND tc.table_name=' | ||
| + | </ | ||
| + | |||
| + | Lister les dates de création des bases de données : | ||
| + | <code sql> | ||
| + | SELECT (pg_stat_file(' | ||
| + | -- Source - https:// | ||
| + | </ | ||
| + | |||
| ====Supprimer l' | ====Supprimer l' | ||
| La suppression de l' | La suppression de l' | ||
| Aller dans le répertoire **/ | Aller dans le répertoire **/ | ||
| - | Créer un fichier text puis nommé-le **postgres** (nom de l' | + | Créer un fichier text puis nommez-le **postgres** (nom de l' |
| Puis y ajouter le contenu suivant : | Puis y ajouter le contenu suivant : | ||
| < | < | ||
| Ligne 151: | Ligne 238: | ||
| ... | ... | ||
| </ | </ | ||
| - | Puis redémarrez le serveur PostgreSQL: | + | Puis redémarrez le serveur PostgreSQL: |
| < | < | ||
| $ sudo service postgresql restart | $ sudo service postgresql restart | ||
| Ligne 167: | Ligne 254: | ||
| sudo pg_createcluster 9.3 main | sudo pg_createcluster 9.3 main | ||
| </ | </ | ||
| - | Puis redémarrez le serveur PostgreSQL: | + | Puis redémarrez le serveur PostgreSQL: |
| < | < | ||
| $ sudo service postgresql restart | $ sudo service postgresql restart | ||
| Ligne 173: | Ligne 260: | ||
| Vous pouvez maintenant reprendre le tutoriel au début de la section " | Vous pouvez maintenant reprendre le tutoriel au début de la section " | ||
| ==== encodage UTF-8 ==== | ==== encodage UTF-8 ==== | ||
| - | <note tips> Ce paragraphe est optionnel </ | + | Postgresql se base sur la configuration du système d'exploitation… |
| - | FIXME En version PostgreSQL 9.1.5, l' | + | |
| - | + | ||
| - | L'installateur initialise le cluster postgresql avec le support de jeux de caractères SQL_ASCII | + | |
| - | + | ||
| - | Pour ceux qui souhaitent privilégier l' | + | |
| - | + | ||
| - | === jeux de caractères | + | |
| - | * Connexion en tant qu'utilisateur postgres | + | |
| - | + | ||
| - | sudo -i -u postgres | + | |
| - | + | ||
| - | psql -l | + | |
| - | List of databases | + | |
| - | Name | Owner | Encoding | + | |
| - | ----------+----------+-----------+---------+-------+----------------------- | + | |
| - | postgres | + | |
| - | template0 | postgres | SQL_ASCII | C | C | =c/ | + | |
| - | | | | + | |
| - | template1 | postgres | SQL_ASCII | C | C | =c/ | + | |
| - | | | | + | |
| - | + | ||
| - | === supprimer le cluster et le recréer === | + | |
| - | + | ||
| - | * Identifier la version et le nom de votre cluster | + | |
| - | + | ||
| - | pg_lsclusters | + | |
| - | Version Cluster | + | |
| - | 9.1 | + | |
| - | + | ||
| - | * Supprimer le cluster | + | |
| - | + | ||
| - | pg_dropcluster 9.1 main --stop | + | |
| - | + | ||
| - | * Créer le cluster | + | |
| - | + | ||
| - | pg_createcluster --locale fr_FR.UTF-8 9.1 main | + | |
| - | + | ||
| - | * Démarrage | + | |
| - | pg_ctlcluster 9.1 main start | + | |
| - | + | ||
| - | Les bases systèmes seront alors conformes aux locales système | + | |
| - | + | ||
| - | psql -l | + | |
| - | List of databases | + | |
| - | Name | Owner | Encoding | | + | |
| - | ----------+----------+----------+-------------+-------------+----------------------- | + | |
| - | postgres | + | |
| - | template0 | postgres | UTF8 | fr_FR.UTF-8 | fr_FR.UTF-8 | =c/ | + | |
| - | | | | | + | |
| - | template1 | postgres | UTF8 | fr_FR.UTF-8 | fr_FR.UTF-8 | =c/ | + | |
| - | | | | | + | |
| - | + | ||
| ==== Créer un utilisateur PostgreSQL ==== | ==== Créer un utilisateur PostgreSQL ==== | ||
| Ligne 236: | Ligne 270: | ||
| Par facilité, nous allons assimiler les utilisateurs du système à ceux qui se connecteront avec psql, mais ce n'est nullement obligatoire. Par la suite, nous supposerons que votre login système est '' | Par facilité, nous allons assimiler les utilisateurs du système à ceux qui se connecteront avec psql, mais ce n'est nullement obligatoire. Par la suite, nous supposerons que votre login système est '' | ||
| - | Commencez par créer un nouvel utilisateur, | + | Commencez par créer un nouvel utilisateur, |
| < | < | ||
| - | postgres=# CREATE | + | postgres=# CREATE |
| </ | </ | ||
| N' | N' | ||
| Ligne 245: | Ligne 279: | ||
| Donnez-lui la possibilité de créer de nouvelles bases de données : | Donnez-lui la possibilité de créer de nouvelles bases de données : | ||
| < | < | ||
| - | postgres=# ALTER ROLE < | + | postgres=# ALTER ROLE < |
| </ | </ | ||
| Ligne 260: | Ligne 294: | ||
| Attribuer un mot de passe à l' | Attribuer un mot de passe à l' | ||
| < | < | ||
| - | postgres=# ALTER USER < | + | postgres=# ALTER ROLE < |
| </ | </ | ||
| Ligne 269: | Ligne 303: | ||
| </ | </ | ||
| - | La ligne de commande est devenue : | + | La ligne de commande est devenue : |
| < | < | ||
| nom_base_de_donnee=> | nom_base_de_donnee=> | ||
| Ligne 276: | Ligne 310: | ||
| Notez la transformation du # en > : vous n' | Notez la transformation du # en > : vous n' | ||
| + | <note tip>Il peut être plus simple pour commencer d' | ||
| ==== Pour aller plus loin ==== | ==== Pour aller plus loin ==== | ||
| Ligne 288: | Ligne 323: | ||
| Il faut d' | Il faut d' | ||
| - | < | + | < |
| sudo nano / | sudo nano / | ||
| </ | </ | ||
| Ligne 295: | Ligne 330: | ||
| Les utilisateurs " | Les utilisateurs " | ||
| - | Voir la [[http:// | + | Voir la [[https:// |
| <note important> | <note important> | ||
| - | Modifier le fichier en remplaçant **ident sameuser** par **md5** afin d' | + | Modifier le fichier en remplaçant **ident sameuser** par **md5** afin d' |
| - | < | + | < |
| ... | ... | ||
| # Database administrative login by Unix domain socket | # Database administrative login by Unix domain socket | ||
| Ligne 318: | Ligne 353: | ||
| La modification des paramètres de connexion au serveur nécessite son redémarrage pour que ces derniers soient pris en compte. | La modification des paramètres de connexion au serveur nécessite son redémarrage pour que ces derniers soient pris en compte. | ||
| - | < | + | < |
| $ sudo service postgresql restart | $ sudo service postgresql restart | ||
| </ | </ | ||
| ou | ou | ||
| - | < | + | < |
| $ sudo pg_ctlcluster 9.5 main restart | $ sudo pg_ctlcluster 9.5 main restart | ||
| </ | </ | ||
| Ligne 328: | Ligne 363: | ||
| On peut ensuite créer notre utilisateur : | On peut ensuite créer notre utilisateur : | ||
| - | < | + | < |
| $ sudo -i -u postgres | $ sudo -i -u postgres | ||
| $ createuser -P --interactive < | $ createuser -P --interactive < | ||
| Ligne 339: | Ligne 374: | ||
| Puis, on lui crée une base de données dédiée : | Puis, on lui crée une base de données dédiée : | ||
| - | < | + | < |
| $ createdb -O < | $ createdb -O < | ||
| </ | </ | ||
| Ligne 348: | Ligne 383: | ||
| L' | L' | ||
| </ | </ | ||
| - | |||
| Ensuite, on peut se connecter via : | Ensuite, on peut se connecter via : | ||
| - | < | + | < |
| $ psql -U < | $ psql -U < | ||
| - | Mot de passe pour l'utilisateur < | + | Mot de passe pour l’utilisateur < |
| </ | </ | ||
| - | ou, si le nom de la base de l' | + | ou, si le nom de la base de l' |
| - | < | + | < |
| $ psql -U < | $ psql -U < | ||
| - | Mot de passe pour l'utilisateur < | + | Mot de passe pour l’utilisateur < |
| </ | </ | ||
| Ligne 367: | Ligne 401: | ||
| == Les variables d' | == Les variables d' | ||
| Les [[http:// | Les [[http:// | ||
| - | Les plus intéressantes à utiliser son PGUSER et PGHOST (notamment pour cette dernière si vous administrez une base qui n'est pas sur un serveur // | + | Les plus intéressantes à utiliser son //PGUSER// et //PGHOST// (notamment pour cette dernière si vous administrez une base qui n'est pas sur un serveur // |
| Pour que ces variables soient systématiquement disponibles dans votre shell de commandes, il faut les ajouter dans le fichier ~/.profile correspondant à votre utilisateur. | Pour que ces variables soient systématiquement disponibles dans votre shell de commandes, il faut les ajouter dans le fichier ~/.profile correspondant à votre utilisateur. | ||
| - | Les lignes à ajouter sont (à vous de défionir | + | Les lignes à ajouter sont (à vous de définir |
| + | <code bash> | ||
| export PGHOST=< | export PGHOST=< | ||
| export PGUSER=< | export PGUSER=< | ||
| ... | ... | ||
| - | + | </ | |
| - | La variable PGUSER étant ainsi définie, votre connexion peut alors se résumer à | + | |
| + | La variable | ||
| + | <code bash> | ||
| psql < | psql < | ||
| + | </ | ||
| et si vous définissez PGDATABASE, votre connexion express sera simplement | et si vous définissez PGDATABASE, votre connexion express sera simplement | ||
| + | <code bash> | ||
| psql | psql | ||
| + | </ | ||
| < | < | ||
| il faut toujours saisir le mot de passe correspondant à l' | il faut toujours saisir le mot de passe correspondant à l' | ||
| </ | </ | ||
| - | |||
| == Le fichier .pgpass == | == Le fichier .pgpass == | ||
| Ligne 390: | Ligne 429: | ||
| Ce fichier n' | Ce fichier n' | ||
| nano ~/.pgpass | nano ~/.pgpass | ||
| - | Son contenu est simplement défini par les chaînes de connexions à utiliser. | + | Son contenu est simplement défini par les chaînes de connexions à utiliser. |
| localhost: | localhost: | ||
| Ceci indiquera à votre client psql que l' | Ceci indiquera à votre client psql que l' | ||
| Ligne 397: | Ligne 436: | ||
| Et la sécurité ? | Et la sécurité ? | ||
| si vous tentez une connexion | si vous tentez une connexion | ||
| + | <code bash> | ||
| psql < | psql < | ||
| + | |||
| WARNING: password file "/ | WARNING: password file "/ | ||
| + | </ | ||
| La limitation des droits d' | La limitation des droits d' | ||
| + | <code bash> | ||
| chmod 0600 ~/.pgpass. | chmod 0600 ~/.pgpass. | ||
| + | </ | ||
| === Personnalisation === | === Personnalisation === | ||
| - | Le tuning d'un serveur postgreSQL se fait grâce au fichier **postgresql.conf** généralement positionné dans **/ | + | Le tuning d'un serveur postgreSQL se fait grâce au fichier **postgresql.conf** généralement positionné dans **/ |
| Plusieurs paramètres sont faciles à modifier et peuvent apporter un gain de performance important: | Plusieurs paramètres sont faciles à modifier et peuvent apporter un gain de performance important: | ||
| Ligne 415: | Ligne 458: | ||
| Ces quelques paramètres doivent suffire dans la majorité des cas. Si vous souhaitez aller plus loin dans le tuning de PostgreSQL, je vous conseille d' | Ces quelques paramètres doivent suffire dans la majorité des cas. Si vous souhaitez aller plus loin dans le tuning de PostgreSQL, je vous conseille d' | ||
| - | |||
| - | |||
| === Rôles et droits === | === Rôles et droits === | ||
| Ligne 423: | Ligne 464: | ||
| Les droits affectés à ces rôles permet une gestion fine des autorisations d' | Les droits affectés à ces rôles permet une gestion fine des autorisations d' | ||
| - | La [[http:// | + | La [[https:// |
| === Gestion des connexions === | === Gestion des connexions === | ||
| Ligne 431: | Ligne 472: | ||
| La documentation complète est disponible à ces adresses | La documentation complète est disponible à ces adresses | ||
| - | //[[http:// | + | //[[https:// |
| - | //[[http:// | + | //[[https:// |
| Ligne 439: | Ligne 480: | ||
| Différentes contributions sont disponibles (cf la [[http:// | Différentes contributions sont disponibles (cf la [[http:// | ||
| - | < | + | < |
| sudo apt-get install postgresql-contrib | sudo apt-get install postgresql-contrib | ||
| Les paquets supplémentaires suivants seront installés : | Les paquets supplémentaires suivants seront installés : | ||
| Ligne 447: | Ligne 488: | ||
| Les scripts permettant l' | Les scripts permettant l' | ||
| L' | L' | ||
| - | < | + | < |
| $ psql -U < | $ psql -U < | ||
| </ | </ | ||
| Ligne 454: | Ligne 495: | ||
| Pour ne permettre seulement une consultation des données par un utilisateur sans droit de modification, | Pour ne permettre seulement une consultation des données par un utilisateur sans droit de modification, | ||
| - | < | + | < |
| ALTER USER < | ALTER USER < | ||
| </ | </ | ||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| ===== Installation de la cartouche spatiale PostGIS ===== | ===== Installation de la cartouche spatiale PostGIS ===== | ||
| - | ====Ce qu'est postgis==== | + | Reportez-vous à la page [[: |
| - | [[http:// | + | |
| - | * la possibilité de définir le type de champ // | + | |
| - | * l' | + | |
| - | * la base de référence des projections géographiques // | + | |
| - | * la base de gestion des attributs géographiques des tables // | + | |
| - | ====Installation==== | + | |
| - | Installer le paquet correspondant à votre version de postgres, exemples: | + | |
| - | * [[apt:// | + | |
| - | * [[apt:// | + | |
| - | < | + | ===== Clients graphiques ===== |
| - | Les paquets supplémentaires suivants seront installés : | + | |
| - | libgeos-3.2.2 libgeos-c1 libproj0 postgis proj-data | + | |
| - | </ | + | |
| - | Les scripts nécessaires à la capacitation géographique de postgresql sont installé dans le dossier\\ | + | ==== DBeaver |
| - | // / | + | Si vous utilisez |
| - | // / | + | |
| - | + | ||
| - | ====Donner à une base la capacité géographique==== | + | |
| - | + | ||
| - | + | ||
| - | < | + | |
| - | Les scripts donnés ci-après prennent pour hypothèse qu'un nouvel utilisateur a été créé avec la méthode [[postgresql# | + | |
| - | </ | + | |
| - | + | ||
| - | Tout d'abord, créer la base de données | + | |
| - | createdb -U < | + | |
| - | Puis on utilser le rôle postgres (super user postgresql) | + | |
| - | $ sudo -i -u postgres | + | |
| - | pour exécuter dans cet ordre les scripts suivants : | + | |
| - | + | ||
| - | psql -f / | + | |
| - | psql -f / | + | |
| - | + | ||
| - | puis on quitte le shell postgres | + | |
| - | exit | + | |
| - | + | ||
| - | <note tip> | + | |
| - | Si vous êtes amenés à créer plusieurs bases géographiques, il peut être intéressant | + | |
| - | Il est ensuite très facile de créer une base géographique en appelant ce modèle lors de la création d'un base | + | |
| - | createdb -U < | + | |
| - | </ | + | |
| - | + | ||
| - | Pour faire des imports et des exports (car la fonction sur phppgadmin est bancale) | + | |
| - | + | ||
| - | $ sudo -i -u postgres | + | |
| - | + | ||
| - | export : | + | |
| - | pg_dump < | + | |
| - | + | ||
| - | import: | + | |
| - | cat nom_de_la_base.pgdump | psql -d nom_de_la_base | + | |
| - | + | ||
| - | ===== Clients graphiques ===== | + | |
| Ligne 539: | Ligne 522: | ||
| PgAdmin III est un outil graphique d' | PgAdmin III est un outil graphique d' | ||
| - | PgAdmin III a été conçu pour répondre aux besoins de tous les utilisateurs, | + | PgAdmin III a été conçu pour répondre aux besoins de tous les utilisateurs, |
| == Installation du client pgadmin3 == | == Installation du client pgadmin3 == | ||
| Ligne 548: | Ligne 531: | ||
| Cela va également installer les paquets suivants : | Cela va également installer les paquets suivants : | ||
| * libpq4 | * libpq4 | ||
| - | * libwxbase2.6-0 | + | * libwxbase2.6-0 |
| * libwxgtk2.6-0 | * libwxgtk2.6-0 | ||
| * pgadmin3-data | * pgadmin3-data | ||
| Ligne 558: | Ligne 541: | ||
| == Lancement du client pgadmin3 == | == Lancement du client pgadmin3 == | ||
| - | Sous Ubuntu, pour lancer PgAdmin III, aller dans le menu **Applications** => **programmation** => **pgAdmin III** | + | Sous Ubuntu, pour lancer PgAdmin III, aller dans le menu **Applications** => **programmation** => **pgAdmin III** |
| < | < | ||
| Ligne 629: | Ligne 612: | ||
| ====Pool de connexion : PgBouncer==== | ====Pool de connexion : PgBouncer==== | ||
| [[pgbouncer|PgBouncer]] | [[pgbouncer|PgBouncer]] | ||
| - | ===== Récupération du contenu d'une base de données | + | ===== Sauvegarde et Restauration ===== |
| + | Il est conseillé de lire le support de [[# | ||
| + | On pourra lire aussi [[https:// | ||
| + | |||
| + | ==== PgDump ==== | ||
| + | Cette commande dispose de nombreuses options, cf. [[https:// | ||
| + | Quelques exemples classiques : | ||
| + | <code bash> | ||
| + | # une sauvegarde simple va se faire par : | ||
| + | pg_dump -f dump-de-ma-base.sql ma_base | ||
| + | # si on ne veut que le schéma (le schéma par défaut est le schéma nommé public) : | ||
| + | pg_dump ma_base --schema-only --schema mon_schema -f ~/dump-de-mon-schema.sql | ||
| + | # et de façon similaire, que les données : | ||
| + | pg_dump ma_base --data-only --schema mon_schema -f ~/ | ||
| + | # et pour ne sauver qu'une table : | ||
| + | pg_dump ma_base --table ma_table --schema mon_schema -f ~/ | ||
| + | </ | ||
| + | ==== pgBackRest ==== | ||
| + | Le site officiel [[https:// | ||
| + | |||
| + | === Installation | ||
| + | Simplement | ||
| + | <code bash> | ||
| + | sudo apt install pgbackrest | ||
| + | </ | ||
| + | ==== Récupération du contenu d'une base de données après un crash serveur ==== | ||
| Supposons que vous ayez installé sous [[ubuntu_server|ubuntu server]] une application d' | Supposons que vous ayez installé sous [[ubuntu_server|ubuntu server]] une application d' | ||
| * Monter votre ancienne installation depuis une autre installation ou via un live cd | * Monter votre ancienne installation depuis une autre installation ou via un live cd | ||
| Ligne 682: | Ligne 690: | ||
| </ | </ | ||
| - | <note tip> | + | <note tip> |
| ===== Formations ===== | ===== Formations ===== | ||
| Ligne 690: | Ligne 698: | ||
| exemple: lien directe au support PDF de la formation //DBA1 - PostgreSQL Administration// | exemple: lien directe au support PDF de la formation //DBA1 - PostgreSQL Administration// | ||
| + | ===== Voir aussi ===== | ||
| + | * [[https:// | ||
| + | * (en) [[https:// | ||
| ---- | ---- | ||
| - | // | + | // |
