Ce cours s’adresse à toute personne voulant acquérir la compétence nécessaire à une administration efficace d’un serveur PostgreSQL. Il requiert des connaissances SQL et des connaissance de l’OS utilisé (Unix/Windows).
Plan détaillé
Introduction et rappels
- Historique et versions.
- Introduction à SQL, gestion des identifiants.
- Documentation et ressources PostgreSQL.
- Serveur PostgreSQL.
- Utilisateurs et schémas.
- Tablespaces et bases de données.
Installation du serveur PostgreSQL
- Configuration requise.
- Installation binaire sous Windows.
- Installation binaire sous Linux.
- Compilation sous Unix à partir des sources.
- Outils psql, pgAdminIII, et pgAdmin4.
Travaux pratiques : installation binaire, compilation à partir des sources. utilisation des outils.
Architecture et gestion d’une instance PostgreSQL
- Démarrage/arrêt de PostgreSQL.
- Paramétrage de PostgreSQL et fichier postgresql.conf.
- Catalogues système, vues et tables « pg_* », information_schema.
- Traçage de l’activité, activation et visualisation du résultat.
- Activation des statistiques d’exécution d’instructions.
- Processus démons de PostgreSQL et leurs rôles.
Travaux pratiques : démarrage/arrêt du serveur, consultation/modification des paramètres, traçage de l’activité, extension pg_statement_stats.
Architecture et fichiers d’un cluster PostgreSQL
- Initialisation du cluster et commande initdb.
- Tablepsaces, création, suppression, et utilisation.
- Bases de données, création, modification, paramétrage.
- Stockage des tables, segments, pages, HOT (Heap Only Tuples), les segments TOAST.
- Ensemble des fichiers d’une table.
- Journaux de transactions (WAL), stockage et paramétrage.
Travaux pratiques : Initialisation d’un deuxième cluster, tablespaces, création de nouvelles bases de données, utilisation de la technique TOAST, gestion des journaux de transactions.
Sécurité et utilisateurs
- Introduction à la gestion des utilisateurs.
- Contrôle des connexions des clients et fichier pg_hba.conf.
- Utilisateurs/rôles dans PostgreSQL.
- Utilisation des schémas.
- Privilèges et droits d’accès.
- Configuration/utilisation des droits par défaut.
Travaux pratiques : contrôle des connexions via pg_hba.conf, création/configuration d’utilisateurs, utilisation des schémas, gestions des privilèges, gestion des privilèges par défaut.
Maintenance et objets d’un cluster PostgreSQL
- Création/modification des tables.
- Types d’index dans PostgreSQL.
- Organisation d’une table en fonction d’un index.
- VACUUM et VACUUM FULL.
- Partitionnement de tables.
- Foreign Data Wrapper, utilisation des tables FDW.
Travaux pratiques : Organisation d’une table selon un index, partitionnement de tables, utilisation des tables FDW.
Sauvegarde/restauration
- Introduction au problème de la sauvegarde.
- Sauvegarde/restauration logique, pg_dump, pg_restore.
- Sauvegarde des fichiers à froid.
- Configuration de l’archivage continu.
- Sauvegarde à chaud.
- Utilisation de pg_basebackup.
- Restauration/récupération après une panne.
Travaux pratiques : sauvegarde/restauration logique, sauvegarde physique à froid, configuration de l’archivage continu, sauvegarde à chaud, restauration/récupération en archivage continu.