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 | ||
60-database:postgresql [2019/03/21 00:16] – [Analyse des requêtes] Roge | 60-database:postgresql [2020/10/09 18:36] (Version actuelle) – [Changement de version de l'instance cible] Roge | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | |||
+ | |||
====== PostgreSQL ====== | ====== PostgreSQL ====== | ||
+ | |||
+ | {{tag> | ||
https:// | https:// | ||
Ligne 73: | Ligne 77: | ||
</ | </ | ||
- | ===== Gestion du cluster ===== | ||
+ | ===== Backup - Restore ===== | ||
- | <code bash> | ||
- | # Afficher le cluster | ||
- | $ pg_lsclusters | ||
- | Version Cluster | ||
- | 9.1 | ||
- | # Supprimer le cluster | ||
- | $ pg_dropcluster 9.1 main --stop | ||
- | # Créer le cluster | + | ==== Changement de version de l' |
- | $ pg_createcluster --locale fr_FR.UTF-8 9.1 main | + | |
- | # Démarrage | + | <code bash> |
- | $ pg_ctlcluster 9.1 main start | + | # backup database with no format specification (default is SQL) |
+ | pg_dump -v -O -U < | ||
+ | # Restore with psql | ||
+ | psql -vc -h < | ||
</ | </ | ||
- | + | ==== Meme version de l' | |
- | ===== Backup - Restore | + | |
- | + | ||
<code bash> | <code bash> | ||
- | |||
# backup database | # backup database | ||
- | pg_dump -v -U < | + | pg_dump -v -O -Fc -U < |
# Restore with: | # Restore with: | ||
Ligne 109: | Ligne 104: | ||
pg_restore -vc -U < | pg_restore -vc -U < | ||
+ | </ | ||
+ | Lister le contenu d'un dump: | ||
+ | <code bash> | ||
+ | pg_restore -l mydatabase.backup | ||
</ | </ | ||
Ligne 138: | Ligne 137: | ||
</ | </ | ||
+ | ===== Tablespace ===== | ||
+ | |||
+ | <code bash> | ||
+ | mkdir < | ||
+ | chown postgres: | ||
+ | |||
+ | |||
+ | CREATE TABLESPACE < | ||
+ | |||
+ | </ | ||
===== schema ===== | ===== schema ===== | ||
Ligne 144: | Ligne 153: | ||
//"Les schémas sont comparables aux répertoires au niveau du système d' | //"Les schémas sont comparables aux répertoires au niveau du système d' | ||
- | < | + | < |
CREATE SCHEMA mon_schema; | CREATE SCHEMA mon_schema; | ||
# supprimer un schéma vide | # supprimer un schéma vide | ||
Ligne 157: | Ligne 166: | ||
- | |||
- | ===== Optimisation ===== | ||
- | |||
- | |||
- | //" il est recommandé de fortement augmenter les paramètres **shared_buffers** et **work_mem** qui indiquent la quantité de mémoire maximale à utiliser pour un certain nombre d' | ||
- | |||
- | ===== Vacuum et analyse ===== | ||
- | |||
- | //"We recommend that active production databases be vacuumed frequently (at least nightly), in order to remove dead rows. After adding or deleting a large number of rows, it might be a good idea to issue a VACUUM ANALYZE command for the affected table. This will update the system catalogs with the results of all recent changes, and allow the PostgreSQL query planner to make better choices in planning queries."// | ||
- | |||
- | '' | ||
===== Analyse des requêtes ===== | ===== Analyse des requêtes ===== | ||
Ligne 185: | Ligne 183: | ||
CREATE EXTENSION pg_stat_statements; | CREATE EXTENSION pg_stat_statements; | ||
</ | </ | ||
+ | |||
+ | Pour logger les requêtes qui durent plus de n milliseconds : | ||
+ | <code bash> | ||
+ | ALTER DATABASE " | ||
+ | </ | ||
+ | |||
+ | |||
+ | Pour logger les requêtes il faut modifier le fichier de configuration **postgresql.conf** et ajouter à la fin: | ||
+ | |||
+ | <code bash> | ||
+ | # - Where to Log - | ||
+ | |||
+ | log_destination = ' | ||
+ | # stderr, csvlog, syslog, and eventlog, | ||
+ | # depending on platform. | ||
+ | # requires logging_collector to be on. | ||
+ | |||
+ | # This is used when logging to stderr: | ||
+ | logging_collector = on # Enable capturing of stderr and csvlog | ||
+ | # into log files. Required to be on for | ||
+ | # csvlogs. | ||
+ | # (change requires restart) | ||
+ | |||
+ | # These are only used if logging_collector is on: | ||
+ | log_directory = '/ | ||
+ | # can be absolute or relative to PGDATA | ||
+ | log_filename = ' | ||
+ | # can include strftime() escapes | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== Connaître la configuration de Postgres ===== | ||
+ | |||
+ | <code bash> | ||
+ | select * from pg_settings; | ||
+ | </ | ||
+ | |||
===== Voir plus loin ===== | ===== Voir plus loin ===== |