Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
postgresql [Le 19/10/2023, 09:56] bcag2 correction typo + ajout bash (et sql) aux balise <code> |
postgresql [Le 10/12/2024, 14:20] (Version actuelle) bcag2 [encodage UTF-8] par défaut car par défaut sous Ubuntu (+ v9 n'est plus supporté!) |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | {{tag>sgbd serveur réseau BROUILLON}} | + | {{tag>sgbd serveur réseau programmation}} |
---- | ---- | ||
Ligne 121: | Ligne 121: | ||
^ \c nom_base nom_utilisateur | connecte à la base <nom_base> avec le rôle <nom_utilisateur>| | ^ \c nom_base nom_utilisateur | connecte à la base <nom_base> avec le rôle <nom_utilisateur>| | ||
^ \lt | liste les tables de la base courante| | ^ \lt | liste les tables de la base courante| | ||
- | ^ set search_path to <mon_schéma>; | intéressant à faire avant la commande ci-dessous !-)| | + | ^ set search_path to mon_schema1, mon_schema2; | intéressant à faire avant la commande ci-dessous !-)| |
- | ^ \d | liste les tables du schéma courant| | + | ^ \d | liste les tables du ou des schéma·s courant·s| |
^ \d nom_table_ou_vue | description de la table <nom_table> (colonne, type…) ou de la vue nom_vue| | ^ \d nom_table_ou_vue | description de la table <nom_table> (colonne, type…) ou de la vue nom_vue| | ||
^ \d+ nom_table_ou_vue | description complète (avec commentaires!) de la table <nom_table> (colonne, type…) ou de la vue nom_vue avec son code source| | ^ \d+ nom_table_ou_vue | description complète (avec commentaires!) de la table <nom_table> (colonne, type…) ou de la vue nom_vue avec son code source| | ||
Ligne 128: | Ligne 128: | ||
^ \dn | liste tout le schéma de la base courante| | ^ \dn | liste tout le schéma de la base courante| | ||
^ \h ALTER TABLE | affiche l'aide pour la commande ALTER TABLE| | ^ \h ALTER TABLE | affiche l'aide pour la commande ALTER TABLE| | ||
+ | |||
+ | Pour lister les schémas : | ||
+ | <code sql> | ||
+ | select *from pg_namespace; | ||
+ | </code> | ||
Pour lister les tables d'un schéma : | Pour lister les tables d'un schéma : | ||
Ligne 227: | Ligne 232: | ||
Vous pouvez maintenant reprendre le tutoriel au début de la section "L'utilisateur postgres". | Vous pouvez maintenant reprendre le tutoriel au début de la section "L'utilisateur postgres". | ||
==== encodage UTF-8 ==== | ==== encodage UTF-8 ==== | ||
- | <note tips> Ce paragraphe est optionnel </note> | + | Postgresql se base sur la configuration du système d'exploitation… qui est en UTF-8 par défaut sous les versions francophone d'Ubuntu. |
- | FIXME En version PostgreSQL 9.1.5, l'installateur semble avoir directement créé avec le bon codage. Cette opération semble donc être devenue inutile. | + | |
- | + | ||
- | L'installateur initialise le cluster postgresql avec le support de jeux de caractères SQL_ASCII | + | |
- | + | ||
- | Pour ceux qui souhaitent privilégier l'encodage **UTF-8** / locale **FR-fr**, il faut supprimer le cluster et le recréer. | + | |
- | + | ||
- | === jeux de caractères par défaut === | + | |
- | * Connexion en tant qu'utilisateur postgres | + | |
- | + | ||
- | sudo -i -u postgres | + | |
- | + | ||
- | psql -l | + | |
- | List of databases | + | |
- | Name | Owner | Encoding | Collate | Ctype | Access privileges | + | |
- | ----------+----------+-----------+---------+-------+----------------------- | + | |
- | postgres | postgres | SQL_ASCII | C | C | | + | |
- | template0 | postgres | SQL_ASCII | C | C | =c/postgres + | + | |
- | | | | | | postgres=CTc/postgres | + | |
- | template1 | postgres | SQL_ASCII | C | C | =c/postgres + | + | |
- | | | | | | postgres=CTc/postgres | + | |
- | + | ||
- | === supprimer le cluster et le recréer === | + | |
- | + | ||
- | * Identifier la version et le nom de votre cluster | + | |
- | <code> | + | |
- | $ pg_lsclusters | + | |
- | Version Cluster Port Status Owner Data directory Log file | + | |
- | 9.1 main 5432 online postgres /var/lib/postgresql/9.1/main /var/log/postgresql/postgresql-9.1-main.log | + | |
- | </code> | + | |
- | * 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 | + | |
- | <code> | + | |
- | $ psql -l | + | |
- | List of databases | + | |
- | Name | Owner | Encoding | Collate | Ctype | Access privileges | + | |
- | ----------+----------+----------+-------------+-------------+----------------------- | + | |
- | postgres | postgres | UTF8 | fr_FR.UTF-8 | fr_FR.UTF-8 | | + | |
- | template0 | postgres | UTF8 | fr_FR.UTF-8 | fr_FR.UTF-8 | =c/postgres + | + | |
- | | | | | | postgres=CTc/postgres | + | |
- | template1 | postgres | UTF8 | fr_FR.UTF-8 | fr_FR.UTF-8 | =c/postgres + | + | |
- | | | | | | postgres=CTc/postgres | + | |
- | </code> | + | |
==== Créer un utilisateur PostgreSQL ==== | ==== Créer un utilisateur PostgreSQL ==== | ||
Ligne 633: | Ligne 584: | ||
====Pool de connexion : PgBouncer==== | ====Pool de connexion : PgBouncer==== | ||
[[pgbouncer|PgBouncer]] | [[pgbouncer|PgBouncer]] | ||
- | ===== Récupération du contenu d'une base de données après un crash serveur ===== | + | ===== Sauvegarde et Restauration ===== |
+ | Il est conseillé de lire le support de [[#formations|formation]] //PostgreSQL Administration (DBA1)// qui contient les chapitres //Politique de sauvegarde// et //Sauvegarde et restauration//\\ | ||
+ | On pourra lire aussi [[https://cyber.gouv.fr/sites/default/files/document/anssi-fondamentaux-sauvegarde_systemes_dinformation_v1-0.pdf|SAUVEGARDE DES SYSTÈMES D’INFORMATION − LES FONDAMENTAUX]] de l’ANSII | ||
+ | |||
+ | ==== PgDump ==== | ||
+ | |||
+ | ==== pgBackRest ==== | ||
+ | Le site officiel [[https://pgbackrest.org|pgBackRest]] et [[https://ng-pe.github.io/pgbackrest_doc_fr/user-guide.html|le guide utilisateur traduit]] | ||
+ | |||
+ | === Installation === | ||
+ | Simplement | ||
+ | <code bash> | ||
+ | sudo apt install pgbackrest | ||
+ | </code> | ||
+ | ==== 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'entreprise s'appuyant sur une base de données postgresql (cette procédure a été testée avec [[redmine|redmine]]), et qu'un crash se produise qui rende impossible de redémarrer le serveur. Se pose alors le problème de la récupération des données. La procédure est relativement simple. Il va vous falloir: | Supposons que vous ayez installé sous [[ubuntu_server|ubuntu server]] une application d'entreprise s'appuyant sur une base de données postgresql (cette procédure a été testée avec [[redmine|redmine]]), et qu'un crash se produise qui rende impossible de redémarrer le serveur. Se pose alors le problème de la récupération des données. La procédure est relativement simple. Il va vous falloir: | ||
* 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 696: | Ligne 661: | ||
===== Voir aussi ===== | ===== Voir aussi ===== | ||
* [[https://www.pgmodeler.io|PgModeler]] qui permet de définir le modèle et générer les scripts de mise à jour de la base postgresql, installable depuis les dépôts <code bash>sudo apt install pgmodeler</code> | * [[https://www.pgmodeler.io|PgModeler]] qui permet de définir le modèle et générer les scripts de mise à jour de la base postgresql, installable depuis les dépôts <code bash>sudo apt install pgmodeler</code> | ||
+ | * (en) [[https://labs.dalibo.com/temboard|temboard]] outils de supervision et configuration d'instances Postgresql | ||
---- | ---- | ||
//Contributeurs : [[utilisateurs:yannick_LM|Yannick]], [[utilisateurs:sparky|Sparky]], [[utilisateurs:elemmire|Elemmire]], [[utilisateurs:aldian|Aldian]], [[utilisateurs:fred|Fred]], [[utilisateurs:xavierjm|XAVIER_jean-marie]], [[utilisateurs:bcag2|bcag2]] // | //Contributeurs : [[utilisateurs:yannick_LM|Yannick]], [[utilisateurs:sparky|Sparky]], [[utilisateurs:elemmire|Elemmire]], [[utilisateurs:aldian|Aldian]], [[utilisateurs:fred|Fred]], [[utilisateurs:xavierjm|XAVIER_jean-marie]], [[utilisateurs:bcag2|bcag2]] // |