SlideShare une entreprise Scribd logo
1  sur  143
Télécharger pour lire hors ligne
Présentation de la
formation
PostgreSQL, administration alphorm.com™©
Site : http://alphorm.com
Blog : http://alphorm.com/blog
Forum : http://alphorm.com/forum
Noureddine DRISSI
Expert consultant bases de données
Contact : ndform@valneo-xi.fr
formation
Le formateur
Noureddine DRISSI
Spécialisé dans la base de données
15 années d’expérience sur tous les SGBDR du marché
(SQL Server, Oracle, PostgreSQL, Mysql, DB2)
Issue de l’environnement bancaire
PostgreSQL, administration alphorm.com™©
ndform@valneo-xi.fr
Connaissances préalables
Connaissances de base du système d’exploitation Linux ou
Windows
Expérience professionnelle de SQL
Expérience professionnelle des bases de données
relationnelles
Expérience en matière de conception de bases de données
PostgreSQL, administration alphorm.com™©
Expérience en matière de conception de bases de données
A propos de ce cours
Objectifs
Comprendre et maîtriser l’architecture de PostgreSQL;
Administrer au quotidien PostgreSQL;
Sauvegarder et restaurer des bases de données ou des instances
PostgreSQL;
Gérer la sécurité;
PostgreSQL, administration alphorm.com™©
Gérer la sécurité;
Analyser et comprendre PostgreSQL;
Comprendre et optimiser l’architecture de PostgreSQL.
Plan du cours
Module 1: Présentation de
PostgreSQL
Module 2: Installation de PostgreSQL
Module 3: Gestion des instances sous
PostgreSQL
Module 4: Les outils d’administration
sous PostgreSQL
Module 5: La gestion des
Module 9: Sauvegarde et
restauration
Module 10: Administrer au quotidien
PostgreSQL
PostgreSQL, administration alphorm.com™©
Module 5: La gestion des
transactions
Module 6: Les logs PostgreSQL
Module 7: Le cache de données
PostgreSQL
Module 8: Gestion de la sécurité
Qu’est-ce qu’un SGBDR ?
PostgreSQL est un Système de Gestion de Base de Données
Relationnelle (SGBDR)
PostgreSQL est chargé de :
stocker les données,
vérifier les contraintes d’intégrité définies,
garantir la cohérence des données qu’il stocke, même en cas de panne (arrêt brutal)
du système,
PostgreSQL, administration alphorm.com™©
du système,
assurer les relations entre les données définies par les utilisateurs.
Environnement du cours
SRVPOSTGRESQL01
5432
InstanceInstance
PostgreSQL, administration alphorm.com™©
5432
5433
CLIENT-SQL01 psql
InstanceInstance
Introduction à la base Gescom
Dans les ateliers pratique de ce cours, nous allons travailler
avec une base de données modèle que l’on nommera
GESCOM.
Au fil des ateliers pratique, nous allons ajouter des
fonctionnalités à la base de données GESCOM.
Cette base de données servira de fil conducteur pour
l’ensemble des démonstration (sauvegarde, transfert,
PostgreSQL, administration alphorm.com™©
Cette base de données servira de fil conducteur pour
l’ensemble des démonstration (sauvegarde, transfert,
fichiers data, réplication, optimisation, etc.)
Introduction à la base Gescom
Base: GESCOM
Schéma: FACT
InstanceInstance
Tables Vues
PostgreSQL, administration alphorm.com™©
Indexes séquences
…
Introduction au modèle de données
PostgreSQL, administration alphorm.com™©
GO
PostgreSQL, administration alphorm.com™©
GO
Présentation de
PostgreSQL
PostgreSQL, administration alphorm.com™©
Site : http://alphorm.com
Blog : http://alphorm.com/blog
Forum : http://alphorm.com/forum
Noureddine DRISSI
Expert consultant bases de données
Contact : ndform@valneo-xi.fr
PostgreSQL
Présentation de PostgreSQL
• Présentation
Système de gestion de bases de données
Fondé sur POSTGRES
Supporte une grande partie du standard SQL
Licence libérale
PostgreSQL, administration alphorm.com™©
Programme écrit à l'université de Californie à Berkeley
Base de données Open Source de référence
Modèle client/serveur
Présentation de PostgreSQL
Les caractéristiques
SGBDR
Supporte le langage SQL
Open source
Respect de la norme ACID
PostgreSQL, administration alphorm.com™©
Fonctionnalités
• respect de la norme SQL92, requêtes complexes ;
• clés étrangères ;
• plusieurs langages procéduraux, triggers, procédures et fonctions ;
• Déclencheurs, vues ;
Présentation de PostgreSQL
Les versions les plus importantes
1995: V 1.0 le code devient modifiable (évolution de la licence)
2005: V 8.0 natif Windows, savepoints, PITR, tablespaces, prêt pour
l'entreprise
2010: V 9.2 réplication, scalabilité
PostgreSQL, administration alphorm.com™©
Présentation de PostgreSQL
La communauté PostgreSQL
Le site pgFoundry.org
• Héberge de nombreux projets développés par des équipes
indépendantes
- connecteurs pour les différents langages ;
- langages procéduraux ;
outils d'aide à l'administration ;
PostgreSQL, administration alphorm.com™©
- outils d'aide à l'administration ;
- logiciels pour la haute disponibilité (réplication, gestion des connexions,
etc.).
Présentation de PostgreSQL
• Les atouts
Un projet de grande ampleur
Un SGBD complet
Une communauté réactive et internationale
Un large panel de projets complémentaires
PostgreSQL, administration alphorm.com™©
Une solution stable, ouverte et performante
Licence BSD
Coût nul
Code source disponible
Aucune contrainte de redistribution
Présentation de PostgreSQL
PostgreSQL VS les autres SGBDR
PostgreSQL Mysql Oracle MSSQL
Tablespace
NON
Partitionnement
Emulé INNODB
Vues matérialisées
PostgreSQL, administration alphorm.com™©
Vues matérialisées
Emulé NON
Norme ACID
INNODB
Intégrité
référentielles
INNODB
Langage Procédural
Plusieurs
Curseurs
Limité
Présentation de PostgreSQL
Conclusion
SGBDR performant
Montée en puissance et en charge progressive
Gestion des gros volumes de données
Gestion des performances
PostgreSQL, administration alphorm.com™©
• Tuning matériel
• Tuning logiciel
• Optimiseur de requêtes
Prochain module :
Installation de PostgreSQL
PostgreSQL, administration alphorm.com™©
Installation de PostgreSQL
Installation de PostgreSQL
PostgreSQL, administration alphorm.com™©
Site : http://alphorm.com
Blog : http://alphorm.com/blog
Forum : http://alphorm.com/forum
Noureddine DRISSI
Expert consultant bases de données
Contact : ndform@valneo-xi.fr
Windows
PostgreSQL, administration alphorm.com™©
Installation de PostgreSQL
Les étapes d’installation
Téléchargement des sources à partir du site http://www.postgresql.org
Installation du logiciel PostgreSQL
Automatisation du démarrage du service PostgreSQL
PostgreSQL, administration alphorm.com™©
Prochain module :
Gestion des instances sous
PostgreSQL, administration alphorm.com™©
Gestion des instances sous
PostgreSQL
Installation de PostgreSQL
PostgreSQL, administration alphorm.com™©
Site : http://alphorm.com
Blog : http://alphorm.com/blog
Forum : http://alphorm.com/forum
Noureddine DRISSI
Expert consultant bases de données
Contact : ndform@valneo-xi.fr
Installation de PostgreSQL
Les étapes d’installation
Téléchargement des sources à partir du site http://www.postgresql.org
Préparation du système d’exploitation
Installation du logiciel PostgreSQL
Initialisation des fichiers de l’instance
Configuration
PostgreSQL, administration alphorm.com™©
Configuration
Installation et configuration des scripts de démarrage sous Unix ou services
sous Windows
Installation de PostgreSQL
• Les types d’installation
Installation à partir des paquetages « rpm » (Linux)
• Les paquetages nécessaires
- Postgresql-server*
- Postgresql*
- Postgresql-libs*
PostgreSQL, administration alphorm.com™©
- Postgresql-libs*
Installation à partir des binaires (Linux)
• Pré-requis
- make, GCC, gzip, tar
Installation à partir des exécutables (WINDOWS)
Prochain module :
Gestion des instances sous
PostgreSQL, administration alphorm.com™©
Gestion des instances sous
PostgreSQL
Gestion des instances sous
PostgreSQL
PostgreSQL, administration alphorm.com™©
Site : http://alphorm.com
Blog : http://alphorm.com/blog
Forum : http://alphorm.com/forum
Noureddine DRISSI
Expert consultant bases de données
Contact : ndform@valneo-xi.fr
Notion d’instance
Gestion d’une instance PostgreSQL
Une instance PostgreSQL c’est quoi ?
Un cache mémoire
Des processus
Une arborescence physiques (FS, répertoires)
Un ensemble de bases de données
PostgreSQL, administration alphorm.com™©
Gestion d’une instance PostgreSQL
Représentation schématique d’une instance
PostgreSQL, administration alphorm.com™©
Gestion d’une instance PostgreSQL
Les processus PostgreSQL
Le processus postmaster
• Le Processus de gestion des journaux applicatifs (optionnel)
• Le processus de collecte des statistiques (optionnel)
• Le processus d'écriture en tâche de fond
PostgreSQL, administration alphorm.com™©
• Le processus d’écriture des journaux de transactions
• Le Processus de maintenance des tables (optionnel)
• Le processus d'archivage (optionnel)
• Les processus de communication client/serveur
Gestion d’une instance PostgreSQLGestion d’une instance PostgreSQL
Le processusLe processus postmasterpostmaster
Père de tous les autres processusPère de tous les autres processus
Ecoute toutes les connexions entrantesEcoute toutes les connexions entrantes
Ecoute par la socket ou le port TCP/IP (par défaut 5432)Ecoute par la socket ou le port TCP/IP (par défaut 5432)
Lance les différents services nécessaires à PostgreSQLLance les différents services nécessaires à PostgreSQL
•• le processus de gestion des journaux applicatifs (si activé) ;le processus de gestion des journaux applicatifs (si activé) ;
PostgreSQL, administration alphorm.com™©
•• le processus de gestion des journaux applicatifs (si activé) ;le processus de gestion des journaux applicatifs (si activé) ;
•• le processus de collecte des statistiques (si activé) ;le processus de collecte des statistiques (si activé) ;
•• le « autovacuum launcher » (si activé) ;le « autovacuum launcher » (si activé) ;
•• le processus d'écriture en tâche de fond ;le processus d'écriture en tâche de fond ;
•• le processsus d'écriture des journaux de transactionsle processsus d'écriture des journaux de transactions
Gestion d’une instance PostgreSQL
Le processusLe processus bgwriterbgwriter
Ecriture des blocs modifiés en mémoire cache dans les fichiers deEcriture des blocs modifiés en mémoire cache dans les fichiers de
donnéesdonnées
Processus d’arrière planProcessus d’arrière plan
Déclenché par un checkpointDéclenché par un checkpoint
checkpoint_timeoutcheckpoint_timeout indique la durée maximale sans CHECKPOINTindique la durée maximale sans CHECKPOINT
PostgreSQL, administration alphorm.com™©
checkpoint_timeoutcheckpoint_timeout indique la durée maximale sans CHECKPOINTindique la durée maximale sans CHECKPOINT
checkpoint_segmentscheckpoint_segments indique le nombre maximum de journaux deindique le nombre maximum de journaux de
transactions utilisés sans CHECKPOINTtransactions utilisés sans CHECKPOINT
Gestion d’une instance PostgreSQL
Le «Le « walwal writerwriter processprocess »»
Apparu en 8.3Apparu en 8.3
Enregistre les modifications dans les journaux de transactions WALEnregistre les modifications dans les journaux de transactions WAL
Paramètres d’optimisationParamètres d’optimisation
wal_bufferwal_buffer
PostgreSQL, administration alphorm.com™©
fsyncfsync
……
Gestion d’une instance PostgreSQL
Le processus de collecte des statistiquesLe processus de collecte des statistiques
Activé par défaut en 8.3 (Activé par défaut en 8.3 (track_activitiestrack_activities,, track_countstrack_counts))
Récupère les informations des processusRécupère les informations des processus postgrespostgres
Statistiques surStatistiques sur
•• le nombre de lignes lues, insérées, modifiées et suppriméesle nombre de lignes lues, insérées, modifiées et supprimées
PostgreSQL, administration alphorm.com™©
•• le nombre de blocs disque lus ou écritsle nombre de blocs disque lus ou écrits
Informations récupérées via un port UDP configuré en mode nonInformations récupérées via un port UDP configuré en mode non
bloquantbloquant
Gestion d’une instance PostgreSQL
Le processus de maintenance des tablesLe processus de maintenance des tables
Procède au nettoyage des tablesProcède au nettoyage des tables
Depuis la version 8.3Depuis la version 8.3
•• autovacuumautovacuum launcherlauncher
•• autovacuumautovacuum workerworker
PostgreSQL, administration alphorm.com™©
Exécuté au démarrage du serveurExécuté au démarrage du serveur
Traces disponibles pour ce processusTraces disponibles pour ce processus
Gestion d’une instance PostgreSQL
Le processus d’archivageLe processus d’archivage
Désactivé par défaut (archive_mode)Désactivé par défaut (archive_mode)
Gère l'archivage des journaux de transactionsGère l'archivage des journaux de transactions
Pas de consommation mémoire importantePas de consommation mémoire importante
Traces disponibles pour ce processusTraces disponibles pour ce processus
PostgreSQL, administration alphorm.com™©
Gestion d’une instance PostgreSQL
Le processus des journaux applicatifsLe processus des journaux applicatifs
Disponible depuis la version 8.0Disponible depuis la version 8.0
Activé par défautActivé par défaut
Apparaît sous le nom de «Apparaît sous le nom de « logger processlogger process »»
Exécuté au lancement du serveur PostgreSQLExécuté au lancement du serveur PostgreSQL
PostgreSQL, administration alphorm.com™©
Gestion d’une instance PostgreSQL
Les processus de communication client/serveurLes processus de communication client/serveur
Ce sont les plus nombreux (limitation avec max_connections)Ce sont les plus nombreux (limitation avec max_connections)
Gère la communication entre le client et le serveurGère la communication entre le client et le serveur
Démarré par le processus «Démarré par le processus « postmasterpostmaster » après authentification de» après authentification de
l’utilisateurl’utilisateur
Traite les requêtes des clientsTraite les requêtes des clients
PostgreSQL, administration alphorm.com™©
Traite les requêtes des clientsTraite les requêtes des clients
Utilise la mémoire partagée et la mémoire dédiéeUtilise la mémoire partagée et la mémoire dédiée
Gestion d’une instance PostgreSQL
Arborescence physique d’une instanceArborescence physique d’une instance
PostgreSQL, administration alphorm.com™©
Gestion d’une instance PostgreSQL
Fonction de chaque répertoireFonction de chaque répertoire
basebase répertoire associé à l'espace de tables pg_defaultrépertoire associé à l'espace de tables pg_default
base/pgsql_tmpbase/pgsql_tmp fichiers temporaires pour certaines opérationsfichiers temporaires pour certaines opérations
globalglobal tables système (espace de tables pg_global)tables système (espace de tables pg_global)
pg_clogpg_clog données relatives au statut de validation des transactionsdonnées relatives au statut de validation des transactions
PostgreSQL, administration alphorm.com™©
pg_logpg_log journaux d'activitéjournaux d'activité
pg_multixactpg_multixact données relatives au statut des transactions multiplesdonnées relatives au statut des transactions multiples
pg_subtranspg_subtrans données relatives au statut des transactions imbriquéesdonnées relatives au statut des transactions imbriquées
pg_tblspcpg_tblspc contient un lien symbolique pour chaque espace de tablescontient un lien symbolique pour chaque espace de tables
pg_twophasepg_twophase données pour les transactions préparéesdonnées pour les transactions préparées
pg_xlogpg_xlog journaux binaires (WAL)journaux binaires (WAL)
Gestion d’une instance PostgreSQL
La racine de l’instanceLa racine de l’instance $PGDATA$PGDATA
Contient tous les répertoires de l’instanceContient tous les répertoires de l’instance
Contient les fichiers de configuration de l’instanceContient les fichiers de configuration de l’instance
•• PG_VERSIONPG_VERSION version de PostgreSQL associée à l’instanceversion de PostgreSQL associée à l’instance
•• pg_hba.confpg_hba.conf configuration de l'authentificationconfiguration de l'authentification
PostgreSQL, administration alphorm.com™©
•• pg_ident.confpg_ident.conf configuration de l'authentification identconfiguration de l'authentification ident
•• postgresql.confpostgresql.conf configuration de l'instanceconfiguration de l'instance
•• postmaster.optspostmaster.opts options de démarrage de postmasteroptions de démarrage de postmaster
•• postmaster.pidpostmaster.pid PID du processus postmasterPID du processus postmaster
Gestion d’une instance PostgreSQL
Configuration de l’instanceConfiguration de l’instance
Se fait dans le fichier «Se fait dans le fichier « postgresql.confpostgresql.conf »»
•• A la racine de chaque instance $PGDATAA la racine de chaque instance $PGDATA
•• Toujours faire une sauvegarde du fichier avant modificationToujours faire une sauvegarde du fichier avant modification
PostgreSQL, administration alphorm.com™©
Gestion d’une instance PostgreSQL
Représentation de l’architecture logique et physiqueReprésentation de l’architecture logique et physique
PostgreSQL, administration alphorm.com™©
Gestion d’une instance PostgreSQL
Configuration de l’instanceConfiguration de l’instance
Se fait dans le fichier «Se fait dans le fichier « postgresql.confpostgresql.conf »»
•• A la racine de chaque instance $PGDATAA la racine de chaque instance $PGDATA
•• Toujours faire une sauvegarde du fichier avant modificationToujours faire une sauvegarde du fichier avant modification
PostgreSQL, administration alphorm.com™©
Prochain module :
Les outils d’administration sous
PostgreSQL, administration alphorm.com™©
Les outils d’administration sous
PostgreSQL
Gestion des instances sous
PostgreSQL
PostgreSQL, administration alphorm.com™©
Site : http://alphorm.com
Blog : http://alphorm.com/blog
Forum : http://alphorm.com/forum
Noureddine DRISSI
Expert consultant bases de données
Contact : ndform@valneo-xi.fr
Les tablespaces
Gestion d’une instance PostgreSQL
Les espaces de stockage oude stockage ou tablespacetablespace
Répertoire d’un système de fichier, dans lequelRépertoire d’un système de fichier, dans lequel
PostgreSQLPostgreSQL écrit les fichiers des tables et des indexesécrit les fichiers des tables et des indexes
UtilisationUtilisation
•• Extension de l’espace de stockage existantExtension de l’espace de stockage existant
PostgreSQL, administration alphorm.com™©
•• Répartition des objets à fort accès sur des disques différentsRépartition des objets à fort accès sur des disques différents
•• Amélioration des performances pour les I/OAmélioration des performances pour les I/O
Gestion d’une instance PostgreSQL
Caractéristiques des espaces de tablesCaractéristiques des espaces de tables
N’est pas spécifique à une base de donnéesN’est pas spécifique à une base de données
Outil pour l’administrateur afin d’optimiser le stockageOutil pour l’administrateur afin d’optimiser le stockage
sur disquesur disque
Gestion fine des permissions sur les espaces de tablesGestion fine des permissions sur les espaces de tables
PostgreSQL, administration alphorm.com™©
Maîtrise de la répartition des fichiers DATA, en fonctionMaîtrise de la répartition des fichiers DATA, en fonction
des bases de données et des rôles utilisésdes bases de données et des rôles utilisés
Gestion d’une instance PostgreSQL
•• Mise en oeuvre des espaces de tableMise en oeuvre des espaces de table
Au niveau de l’OSAu niveau de l’OS
•• Création du nouveau répertoire de stockageCréation du nouveau répertoire de stockage
•• Modification du propriétaire du répertoireModification du propriétaire du répertoire
•• Attribution des privilèges sur le répertoireAttribution des privilèges sur le répertoire
PostgreSQL, administration alphorm.com™©
•• Attribution des privilèges sur le répertoireAttribution des privilèges sur le répertoire
Au niveau de PostgreSQLAu niveau de PostgreSQL
•• Création du tablespace avec la commande DDLCréation du tablespace avec la commande DDL
•• Vérification de la création du tablespaceVérification de la création du tablespace
Gestion d’une instance PostgreSQL
•• Création des espaces de tableCréation des espaces de table
SyntaxeSyntaxe
ExempleExemple
CREATE TABLESPACE <nom> LOCATION <dir>
# CREATE TABLESPACE app LOCATION ‘/u101/pgsql/data’
PostgreSQL, administration alphorm.com™©
# CREATE TABLESPACE app LOCATION ‘/u101/pgsql/data’
Gestion d’une instance PostgreSQL
•• Suppression des espaces de tableSuppression des espaces de table
Le tablespace doit être vide (pas de table ni d’index)Le tablespace doit être vide (pas de table ni d’index)
Suppression du tablespace via la commande DDLSuppression du tablespace via la commande DDL
Le répertoire de stockage peut être suppriméLe répertoire de stockage peut être supprimé
physiquement avec les commandes de l’OSphysiquement avec les commandes de l’OS
PostgreSQL, administration alphorm.com™©
SyntaxeSyntaxe
DROP TABLESPACE [ IF EXISTS] <nom>
Gestion d’une instance PostgreSQL
•• Modifier des espaces de tableModifier des espaces de table
Renommer le tablespaceRenommer le tablespace
Changer le propriétaireChanger le propriétaire
SyntaxeSyntaxe
ALTER TABLESPACE nomtblspc RENAME nomtblspc2;
PostgreSQL, administration alphorm.com™©
ALTER TABLESPACE nomtblspc RENAME nomtblspc2;
ALTER TABLESPACE nomtblspc OWNER nomROLE;
Gestion des instances sous
PostgreSQL
PostgreSQL, administration alphorm.com™©
Site : http://alphorm.com
Blog : http://alphorm.com/blog
Forum : http://alphorm.com/forum
Noureddine DRISSI
Expert consultant bases de données
Contact : ndform@valneo-xi.fr
Initialisation d’une instance
Initialisation d'une instance
Configuration des ressources du noyauConfiguration des ressources du noyau
PostgreSQLPostgreSQL utilise les ressources IPC de l’OS pour la gestion de lautilise les ressources IPC de l’OS pour la gestion de la
mémoire vivemémoire vive
La taille maximale d’un segment de mémoire partagée et positionnéLa taille maximale d’un segment de mémoire partagée et positionné
par défaut à 32 Mopar défaut à 32 Mo
Le nombre de pages est positionné par défaut à 2097152 pagesLe nombre de pages est positionné par défaut à 2097152 pages
PostgreSQL, administration alphorm.com™©
Nécessité de modifier les paramètres par défautNécessité de modifier les paramètres par défaut
•• shmmaxshmmax taille maximale d’un segment de mémoire partagéetaille maximale d’un segment de mémoire partagée
•• shmallshmall nombre maximale de pages de mémoire partagée (OS)nombre maximale de pages de mémoire partagée (OS)
Initialisation d'une instance
initdbinitdb
SyntaxeSyntaxe
ExempleExemple
initdb -E <codage> --locale=<locale> -D <dir>
$ initdb -E UTF8 -D $PGDATA
PostgreSQL, administration alphorm.com™©
Initialisation d'une instance
initdbinitdb
SyntaxeSyntaxe
ExempleExemple
initdb -E <codage> --locale=<locale> -D <dir>
$ initdb -E UTF8 -D $PGDATA
PostgreSQL, administration alphorm.com™©
Initialisation d'une instance
Création d’une instanceCréation d’une instance
Utilisation du programmeUtilisation du programme initdbinitdb
•• Les optionsLes options
•• --D <dir>D <dir> indique le répertoire de stockage des donnéesindique le répertoire de stockage des données
•• --U <utilisateur>U <utilisateur> indique le nom du super userindique le nom du super user
PostgreSQL, administration alphorm.com™©
•• --E <encodage>E <encodage> indique le jeux de caractères sélectionnéindique le jeux de caractères sélectionné
•• --locale=<locale>locale=<locale> initialise les paramètres locauxinitialise les paramètres locaux
Initialisation d'une instance
Démarrage et arrêt d’une instanceDémarrage et arrêt d’une instance
Utilisation du programmeUtilisation du programme pg_ctlpg_ctl
•• --D <dir>D <dir> indique le répertoire de l’instanceindique le répertoire de l’instance
•• --l <journal de trace>l <journal de trace> fichier de log de démarrage de l’instancefichier de log de démarrage de l’instance
•• start, stop, restartstart, stop, restart etet reloadreload permettent de démarrer, d’arrêter,permettent de démarrer, d’arrêter,
de redémarrer et de recharger le serveurde redémarrer et de recharger le serveur
PostgreSQL, administration alphorm.com™©
de redémarrer et de recharger le serveurde redémarrer et de recharger le serveur
Initialisation d'une instance
pg_ctlpg_ctl
SyntaxeSyntaxe
ExempleExemple
pg_ctl -D $PGDATA start | stop | restart -l <journal trace>
pg_ctl -D /var/lib/pgsql/data stop
PostgreSQL, administration alphorm.com™©
pg_ctl -D /var/lib/pgsql/data start
Initialisation d'une instance
pg_ctlpg_ctl
SyntaxeSyntaxe
ExempleExemple
pg_ctl -D $PGDATA start | stop | restart -l <journal trace>
pg_ctl -D /var/lib/pgsql/data start
PostgreSQL, administration alphorm.com™©
Initialisation d'une instance
Démarrage et arrêt d’une instanceDémarrage et arrêt d’une instance
Utilisation du script de démarrage (SysV) LinuxUtilisation du script de démarrage (SysV) Linux
WindowsWindows
/etc/init.d/postgresql stop | start | restart | reload
PostgreSQL, administration alphorm.com™©
Initialisation d'une instance
Suppression d’une instanceSuppression d’une instance
LinuxLinux
•• Arrêtez le processus postmaster PostgreSQLArrêtez le processus postmaster PostgreSQL
•• Supprimer tous les fichiers et répertoires à la racine deSupprimer tous les fichiers et répertoires à la racine de
l’instance ($PGDATA)l’instance ($PGDATA)
WindowsWindows
PostgreSQL, administration alphorm.com™©
WindowsWindows
•• Arrêtez le service PostgreSQLArrêtez le service PostgreSQL
•• Supprimer tous les fichiers et répertoire à la racine de l’instanceSupprimer tous les fichiers et répertoire à la racine de l’instance
($PGDATA)($PGDATA)
Initialisation d'une instance
Suppression d’une instanceSuppression d’une instance
LinuxLinux
•• Arrêtez le processus postmaster PostgreSQLArrêtez le processus postmaster PostgreSQL
•• Supprimer tous les fichiers et répertoires à la racine deSupprimer tous les fichiers et répertoires à la racine de
l’instance ($PGDATA)l’instance ($PGDATA)
WindowsWindows
PostgreSQL, administration alphorm.com™©
WindowsWindows
•• Arrêtez le service PostgreSQLArrêtez le service PostgreSQL
•• Supprimer tous les fichiers et répertoire à la racine de l’instanceSupprimer tous les fichiers et répertoire à la racine de l’instance
($PGDATA)($PGDATA)
Gestion des instances sous
PostgreSQL
PostgreSQL, administration alphorm.com™©
Site : http://alphorm.com
Blog : http://alphorm.com/blog
Forum : http://alphorm.com/forum
Noureddine DRISSI
Expert consultant bases de données
Contact : ndform@valneo-xi.fr
Sécurisation d’une instance
Sécurisation d'une instance
Gérée parGérée par
LLe fichier «e fichier « pg_hba.confpg_hba.conf »»
Configure la manière d’authentifier les connexionsConfigure la manière d’authentifier les connexions
Par défaut autorise toutes les connexions localesPar défaut autorise toutes les connexions locales
Nécessaire de modifier ce fichier après l’installationNécessaire de modifier ce fichier après l’installation
PostgreSQL, administration alphorm.com™©
Nécessaire de modifier ce fichier après l’installationNécessaire de modifier ce fichier après l’installation
Les objets rôlesLes objets rôles
Pour la connexion et la sécurité au niveau des objetsPour la connexion et la sécurité au niveau des objets
Sécurisation d'une instance
Configuration de «Configuration de « pg_hba.confpg_hba.conf »»
Format d’une ligne d’authentificationFormat d’une ligne d’authentification
TypeType || BaseBase || UserUser || AdresseAdresse || MéthodeMéthode || OptionOption
•• Colonne « Type »Colonne « Type »
- local : connexion par une socket du domaine Unix (la colonne
PostgreSQL, administration alphorm.com™©
- local : connexion par une socket du domaine Unix (la colonne
adresse est vide) ;
- host : connexion chiffrée ou non par une socket TCP/IP ;
- hostssl : connexion chiffrée par une socket TCP/IP ;
- hostnossl : connexion non chiffrée par une socket TCP/IP.
Sécurisation d'une instance
Configuration de «Configuration de « pg_hba.confpg_hba.conf »»
Format d’une ligne d’authentificationFormat d’une ligne d’authentification
TypeType || BaseBase || UserUser || AdresseAdresse || MéthodeMéthode || OptionOption
•• Colonne « Base »Colonne « Base »
- all ;
PostgreSQL, administration alphorm.com™©
- all ;
- samerole, sameuser ;
- une liste de ces éléments séparés par une virgule.
Sécurisation d'une instance
Configuration de «Configuration de « pg_hba.confpg_hba.conf »»
Format d’une ligne d’authentificationFormat d’une ligne d’authentification
TypeType || BaseBase || UserUser || AdresseAdresse || MéthodeMéthode || OptionOption
•• Colonne « User »Colonne « User »
- all ;
PostgreSQL, administration alphorm.com™©
- all ;
- le nom d'un groupe (rôle) précédé du caractère « + » ;
- une liste de ces éléments séparés par une virgule.
Sécurisation d'une instance
Configuration de «Configuration de « pg_hba.confpg_hba.conf »»
Format d’une ligne d’authentificationFormat d’une ligne d’authentification
TypeType || BaseBase || UserUser || AdresseAdresse || MéthodeMéthode || OptionOption
•• Colonne « Adresse »Colonne « Adresse »
-- IP d'origine de la connexion au format CIDRIP d'origine de la connexion au format CIDR
PostgreSQL, administration alphorm.com™©
-- IP d'origine de la connexion au format CIDRIP d'origine de la connexion au format CIDR
-- Doit être vide lorsque le type est « local »Doit être vide lorsque le type est « local »
Sécurisation d'une instance
Configuration de «Configuration de « pg_hba.confpg_hba.conf »»
Format d’une ligne d’authentificationFormat d’une ligne d’authentification
TypeType || BaseBase || UserUser || AdresseAdresse || MéthodeMéthode || OptionOption
•• Colonne « Méthode »Colonne « Méthode »
- trust : autoriser sans même vérifier le mot de passe ;
PostgreSQL, administration alphorm.com™©
- trust : autoriser sans même vérifier le mot de passe ;
- reject : rejeter la connexion ;
- md5 : vérifier le mot de passe fourni (ne plus utiliser crypt ou
password) ;
- ident : utiliser le protocole IDENT pour vérifier l'utilisateur ;
- krb5, pam ou ldap : authentifications spécifiques.
Sécurisation d'une instance
Configuration de «Configuration de « pg_hba.confpg_hba.conf »»
Format d’une ligne d’authentificationFormat d’une ligne d’authentification
TypeType || BaseBase || UserUser || AdresseAdresse || MéthodeMéthode | [| [OptionOption ]]
•• Colonne « Méthode »Colonne « Méthode »
- trust : autoriser sans même vérifier le mot de passe ;
PostgreSQL, administration alphorm.com™©
- trust : autoriser sans même vérifier le mot de passe ;
- reject : rejeter la connexion ;
- md5 : vérifier le mot de passe fourni (ne plus utiliser crypt ou
password) ;
- ident : utiliser le protocole IDENT pour vérifier l'utilisateur ;
- krb5, pam ou ldap : authentifications spécifiques.
Sécurisation d'une instance
Les sessionsLes sessions
Connexion des clients via une socket UNIXConnexion des clients via une socket UNIX
Port d’écoute par défaut: 5432Port d’écoute par défaut: 5432
Quatre informations nécessaires pour ouvrir une sessionQuatre informations nécessaires pour ouvrir une session
Le nom/IP de la machine qui héberge l’instanceLe nom/IP de la machine qui héberge l’instance
PostgreSQL, administration alphorm.com™©
Le nom/IP de la machine qui héberge l’instanceLe nom/IP de la machine qui héberge l’instance
Le nom de la baseLe nom de la base
Le nom d’un rôleLe nom d’un rôle
Un mot de passe (si configuré dans « pg_hba.conf »Un mot de passe (si configuré dans « pg_hba.conf »
Prochain module :
Les outils d’administration sous
PostgreSQL, administration alphorm.com™©
Les outils d’administration sous
PostgreSQL
Les outils d’administration
sous PostgreSQL
PostgreSQL, administration alphorm.com™©
Site : http://alphorm.com
Blog : http://alphorm.com/blog
Forum : http://alphorm.com/forum
Noureddine DRISSI
Expert consultant bases de données
Contact : ndform@valneo-xi.fr
sous PostgreSQL
Les outils d’administration
Mode ligne de commandeMode ligne de commande
createdb, dropdbcreatedb, dropdb
createuser, dropusercreateuser, dropuser
reindexdb, vacuumdbreindexdb, vacuumdb
pg_dump, pg_dumpall, pg_restorepg_dump, pg_dumpall, pg_restore
PostgreSQL, administration alphorm.com™©
pg_dump, pg_dumpall, pg_restorepg_dump, pg_dumpall, pg_restore
initdb, clusterdb, postmaster, pg_ctlinitdb, clusterdb, postmaster, pg_ctl
psqlpsql, Droplang, pg_config, pg_resetxlog, pg_controldata,, Droplang, pg_config, pg_resetxlog, pg_controldata,
createlang, ipccleancreatelang, ipcclean
Les outils d’administration
Mode ligne de commandeMode ligne de commande
L’interpréteur de commande «L’interpréteur de commande « psqlpsql »»
Les principaux paramètresLes principaux paramètres
-h <machine>
-p <port>
PostgreSQL, administration alphorm.com™©
-p <port>
-d <nom base de données>
-U <utilisateur>
Les outils d’administration
Mode ligne de commandeMode ligne de commande
L’interpréteur de commande «L’interpréteur de commande « psqlpsql »»
Les variables utilisées par « psql » (.bash_profile)Les variables utilisées par « psql » (.bash_profile)
$PGDATA
$PGHOST
PostgreSQL, administration alphorm.com™©
$PGHOST
$PGDATABASE
$PGPORT
$PGUSER
Les outils d’administration
GraphiqueGraphique
pgAdmin IIIpgAdmin III
PostgreSQL, administration alphorm.com™©
Les outils d’administration
GraphiqueGraphique
phpPgAdminphpPgAdmin
PostgreSQL, administration alphorm.com™©
Prochain module :
La gestion des transactions sous
PostgreSQL, administration alphorm.com™©
La gestion des transactions sous
PostgreSQL
La gestion des transactions
sous PostgreSQL
PostgreSQL, administration alphorm.com™©
Site : http://alphorm.com
Blog : http://alphorm.com/blog
Forum : http://alphorm.com/forum
Noureddine DRISSI
Expert consultant bases de données
Contact : ndform@valneo-xi.fr
sous PostgreSQL
La gestion des transactions
TransactionsTransactions
Conforme à la norme ACIDConforme à la norme ACID
•• AtomicitéAtomicité toutes les instructions de la transaction sont validées ou aucune netoutes les instructions de la transaction sont validées ou aucune ne
l'estl'est
•• CohérenceCohérence chaque transaction validée garantit un état cohérent de la base dechaque transaction validée garantit un état cohérent de la base de
donnéesdonnées
•• IsolationIsolation les modifications d'une transaction sont invisibles aux autresles modifications d'une transaction sont invisibles aux autres
transactionstransactions
PostgreSQL, administration alphorm.com™©
transactionstransactions
•• DurabilitéDurabilité si la transaction est validée, les modifications engendrées sontsi la transaction est validée, les modifications engendrées sont
pérennespérennes
La gestion des transactions
TransactionsTransactions
Par défautPar défaut
•• aautocommitutocommit
Une transactionUne transaction
•• Démarrage d’une transaction avecDémarrage d’une transaction avec BEGINBEGIN
PostgreSQL, administration alphorm.com™©
•• COMMITCOMMIT permet de valider une transactionpermet de valider une transaction
•• ROLLBACKROLLBACK permet d’annuler une transactionpermet d’annuler une transaction
La gestion des transactions
TransactionsTransactions
SpécificitésSpécificités
•• Les instructions LDD sont prises en charge par les transactionsLes instructions LDD sont prises en charge par les transactions
•• La fermeture d'une session provoque un rollback impliciteLa fermeture d'une session provoque un rollback implicite
PostgreSQL, administration alphorm.com™©
La gestion des transactions
TransactionsTransactions
IsolationIsolation
•• Le standard SQLLe standard SQL
-- read uncommitedread uncommited
-- read commitedread commited
PostgreSQL, administration alphorm.com™©
-- repeatable readrepeatable read
-- serializableserializable
La gestion des transactions
TransactionsTransactions
IsolationIsolation
Modification du niveau d’isolationModification du niveau d’isolation
SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL
{ SERIALIZABLE | REPEATABLE READ | READ COMMITTED | READ
UNCOMMITTED }
PostgreSQL, administration alphorm.com™©
La gestion des transactions
Les verrousLes verrous
Verrous implicitesVerrous implicites
Verrous expliciteVerrous explicite
•• Avec l'instructionAvec l'instruction locklock
•• En utilisant les clausesEn utilisant les clauses for updatefor update etet for sharefor share de l'instruction selectde l'instruction select
•• Les verrous ne peuvent être posés que dans le cadre d'une transactionLes verrous ne peuvent être posés que dans le cadre d'une transaction
PostgreSQL, administration alphorm.com™©
•• Les verrous ne peuvent être posés que dans le cadre d'une transactionLes verrous ne peuvent être posés que dans le cadre d'une transaction
commencéecommencée avec begin.
•• Les verrous sont libérés lorsque une transaction est terminéeLes verrous sont libérés lorsque une transaction est terminée
•• La liste des verrous actifs est consultable dans la vue systèmeLa liste des verrous actifs est consultable dans la vue système pg_lockspg_locks
Prochain module :
Les logs PostgreSQL
PostgreSQL, administration alphorm.com™©
Les logs PostgreSQL
Gestion de la sécurité sous
PostgreSQL
PostgreSQL, administration alphorm.com™©
Site : http://alphorm.com
Blog : http://alphorm.com/blog
Forum : http://alphorm.com/forum
Noureddine DRISSI
Expert consultant bases de données
Contact : ndform@valneo-xi.fr
PostgreSQL
Gestion de la sécurité
Gestion des droits d’accèsGestion des droits d’accès
Utilise la notion de rôleUtilise la notion de rôle
Peut représenter un utilisateur ou un groupePeut représenter un utilisateur ou un groupe
•• Etre propriétaire d'objets de l'instance (bases de données,Etre propriétaire d'objets de l'instance (bases de données,
tables, etc.)tables, etc.)
•• Se voir octroyer des droits d'accès à des objets ou des droitSe voir octroyer des droits d'accès à des objets ou des droit
PostgreSQL, administration alphorm.com™©
•• Se voir octroyer des droits d'accès à des objets ou des droitSe voir octroyer des droits d'accès à des objets ou des droit
systèmesystème
•• Etre membre d'un autre rôleEtre membre d'un autre rôle
•• Se voir attribuer un mot de passeSe voir attribuer un mot de passe
•• Non lié au utilisateurs du système d’exploitationNon lié au utilisateurs du système d’exploitation
Gestion de la sécurité
Création des rôlesCréation des rôles
SyntaxeSyntaxe
CREATE ROLE nom_role [ [ WITH ] [ SUPERUSER ] [ CREATEDB ]
[ CREATEROLE ] [ LOGIN ]
[ ENCRYPTED PASSWORD 'mot_de_passe' ]
PostgreSQL, administration alphorm.com™©
[ IN ROLE nom_role [, ...] ]
[ ROLE nom_role [, ...] ] ]
Gestion de la sécurité
Suppression des rôlesSuppression des rôles
SyntaxeSyntaxe
DROP ROLE [ IF EXISTS ] nom
PostgreSQL, administration alphorm.com™©
Gestion de la sécurité
Les rôles groupesLes rôles groupes
Modélise la notion de groupe d’utilisateursModélise la notion de groupe d’utilisateurs
Suffit de créer un rôle sans mot de passeSuffit de créer un rôle sans mot de passe
Sans l’attribut LOGINSans l’attribut LOGIN
PostgreSQL, administration alphorm.com™©
Gestion de la sécurité
Les droitsLes droits
Basé sur les rôles et utilise les instructions SQLBasé sur les rôles et utilise les instructions SQL
GRANT et REVOKEGRANT et REVOKE
•• Octroyer ou révoquer des droits d'accès sur des objetsOctroyer ou révoquer des droits d'accès sur des objets
•• Ajouter ou retirer des rôles (utilisateurs) à d'autres rôlesAjouter ou retirer des rôles (utilisateurs) à d'autres rôles
(groupes)(groupes)
PostgreSQL, administration alphorm.com™©
(groupes)(groupes)
Gestion de la sécurité
Les droitsLes droits
Les attributs des rôles:Les attributs des rôles:
• LOGIN / NOLOGIN ;
• SUPERUSER / NOSUPERUSER ;
• CREATEDB / NOCREATEDB ;
PostgreSQL, administration alphorm.com™©
• CREATEROLE / NOCREATEROLE ;
• PASSWORD.
Associés aux rôles lors de leur création (CREATE ROLE) ou avecAssociés aux rôles lors de leur création (CREATE ROLE) ou avec
l'instruction ALTER ROLEl'instruction ALTER ROLE
Les rôles qui disposent de l'attribut SUPERUSER contournent leLes rôles qui disposent de l'attribut SUPERUSER contournent le
système des privilèges (c'estsystème des privilèges (c'est--àà--dire qu'ils ont tous les privilèges)dire qu'ils ont tous les privilèges)
Gestion de la sécurité
Droits, objetsDroits, objets
Les privilèges octroyés dépendent du type d’objetLes privilèges octroyés dépendent du type d’objet
•• tables : SELECT | INSERT | UPDATE | DELETE | REFERENCES |tables : SELECT | INSERT | UPDATE | DELETE | REFERENCES |
TRIGGERTRIGGER
•• séquences : USAGE | SELECT | UPDATEséquences : USAGE | SELECT | UPDATE
•• base de données : CREATE | CONNECT | TEMPORARYbase de données : CREATE | CONNECT | TEMPORARY
PostgreSQL, administration alphorm.com™©
•• base de données : CREATE | CONNECT | TEMPORARYbase de données : CREATE | CONNECT | TEMPORARY
•• fonctions : EXECUTEfonctions : EXECUTE
•• langage : USAGElangage : USAGE
•• schémas : CREATE | USAGEschémas : CREATE | USAGE
•• espaces de tables : CREATEespaces de tables : CREATE
Gestion de la sécurité
Droits, objetsDroits, objets
ALL représente tous les privilèges et PUBLIC tous les rôlesALL représente tous les privilèges et PUBLIC tous les rôles
L'option WITH GRANT OPTION autorise le ou les rôles cibles àL'option WITH GRANT OPTION autorise le ou les rôles cibles à
octroyer ces privilègesoctroyer ces privilèges
PostgreSQL, administration alphorm.com™©
Gestion de la sécurité
Droits, objetsDroits, objets
ALL représente tous les privilèges et PUBLIC tous les rôlesALL représente tous les privilèges et PUBLIC tous les rôles
L'option WITH GRANT OPTION autorise le ou les rôles cibles àL'option WITH GRANT OPTION autorise le ou les rôles cibles à
octroyer ces privilègesoctroyer ces privilèges
PostgreSQL, administration alphorm.com™©
Gestion de la sécurité
Droits, objetsDroits, objets
Révocation des droits avec REVOKERévocation des droits avec REVOKE
SyntaxeSyntaxe
REVOKE [ GRANT OPTION FOR ]
{ privilège [,...] | ALL } ON [ type_objet ] nom_objet [, ...]
PostgreSQL, administration alphorm.com™©
FROM { nom_role | PUBLIC } [, ...] [ CASCADE | RESTRICT ]
Gestion de la sécurité
Droits, objetsDroits, objets
Bonnes pratiquesBonnes pratiques
•• Associer une base de données à un rôleAssocier une base de données à un rôle
•• Associer une base de données à une applicationAssocier une base de données à une application
•• Un schéma est associé à un rôle utilisateurUn schéma est associé à un rôle utilisateur
PostgreSQL, administration alphorm.com™©
•• Les privilèges objets sont donnés à des rôles groupes et non àLes privilèges objets sont donnés à des rôles groupes et non à
des rôles LOGINdes rôles LOGIN
Prochain module :
Sauvegarde restauration sous
PostgreSQL, administration alphorm.com™©
Sauvegarde restauration sous
PostgreSQL
Les logs PostgreSQL
PostgreSQL, administration alphorm.com™©
Site : http://alphorm.com
Blog : http://alphorm.com/blog
Forum : http://alphorm.com/forum
Noureddine DRISSI
Expert consultant bases de données
Contact : ndform@valneo-xi.fr
Les logs d’activités
Gestion des logs
Les logs d’activitésLes logs d’activités
Enregistre les évènements pendant l’exécution du serveurEnregistre les évènements pendant l’exécution du serveur
Méthode d’enregistrementMéthode d’enregistrement
•• fsync, stderr, syslog, eventlog (Windows)fsync, stderr, syslog, eventlog (Windows)
Niveau de traceNiveau de trace
PostgreSQL, administration alphorm.com™©
•• Différentes nature de messageDifférentes nature de message
•• Possibilité d’ajuster le niveau de tracePossibilité d’ajuster le niveau de trace
Gestion des logs
Les logs d’activitésLes logs d’activités
Ou tracer ?Ou tracer ?
•• log_destination (string)log_destination (string) destination des logs (syslog, stderr, etc.)destination des logs (syslog, stderr, etc.)
•• logging_collector (boolean)logging_collector (boolean) autorise la capture et la redirectionautorise la capture et la redirection
des messages envoyés à stderrdes messages envoyés à stderr
•• log_directorylog_directory (string)(string) détermine le répertoire dans lequel lesdétermine le répertoire dans lequel les
PostgreSQL, administration alphorm.com™©
•• log_directorylog_directory (string)(string) détermine le répertoire dans lequel lesdétermine le répertoire dans lequel les
fichiers de trace sont créésfichiers de trace sont créés
•• log_filename (string)log_filename (string) indique les noms des journaux applicatifsindique les noms des journaux applicatifs
crééscréés
•• ……
Gestion des logs
Les logs d’activitésLes logs d’activités
Quand tracer ?Quand tracer ?
•• client_min_messages (enum)client_min_messages (enum) contrôle les niveaux de messagecontrôle les niveaux de message
envoyés au clientenvoyés au client
•• log_min_messages (enum)log_min_messages (enum) contrôle les niveaux de messagecontrôle les niveaux de message
écrits dans les traces du serveurécrits dans les traces du serveur
PostgreSQL, administration alphorm.com™©
écrits dans les traces du serveurécrits dans les traces du serveur
•• log_error_verbosity (enum)log_error_verbosity (enum) contrôle le niveau de détail descontrôle le niveau de détail des
traces de chaque messagetraces de chaque message
•• log_min_error_statement (enum)log_min_error_statement (enum) contrôle si l'instruction SQL àcontrôle si l'instruction SQL à
l'origine d'une erreur doit être enregistrée dans les traces dul'origine d'une erreur doit être enregistrée dans les traces du
serveurserveur
•• ……
Gestion des logs
Les logs d’activitésLes logs d’activités
Que tracer ?Que tracer ?
•• log_checkpoints (boolean)log_checkpoints (boolean) trace les points de vérification danstrace les points de vérification dans
les journaux applicatifsles journaux applicatifs
•• log_connections (boolean)log_connections (boolean) trace chaque tentative de connexiontrace chaque tentative de connexion
sur le serveur, ainsi que la réussite de l'authentification dusur le serveur, ainsi que la réussite de l'authentification du
clientclient
PostgreSQL, administration alphorm.com™©
sur le serveur, ainsi que la réussite de l'authentification dusur le serveur, ainsi que la réussite de l'authentification du
clientclient
•• log_duration (boolean)log_duration (boolean) indique le temps de chaque requêteindique le temps de chaque requête
noté par log_statementnoté par log_statement
•• log_statement (boolean)log_statement (boolean) indique la nature des requête a tracerindique la nature des requête a tracer
•• ……
Gestion des logs
Les logs d’activitésLes logs d’activités
Paramètres du fichier de traceParamètres du fichier de trace
•• log_rotation_age (entier)log_rotation_age (entier) indique le temps de vie d’un fichier deindique le temps de vie d’un fichier de
traces d’activitéstraces d’activités
•• log_rotation_size (entier)log_rotation_size (entier) indique la taille maximale d’un fichierindique la taille maximale d’un fichier
de tracesde traces
PostgreSQL, administration alphorm.com™©
de tracesde traces
•• ……
La gestion des transactions
sous PostgreSQL
PostgreSQL, administration alphorm.com™©
Site : http://alphorm.com
Blog : http://alphorm.com/blog
Forum : http://alphorm.com/forum
Noureddine DRISSI
Expert consultant bases de données
Contact : ndform@valneo-xi.fr
sous PostgreSQL
Gestion des logs
Les logs binaires ou WALLes logs binaires ou WAL
Mécanisme d’écriture des transactionsMécanisme d’écriture des transactions
•• Chaque transaction est écrite dans un fichier binaire, avant queChaque transaction est écrite dans un fichier binaire, avant que
les données ne soient réellement écrites dans les fichiers deles données ne soient réellement écrites dans les fichiers de
données et d’indexdonnées et d’index
•• Mécanisme qui garantit l’écriture des donnéesMécanisme qui garantit l’écriture des données
PostgreSQL, administration alphorm.com™©
Mécanisme qui garantit l’écriture des donnéesMécanisme qui garantit l’écriture des données
•• Permet d’obtenir de meilleures performances, tout enPermet d’obtenir de meilleures performances, tout en
garantissant l’écriture des donnéesgarantissant l’écriture des données
Gestion des logs
Les logs binaires ou WALLes logs binaires ou WAL
Schéma du mécanisme d’écriture des transactionsSchéma du mécanisme d’écriture des transactions
PostgreSQL, administration alphorm.com™©
Gestion des logs
Les logs binaires ou WALLes logs binaires ou WAL
CaractéristiquesCaractéristiques
•• Chaque segment WAL a une taille de 16 MoChaque segment WAL a une taille de 16 Mo
•• Chaque segment est divisé en pages de 8 KoChaque segment est divisé en pages de 8 Ko
•• Les fichiers sont nommés suivant un nombre qui est toujoursLes fichiers sont nommés suivant un nombre qui est toujours
incrémenté et qui commence à 000000010000000000000000incrémenté et qui commence à 000000010000000000000000
PostgreSQL, administration alphorm.com™©
incrémenté et qui commence à 000000010000000000000000incrémenté et qui commence à 000000010000000000000000
•• Les segments WAL sont stockés dans le répertoireLes segments WAL sont stockés dans le répertoire pg_xlogpg_xlog
•• Le serveur peut en créer plusieurs si nécessaireLe serveur peut en créer plusieurs si nécessaire
Gestion des logs
Les logs binaires ou WALLes logs binaires ou WAL
Paramètres de configurationParamètres de configuration
•• fsync(boolean)fsync(boolean) permet de forcer l’écriture des fichiers de tracespermet de forcer l’écriture des fichiers de traces
binairesbinaires
•• checkpoint_segment(entier)checkpoint_segment(entier) indique l’écart maximum entreindique l’écart maximum entre
deux points de contrôledeux points de contrôle
PostgreSQL, administration alphorm.com™©
deux points de contrôledeux points de contrôle
•• checkpoint_timeout(entier)checkpoint_timeout(entier) indique le temps maximal, enindique le temps maximal, en
seconde, entre deux points de contrôleseconde, entre deux points de contrôle
•• checkpoint_warning(entier)checkpoint_warning(entier) déclenche l’envoi de messagesdéclenche l’envoi de messages
dans les traces d’activités lorsque les points de contrôles sontdans les traces d’activités lorsque les points de contrôles sont
trop fréquentstrop fréquents
•• wal_bufferwal_buffer cache des logs binairescache des logs binaires
Prochain module :
Les logs PostgreSQL
PostgreSQL, administration alphorm.com™©
Les logs PostgreSQL
Le cache de données
PostgreSQL
PostgreSQL, administration alphorm.com™©
Site : http://alphorm.com
Blog : http://alphorm.com/blog
Forum : http://alphorm.com/forum
Noureddine DRISSI
Expert consultant bases de données
Contact : ndform@valneo-xi.fr
PostgreSQL
Le cache de données
Le cache PostgreSQLLe cache PostgreSQL
shared_buffersshared_buffers zone de travail principale partagéezone de travail principale partagée
wal_bufferswal_buffers cache pour les transactions WAL partagécache pour les transactions WAL partagé
temp_bufferstemp_buffers cache pour les tables temporaire localecache pour les tables temporaire locale
work_memwork_mem cache pour les opérations de triscache pour les opérations de tris
PostgreSQL, administration alphorm.com™©
maintenance_work_memmaintenance_work_mem cache pour les opérations de maintenancecache pour les opérations de maintenance
Le cache de données
Le cache PostgreSQLLe cache PostgreSQL
PostgreSQL, administration alphorm.com™©
Prochain module :
Gestion de la sécurité sous
PostgreSQL, administration alphorm.com™©
Gestion de la sécurité sous
PostgreSQL
Sauvegarde et Restauration
sous PostgreSQL
PostgreSQL, administration alphorm.com™©
Site : http://alphorm.com
Blog : http://alphorm.com/blog
Forum : http://alphorm.com/forum
Noureddine DRISSI
Expert consultant bases de données
Contact : ndform@valneo-xi.fr
Import Export
Sauvegarde et restauration
Trois stratégies de sauvegardes possiblesTrois stratégies de sauvegardes possibles
Export à partir d'une base de données ou une instance active enExport à partir d'une base de données ou une instance active en
utilisant le programmeutilisant le programme pg_dumppg_dump etet pg_dumpallpg_dumpall
Sauvegarde des fichiers de l'instance lorsqu'elle est arrêtéeSauvegarde des fichiers de l'instance lorsqu'elle est arrêtée
(sauvegarde à froid)(sauvegarde à froid)
Sauvegarde à chaud en utilisant des journaux des transactionsSauvegarde à chaud en utilisant des journaux des transactions
PostgreSQL, administration alphorm.com™©
Sauvegarde et restauration
Export avecExport avec pg_dumppg_dump
Permet de transférer rapidement des données entre bases dePermet de transférer rapidement des données entre bases de
donnéesdonnées
Supporte trois types de format, dont le SQLSupporte trois types de format, dont le SQL
Utilise les mêmes options de connexion queUtilise les mêmes options de connexion que psqlpsql
Simple d'emploi..Simple d'emploi..
PostgreSQL, administration alphorm.com™©
Simple d'emploi..Simple d'emploi..
Sauvegarde et restauration
Export avecExport avec pg_dumppg_dump
Trois types de formatsTrois types de formats
•• Format texteFormat texte SQLSQL (par défaut), les données seront restaurées(par défaut), les données seront restaurées
avec psqlavec psql
•• FormatFormat tartar, les données seront restaurées avec pg_restore, les données seront restaurées avec pg_restore
•• FormatFormat dumpdump spécifique, restauration avec pg_restorespécifique, restauration avec pg_restore
PostgreSQL, administration alphorm.com™©
•• FormatFormat dumpdump spécifique, restauration avec pg_restorespécifique, restauration avec pg_restore
Sauvegarde et restauration
Export avecExport avec pg_dumpallpg_dumpall
PermetPermet d’exporter toutes les bases de données d’une instanced’exporter toutes les bases de données d’une instance
Un seul type de format d’export SQLUn seul type de format d’export SQL
PostgreSQL, administration alphorm.com™©
Sauvegarde et Restauration
sous PostgreSQL
PostgreSQL, administration alphorm.com™©
Site : http://alphorm.com
Blog : http://alphorm.com/blog
Forum : http://alphorm.com/forum
Noureddine DRISSI
Expert consultant bases de données
Contact : ndform@valneo-xi.fr
Sauvegarde à froid
Sauvegarde et restauration
Sauvegarde à froidSauvegarde à froid
Arrêt de l’instanceArrêt de l’instance
Sauvegarde de la racine de l’instance $PGDATA au niveau systèmeSauvegarde de la racine de l’instance $PGDATA au niveau système
Sauvegarde des répertoires des espaces de tables au niveau systèmeSauvegarde des répertoires des espaces de tables au niveau système
PostgreSQL, administration alphorm.com™©
Sauvegarde et restauration
Restauration à partir d’une sauvegarde à froidRestauration à partir d’une sauvegarde à froid
Arrêt de l’instanceArrêt de l’instance
Suppression de tous les répertoires et fichiers de l’instanceSuppression de tous les répertoires et fichiers de l’instance
•• $PGDATA$PGDATA
•• Espaces de tableEspaces de table
PostgreSQL, administration alphorm.com™©
Restaurer les fichiers au niveau systèmeRestaurer les fichiers au niveau système
Démarrer l’instanceDémarrer l’instance
Sauvegarde et Restauration
sous PostgreSQL
PostgreSQL, administration alphorm.com™©
Site : http://alphorm.com
Blog : http://alphorm.com/blog
Forum : http://alphorm.com/forum
Noureddine DRISSI
Expert consultant bases de données
Contact : ndform@valneo-xi.fr
Sauvegarde à chaud
Sauvegarde et restauration
Sauvegarde à chaudSauvegarde à chaud
PréPré--requisrequis
•• Activer l'archivage des journaux des transactionsActiver l'archivage des journaux des transactions
- wal_level = archive
- archive_mode = on
PostgreSQL, administration alphorm.com™©
- archive_command = ‘cp %p /archives/%f’
•• Exécuter régulièrement une sauvegarde complète de l'instance.Exécuter régulièrement une sauvegarde complète de l'instance.
Sauvegarde et restauration
Sauvegarde à chaudSauvegarde à chaud
Mise en oeuvreMise en oeuvre
•• Exécution de la function SQLExécution de la function SQL pg_start_backuppg_start_backup
•• Sauvegarde des fichiers de l'instances à l'exception duSauvegarde des fichiers de l'instances à l'exception du
répertoire pg_xlogrépertoire pg_xlog
•• Exécution de la fonctionExécution de la fonction pg_stop_backuppg_stop_backup
PostgreSQL, administration alphorm.com™©
•• Exécution de la fonctionExécution de la fonction pg_stop_backuppg_stop_backup
- Une étiquette est conservée dans le fichier
$PGDATA/backup_label.
- Un fichier
$PGDATA/pg_xlog/000000010000x.xxxxxx.backup est créé
pour indiquer le dernier journal utilisé avant la sauvegarde.
Sauvegarde et restauration
Sauvegarde à chaudSauvegarde à chaud
RestaurationRestauration
• Si disponibles, mettre de côté les journaux du répertoire $PGDATA/pg_xlog
• Supprimer tous les fichiers et répertoires de l'instance et ses espaces de tables
• Restaurer la sauvegarde complète en prenant garde à rétablir les permissions
• Supprimer les fichiers dans $PGDATA/pg_xlog ou recréer ce répertoire
PostgreSQL, administration alphorm.com™©
• S'assurer que le répertoire $PGDATA/pg_xlog/archive_status existe
• Recopier les journaux éventuellement mis de côté dans $PGDATA/pg_xlog
• Créer un fichier recovery.conf dans $PGDATA à partir de recovery.conf.sample
• Démarrer PostgreSQL en s'assurant que les utilisateurs ne pourront se
connecter
Sauvegarde et restauration
Sauvegarde à chaudSauvegarde à chaud
RestaurationRestauration
•• Le fichierLe fichier recovery.confrecovery.conf
- restore_command = 'cp /archive/%f %p'
- recovery_target_time = '2008-04-23 11:20:55 EST'
PostgreSQL, administration alphorm.com™©
Sauvegarde et restauration
Les étapes de notre TPLes étapes de notre TP
Je met l’instance en mode ARCHIVELOGJe met l’instance en mode ARCHIVELOG
Je lance une transactionJe lance une transaction T1T1 insertinsert
Je démarre Le mode sauvegarde à chaud sousJe démarre Le mode sauvegarde à chaud sous PostgreSQLPostgreSQL selectselect pg_start_backuppg_start_backup()()
Je réalise la sauvegarde au niveau du système d’exploitationJe réalise la sauvegarde au niveau du système d’exploitation tartar
J’arrête le mode sauvegarde à chaudJ’arrête le mode sauvegarde à chaud selectselect pg_stop_backuppg_stop_backup()()
Je lance une transactionJe lance une transaction T2T2 insertinsert
PostgreSQL, administration alphorm.com™©
Je lance une transactionJe lance une transaction T2T2 insertinsert
Je bascule vers un nouveau fichier journalJe bascule vers un nouveau fichier journal selectselect pg_switch_xlogpg_switch_xlog
Je lance une transactionJe lance une transaction T3T3 insertinsert
JeJe bascule vers un nouveau fichierbascule vers un nouveau fichier journaljournal selectselect pg_switch_xlogpg_switch_xlog
Je lance une transactionJe lance une transaction T4T4 insertinsert
JeJe bascule vers un nouveau fichierbascule vers un nouveau fichier journaljournal selectselect pg_switch_xlogpg_switch_xlog
Prochain module :
Administrer au quotidien PostgreSQL
PostgreSQL, administration alphorm.com™©
Administrer au quotidien PostgreSQL
Administrer au quotidien
PostgreSQL
PostgreSQL, administration alphorm.com™©
Site : http://alphorm.com
Blog : http://alphorm.com/blog
Forum : http://alphorm.com/forum
Noureddine DRISSI
Expert consultant bases de données
Contact : ndform@valneo-xi.fr
Les bases de données
Administrer au quotidien
Pour chaque instance il existe les basesPour chaque instance il existe les bases
postgrespostgres
template0template0
template1template1
•• Les relations (tables, indexes, etc.) sont stockées dans les basesLes relations (tables, indexes, etc.) sont stockées dans les bases
de donnéesde données
PostgreSQL, administration alphorm.com™©
de donnéesde données
•• Pour chaque base, il existe au mois le schémaPour chaque base, il existe au mois le schéma publicpublic et leset les
catalogues (catalogues (information_schemainformation_schema etet pg_catalogpg_catalog))
Administrer au quotidien
Les relationsLes relations
Désigne des objets (tables, indexes, sequences)Désigne des objets (tables, indexes, sequences)
•• Les données de chaque relation sont stockées dans un fichierLes données de chaque relation sont stockées dans un fichier
identifié par son OIDidentifié par son OID
-- $PGDATA/base/oid_bdd/filenode_relation$PGDATA/base/oid_bdd/filenode_relation
•• Exception pour la base de données postgresException pour la base de données postgres
PostgreSQL, administration alphorm.com™©
•• Exception pour la base de données postgresException pour la base de données postgres
-- $PGDATA/global$PGDATA/global
Administrer au quotidien
Création des bases de donnéesCréation des bases de données
SyntaxeSyntaxe
CREATE DATABASE nom
[ [ WITH ] [ OWNER [=] utilisateur ] [ TEMPLATE [=] modèle ]
[ ENCODING [=] encodage ] [ TABLESPACE [=] espace_de_tables ]
PostgreSQL, administration alphorm.com™©
Le propriétaire par défaut est l'utilisateur connectéLe propriétaire par défaut est l'utilisateur connecté
La base de données modèle par défaut estLa base de données modèle par défaut est template1template1
L'encodage par défaut est celui de l'instanceL'encodage par défaut est celui de l'instance
L'espace de tables par défaut estL'espace de tables par défaut est pg_defaultpg_default
Disposer du droit createdb pour pouvoir créer une baseDisposer du droit createdb pour pouvoir créer une base
Administrer au quotidien
Suppression des bases de donnéesSuppression des bases de données
SyntaxeSyntaxe
DROP DATABASE [ IF EXISTS] nom
Aucune connexion sur la base de données à supprimerAucune connexion sur la base de données à supprimer
Seul l’administrateur ou le propriétaire peut supprimer une base de donnéesSeul l’administrateur ou le propriétaire peut supprimer une base de données
PostgreSQL, administration alphorm.com™©
Seul l’administrateur ou le propriétaire peut supprimer une base de donnéesSeul l’administrateur ou le propriétaire peut supprimer une base de données
Administrer au quotidien
Les schémasLes schémas
Espace de nom logiqueEspace de nom logique
Permet d’avoir plusieurs objets portant le même nom dans unePermet d’avoir plusieurs objets portant le même nom dans une
même base de donnéesmême base de données
Les objets sont accessible en préfixant le nom de l’objet par le nomLes objets sont accessible en préfixant le nom de l’objet par le nom
du schéma « schéma.objet »du schéma « schéma.objet »
PostgreSQL, administration alphorm.com™©
La variableLa variable search_pathsearch_path est utilisée pour la recherche dans lesest utilisée pour la recherche dans les
schémasschémas
Administrer au quotidien
Création des schémasCréation des schémas
SyntaxeSyntaxe
CREATE SCHEMA nom [ AUTHORIZATION utilisateur ]
Le propriétaire par défaut est l'utilisateur connectéLe propriétaire par défaut est l'utilisateur connecté
PostgreSQL, administration alphorm.com™©
Le propriétaire par défaut est l'utilisateur connectéLe propriétaire par défaut est l'utilisateur connecté
Pour créer un schémaPour créer un schéma
•• Être administrateurÊtre administrateur
•• Avoir le privilègeAvoir le privilège createcreate sur la base de données ciblesur la base de données cible
Administrer au quotidien
Suppression des schémasSuppression des schémas
SyntaxeSyntaxe
DROP SCHEMA [ IF EXISTS ] nom [ CASCADE ]
Seul l’administrateur ou le propriétaire peu supprimer un schémaSeul l’administrateur ou le propriétaire peu supprimer un schéma
L’option CASCADE permet de supprimer un schéma qui possède des objetsL’option CASCADE permet de supprimer un schéma qui possède des objets
PostgreSQL, administration alphorm.com™©
L’option CASCADE permet de supprimer un schéma qui possède des objetsL’option CASCADE permet de supprimer un schéma qui possède des objets
Administrer au quotidien
Suppression des schémasSuppression des schémas
SyntaxeSyntaxe
DROP SCHEMA [ IF EXISTS ] nom [ CASCADE ]
Seul l’administrateur ou le propriétaire peu supprimer un schémaSeul l’administrateur ou le propriétaire peu supprimer un schéma
L’option CASCADE permet de supprimer un schéma qui possède des objetsL’option CASCADE permet de supprimer un schéma qui possède des objets
PostgreSQL, administration alphorm.com™©
L’option CASCADE permet de supprimer un schéma qui possède des objetsL’option CASCADE permet de supprimer un schéma qui possède des objets

Contenu connexe

Tendances

Jp perez correction quizz oracle mairie de paris acma 2007 2008
Jp perez correction quizz oracle mairie de paris acma 2007 2008Jp perez correction quizz oracle mairie de paris acma 2007 2008
Jp perez correction quizz oracle mairie de paris acma 2007 2008
MRamo2s
 
Big data: NoSQL comme solution
Big data: NoSQL comme solutionBig data: NoSQL comme solution
Big data: NoSQL comme solution
JEMLI Fathi
 
Découverte de Redis
Découverte de RedisDécouverte de Redis
Découverte de Redis
JEMLI Fathi
 

Tendances (20)

alphorm.com - Formation Oracle Database 11g DBA 1 (1Z0-052)
alphorm.com - Formation Oracle Database 11g DBA 1 (1Z0-052)alphorm.com - Formation Oracle Database 11g DBA 1 (1Z0-052)
alphorm.com - Formation Oracle Database 11g DBA 1 (1Z0-052)
 
BigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataBigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big Data
 
Hadoop Hbase - Introduction
Hadoop Hbase - IntroductionHadoop Hbase - Introduction
Hadoop Hbase - Introduction
 
introduction à MongoDB
introduction à MongoDBintroduction à MongoDB
introduction à MongoDB
 
Cours Big Data Chap1
Cours Big Data Chap1Cours Big Data Chap1
Cours Big Data Chap1
 
Jp perez correction quizz oracle mairie de paris acma 2007 2008
Jp perez correction quizz oracle mairie de paris acma 2007 2008Jp perez correction quizz oracle mairie de paris acma 2007 2008
Jp perez correction quizz oracle mairie de paris acma 2007 2008
 
Cours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkCours Big Data Chap4 - Spark
Cours Big Data Chap4 - Spark
 
eServices-Tp1: Web Services
eServices-Tp1: Web ServiceseServices-Tp1: Web Services
eServices-Tp1: Web Services
 
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka StreamsTraitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
 
Big data: NoSQL comme solution
Big data: NoSQL comme solutionBig data: NoSQL comme solution
Big data: NoSQL comme solution
 
BigData_Chp5: Putting it all together
BigData_Chp5: Putting it all togetherBigData_Chp5: Putting it all together
BigData_Chp5: Putting it all together
 
Cours Base de données relationnelles
Cours Base de données relationnellesCours Base de données relationnelles
Cours Base de données relationnelles
 
Alphorm.com Formation le langage SQL
Alphorm.com  Formation le langage SQLAlphorm.com  Formation le langage SQL
Alphorm.com Formation le langage SQL
 
Presentation sql
Presentation sqlPresentation sql
Presentation sql
 
TP2 Big Data HBase
TP2 Big Data HBaseTP2 Big Data HBase
TP2 Big Data HBase
 
BigData_Chp4: NOSQL
BigData_Chp4: NOSQLBigData_Chp4: NOSQL
BigData_Chp4: NOSQL
 
Découverte de Redis
Découverte de RedisDécouverte de Redis
Découverte de Redis
 
Cours Big Data Chap5
Cours Big Data Chap5Cours Big Data Chap5
Cours Big Data Chap5
 
Introduction à DevOps
Introduction à DevOpsIntroduction à DevOps
Introduction à DevOps
 
BigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-ReduceBigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-Reduce
 

En vedette

En vedette (20)

Alphorm.com Formation RDS Windows Server 2008 R2 - Guide du consultant
Alphorm.com Formation  RDS Windows Server 2008 R2 - Guide du consultantAlphorm.com Formation  RDS Windows Server 2008 R2 - Guide du consultant
Alphorm.com Formation RDS Windows Server 2008 R2 - Guide du consultant
 
Alphorm.com formation-GNS3
Alphorm.com formation-GNS3Alphorm.com formation-GNS3
Alphorm.com formation-GNS3
 
alphorm.com - Formation SQL Server 2012 (70-462)
alphorm.com - Formation SQL Server 2012 (70-462)alphorm.com - Formation SQL Server 2012 (70-462)
alphorm.com - Formation SQL Server 2012 (70-462)
 
Alphorm.com Formation MySQL Administration(1Z0-883)
Alphorm.com   Formation MySQL Administration(1Z0-883)Alphorm.com   Formation MySQL Administration(1Z0-883)
Alphorm.com Formation MySQL Administration(1Z0-883)
 
Alphorm.com Formation Microsoft SQL Server 2016 Business Intelligence (SSIS)
Alphorm.com Formation Microsoft SQL Server 2016 Business Intelligence (SSIS)Alphorm.com Formation Microsoft SQL Server 2016 Business Intelligence (SSIS)
Alphorm.com Formation Microsoft SQL Server 2016 Business Intelligence (SSIS)
 
Alphorm.com Formation PL/SQL
Alphorm.com Formation PL/SQLAlphorm.com Formation PL/SQL
Alphorm.com Formation PL/SQL
 
Alphorm.com Formation PostgreSQL, la Haute Disponibilité
Alphorm.com Formation PostgreSQL, la Haute DisponibilitéAlphorm.com Formation PostgreSQL, la Haute Disponibilité
Alphorm.com Formation PostgreSQL, la Haute Disponibilité
 
Alphorm.com Formation ETL Talend Open Studio (1/2) - Les fondamentaux
Alphorm.com Formation ETL Talend Open Studio (1/2) - Les fondamentauxAlphorm.com Formation ETL Talend Open Studio (1/2) - Les fondamentaux
Alphorm.com Formation ETL Talend Open Studio (1/2) - Les fondamentaux
 
Petit Déjeuner Talend/SQLI
Petit Déjeuner Talend/SQLIPetit Déjeuner Talend/SQLI
Petit Déjeuner Talend/SQLI
 
Talend
TalendTalend
Talend
 
Certificate Talend
Certificate TalendCertificate Talend
Certificate Talend
 
Présentation Talend Open Studio
Présentation Talend Open StudioPrésentation Talend Open Studio
Présentation Talend Open Studio
 
[French] Matinale du Big Data Talend
[French] Matinale du Big Data Talend[French] Matinale du Big Data Talend
[French] Matinale du Big Data Talend
 
Webinar Smile et Talend : Faites communiquer vos applications en temps réel
Webinar Smile et Talend  : Faites communiquer vos applications en temps réelWebinar Smile et Talend  : Faites communiquer vos applications en temps réel
Webinar Smile et Talend : Faites communiquer vos applications en temps réel
 
Guide talend
Guide talendGuide talend
Guide talend
 
Le processus ETL (Extraction, Transformation, Chargement)
Le processus ETL (Extraction, Transformation, Chargement)Le processus ETL (Extraction, Transformation, Chargement)
Le processus ETL (Extraction, Transformation, Chargement)
 
Integration de donnees_etl
Integration de donnees_etlIntegration de donnees_etl
Integration de donnees_etl
 
Intégration des données avec Talend ETL
Intégration des données avec Talend ETLIntégration des données avec Talend ETL
Intégration des données avec Talend ETL
 
Alphorm.com Formation Les solutions de Haute Disponibilité sous Windows Serv...
Alphorm.com Formation Les solutions de  Haute Disponibilité sous Windows Serv...Alphorm.com Formation Les solutions de  Haute Disponibilité sous Windows Serv...
Alphorm.com Formation Les solutions de Haute Disponibilité sous Windows Serv...
 
Alphorm.com Formation les fondamentaux de Matlab 2013 A
Alphorm.com  Formation les fondamentaux de Matlab 2013 AAlphorm.com  Formation les fondamentaux de Matlab 2013 A
Alphorm.com Formation les fondamentaux de Matlab 2013 A
 

Similaire à alphorm.com - Formation PostgreSQL administration

Monter des environnements dev test efficaces avec Windows Azure
Monter des environnements dev test efficaces avec Windows AzureMonter des environnements dev test efficaces avec Windows Azure
Monter des environnements dev test efficaces avec Windows Azure
Microsoft Technet France
 
Alphorm.com Formation Exchange 2016, Configuration Avancée
Alphorm.com Formation Exchange 2016, Configuration AvancéeAlphorm.com Formation Exchange 2016, Configuration Avancée
Alphorm.com Formation Exchange 2016, Configuration Avancée
Alphorm
 
Alphorm.com Support de la Formation PHP MySQL
Alphorm.com Support de la Formation PHP MySQLAlphorm.com Support de la Formation PHP MySQL
Alphorm.com Support de la Formation PHP MySQL
Alphorm
 

Similaire à alphorm.com - Formation PostgreSQL administration (20)

Alphorm.com-Formation MongoDB Administration
Alphorm.com-Formation MongoDB AdministrationAlphorm.com-Formation MongoDB Administration
Alphorm.com-Formation MongoDB Administration
 
Alphorm.com Formation PCSoft(version20) GDS et Centres de contrôle
Alphorm.com Formation PCSoft(version20) GDS et Centres de contrôleAlphorm.com Formation PCSoft(version20) GDS et Centres de contrôle
Alphorm.com Formation PCSoft(version20) GDS et Centres de contrôle
 
Azure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaAzure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmedia
 
Réussir une montée en charge avec MongoDB
Réussir une montée en charge avec MongoDBRéussir une montée en charge avec MongoDB
Réussir une montée en charge avec MongoDB
 
Initiation à Express js
Initiation à Express jsInitiation à Express js
Initiation à Express js
 
Les bonnes pratiques pour migrer d'Oracle vers Postgres
Les bonnes pratiques pour migrer d'Oracle vers PostgresLes bonnes pratiques pour migrer d'Oracle vers Postgres
Les bonnes pratiques pour migrer d'Oracle vers Postgres
 
Rex docker en production meeutp-docker-nantes
Rex docker en production meeutp-docker-nantesRex docker en production meeutp-docker-nantes
Rex docker en production meeutp-docker-nantes
 
Alphorm.com Formation Palo Alto : Firewall Troubleshooting
Alphorm.com Formation Palo Alto : Firewall TroubleshootingAlphorm.com Formation Palo Alto : Firewall Troubleshooting
Alphorm.com Formation Palo Alto : Firewall Troubleshooting
 
Réplication de base de données oracle avec Golden Gate
Réplication de base de données oracle avec Golden GateRéplication de base de données oracle avec Golden Gate
Réplication de base de données oracle avec Golden Gate
 
Alphorm.com Formation Certification NSE4 - Fortinet Fortigate Infrastructure 6.x
Alphorm.com Formation Certification NSE4 - Fortinet Fortigate Infrastructure 6.xAlphorm.com Formation Certification NSE4 - Fortinet Fortigate Infrastructure 6.x
Alphorm.com Formation Certification NSE4 - Fortinet Fortigate Infrastructure 6.x
 
Alphorm.com Formation Microsoft Hyperconvergence
Alphorm.com Formation Microsoft HyperconvergenceAlphorm.com Formation Microsoft Hyperconvergence
Alphorm.com Formation Microsoft Hyperconvergence
 
alphorm.com - Formation proxmoxVE 3
alphorm.com - Formation proxmoxVE 3alphorm.com - Formation proxmoxVE 3
alphorm.com - Formation proxmoxVE 3
 
Monter des environnements dev test efficaces avec Windows Azure
Monter des environnements dev test efficaces avec Windows AzureMonter des environnements dev test efficaces avec Windows Azure
Monter des environnements dev test efficaces avec Windows Azure
 
Rails 3 au Djangocong
Rails 3 au DjangocongRails 3 au Djangocong
Rails 3 au Djangocong
 
Alphorm.com Formation Exchange 2016, Configuration Avancée
Alphorm.com Formation Exchange 2016, Configuration AvancéeAlphorm.com Formation Exchange 2016, Configuration Avancée
Alphorm.com Formation Exchange 2016, Configuration Avancée
 
Utilisation optimale et professionnelle de PHP
Utilisation optimale et professionnelle de PHPUtilisation optimale et professionnelle de PHP
Utilisation optimale et professionnelle de PHP
 
Alphorm.com Support de la Formation PHP MySQL
Alphorm.com Support de la Formation PHP MySQLAlphorm.com Support de la Formation PHP MySQL
Alphorm.com Support de la Formation PHP MySQL
 
Une gestion efficace du changement de vos structures de données relationnelle...
Une gestion efficace du changement de vos structures de données relationnelle...Une gestion efficace du changement de vos structures de données relationnelle...
Une gestion efficace du changement de vos structures de données relationnelle...
 
SQLSaturday Paris 2014 - Et hop, ma base migre dans Azure
SQLSaturday Paris 2014 - Et hop, ma base migre dans AzureSQLSaturday Paris 2014 - Et hop, ma base migre dans Azure
SQLSaturday Paris 2014 - Et hop, ma base migre dans Azure
 
alphorm.com - Formation Exchange Server 2013 (70-341)
alphorm.com - Formation Exchange Server 2013 (70-341)alphorm.com - Formation Exchange Server 2013 (70-341)
alphorm.com - Formation Exchange Server 2013 (70-341)
 

Plus de Alphorm

Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...
Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...
Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...
Alphorm
 
Alphorm.com Formation Vue JS 3 : Créer une application de A à Z
Alphorm.com Formation Vue JS 3 : Créer une application de A à ZAlphorm.com Formation Vue JS 3 : Créer une application de A à Z
Alphorm.com Formation Vue JS 3 : Créer une application de A à Z
Alphorm
 
Alphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style Isométrique
Alphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style IsométriqueAlphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style Isométrique
Alphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style Isométrique
Alphorm
 
Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...
Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...
Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...
Alphorm
 
Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...
Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...
Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...
Alphorm
 
Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...
Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...
Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...
Alphorm
 
Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...
Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...
Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...
Alphorm
 
Alphorm.com Formation Vue JS 3 : Exploiter la Composition API
Alphorm.com Formation Vue JS 3 : Exploiter la Composition APIAlphorm.com Formation Vue JS 3 : Exploiter la Composition API
Alphorm.com Formation Vue JS 3 : Exploiter la Composition API
Alphorm
 

Plus de Alphorm (20)

Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...
Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...
Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...
 
Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...
Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...
Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...
 
Alphorm.com Formation CCNP ENCOR 350-401 (6of8) : Sécurité
Alphorm.com Formation CCNP ENCOR 350-401 (6of8) : SécuritéAlphorm.com Formation CCNP ENCOR 350-401 (6of8) : Sécurité
Alphorm.com Formation CCNP ENCOR 350-401 (6of8) : Sécurité
 
Alphorm.com Formation Vue JS 3 : Créer une application de A à Z
Alphorm.com Formation Vue JS 3 : Créer une application de A à ZAlphorm.com Formation Vue JS 3 : Créer une application de A à Z
Alphorm.com Formation Vue JS 3 : Créer une application de A à Z
 
Alphorm.com Formation Blockchain : Maîtriser la Conception d'Architectures
Alphorm.com Formation Blockchain : Maîtriser la Conception d'ArchitecturesAlphorm.com Formation Blockchain : Maîtriser la Conception d'Architectures
Alphorm.com Formation Blockchain : Maîtriser la Conception d'Architectures
 
Alphorm.com Formation Sage : Gestion Commerciale
Alphorm.com Formation Sage : Gestion CommercialeAlphorm.com Formation Sage : Gestion Commerciale
Alphorm.com Formation Sage : Gestion Commerciale
 
Alphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objet
Alphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objetAlphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objet
Alphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objet
 
Alphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord Interactif
Alphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord InteractifAlphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord Interactif
Alphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord Interactif
 
Alphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style Isométrique
Alphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style IsométriqueAlphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style Isométrique
Alphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style Isométrique
 
Alphorm.com Formation VMware vSphere 7 : La Mise à Niveau
Alphorm.com Formation VMware vSphere 7 : La Mise à NiveauAlphorm.com Formation VMware vSphere 7 : La Mise à Niveau
Alphorm.com Formation VMware vSphere 7 : La Mise à Niveau
 
Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...
Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...
Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...
 
Alphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes Mobiles
Alphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes MobilesAlphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes Mobiles
Alphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes Mobiles
 
Alphorm.com Formation PHP 8 : Les bases de la POO
Alphorm.com Formation PHP 8 : Les bases de la POOAlphorm.com Formation PHP 8 : Les bases de la POO
Alphorm.com Formation PHP 8 : Les bases de la POO
 
Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...
Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...
Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...
 
Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...
Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...
Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...
 
Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...
Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...
Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...
 
Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...
Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...
Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...
 
Alphorm.com Formation Architecture Microservices : Jenkins et SpringBoot
Alphorm.com Formation Architecture Microservices : Jenkins et SpringBootAlphorm.com Formation Architecture Microservices : Jenkins et SpringBoot
Alphorm.com Formation Architecture Microservices : Jenkins et SpringBoot
 
Alphorm.com Formation Active Directory 2022 : Multi Sites et Services
Alphorm.com Formation Active Directory 2022 : Multi Sites et ServicesAlphorm.com Formation Active Directory 2022 : Multi Sites et Services
Alphorm.com Formation Active Directory 2022 : Multi Sites et Services
 
Alphorm.com Formation Vue JS 3 : Exploiter la Composition API
Alphorm.com Formation Vue JS 3 : Exploiter la Composition APIAlphorm.com Formation Vue JS 3 : Exploiter la Composition API
Alphorm.com Formation Vue JS 3 : Exploiter la Composition API
 

alphorm.com - Formation PostgreSQL administration

  • 1. Présentation de la formation PostgreSQL, administration alphorm.com™© Site : http://alphorm.com Blog : http://alphorm.com/blog Forum : http://alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : ndform@valneo-xi.fr formation
  • 2. Le formateur Noureddine DRISSI Spécialisé dans la base de données 15 années d’expérience sur tous les SGBDR du marché (SQL Server, Oracle, PostgreSQL, Mysql, DB2) Issue de l’environnement bancaire PostgreSQL, administration alphorm.com™© ndform@valneo-xi.fr
  • 3. Connaissances préalables Connaissances de base du système d’exploitation Linux ou Windows Expérience professionnelle de SQL Expérience professionnelle des bases de données relationnelles Expérience en matière de conception de bases de données PostgreSQL, administration alphorm.com™© Expérience en matière de conception de bases de données
  • 4. A propos de ce cours Objectifs Comprendre et maîtriser l’architecture de PostgreSQL; Administrer au quotidien PostgreSQL; Sauvegarder et restaurer des bases de données ou des instances PostgreSQL; Gérer la sécurité; PostgreSQL, administration alphorm.com™© Gérer la sécurité; Analyser et comprendre PostgreSQL; Comprendre et optimiser l’architecture de PostgreSQL.
  • 5. Plan du cours Module 1: Présentation de PostgreSQL Module 2: Installation de PostgreSQL Module 3: Gestion des instances sous PostgreSQL Module 4: Les outils d’administration sous PostgreSQL Module 5: La gestion des Module 9: Sauvegarde et restauration Module 10: Administrer au quotidien PostgreSQL PostgreSQL, administration alphorm.com™© Module 5: La gestion des transactions Module 6: Les logs PostgreSQL Module 7: Le cache de données PostgreSQL Module 8: Gestion de la sécurité
  • 6. Qu’est-ce qu’un SGBDR ? PostgreSQL est un Système de Gestion de Base de Données Relationnelle (SGBDR) PostgreSQL est chargé de : stocker les données, vérifier les contraintes d’intégrité définies, garantir la cohérence des données qu’il stocke, même en cas de panne (arrêt brutal) du système, PostgreSQL, administration alphorm.com™© du système, assurer les relations entre les données définies par les utilisateurs.
  • 7. Environnement du cours SRVPOSTGRESQL01 5432 InstanceInstance PostgreSQL, administration alphorm.com™© 5432 5433 CLIENT-SQL01 psql InstanceInstance
  • 8. Introduction à la base Gescom Dans les ateliers pratique de ce cours, nous allons travailler avec une base de données modèle que l’on nommera GESCOM. Au fil des ateliers pratique, nous allons ajouter des fonctionnalités à la base de données GESCOM. Cette base de données servira de fil conducteur pour l’ensemble des démonstration (sauvegarde, transfert, PostgreSQL, administration alphorm.com™© Cette base de données servira de fil conducteur pour l’ensemble des démonstration (sauvegarde, transfert, fichiers data, réplication, optimisation, etc.)
  • 9. Introduction à la base Gescom Base: GESCOM Schéma: FACT InstanceInstance Tables Vues PostgreSQL, administration alphorm.com™© Indexes séquences …
  • 10. Introduction au modèle de données PostgreSQL, administration alphorm.com™©
  • 12. Présentation de PostgreSQL PostgreSQL, administration alphorm.com™© Site : http://alphorm.com Blog : http://alphorm.com/blog Forum : http://alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : ndform@valneo-xi.fr PostgreSQL
  • 13. Présentation de PostgreSQL • Présentation Système de gestion de bases de données Fondé sur POSTGRES Supporte une grande partie du standard SQL Licence libérale PostgreSQL, administration alphorm.com™© Programme écrit à l'université de Californie à Berkeley Base de données Open Source de référence Modèle client/serveur
  • 14. Présentation de PostgreSQL Les caractéristiques SGBDR Supporte le langage SQL Open source Respect de la norme ACID PostgreSQL, administration alphorm.com™© Fonctionnalités • respect de la norme SQL92, requêtes complexes ; • clés étrangères ; • plusieurs langages procéduraux, triggers, procédures et fonctions ; • Déclencheurs, vues ;
  • 15. Présentation de PostgreSQL Les versions les plus importantes 1995: V 1.0 le code devient modifiable (évolution de la licence) 2005: V 8.0 natif Windows, savepoints, PITR, tablespaces, prêt pour l'entreprise 2010: V 9.2 réplication, scalabilité PostgreSQL, administration alphorm.com™©
  • 16. Présentation de PostgreSQL La communauté PostgreSQL Le site pgFoundry.org • Héberge de nombreux projets développés par des équipes indépendantes - connecteurs pour les différents langages ; - langages procéduraux ; outils d'aide à l'administration ; PostgreSQL, administration alphorm.com™© - outils d'aide à l'administration ; - logiciels pour la haute disponibilité (réplication, gestion des connexions, etc.).
  • 17. Présentation de PostgreSQL • Les atouts Un projet de grande ampleur Un SGBD complet Une communauté réactive et internationale Un large panel de projets complémentaires PostgreSQL, administration alphorm.com™© Une solution stable, ouverte et performante Licence BSD Coût nul Code source disponible Aucune contrainte de redistribution
  • 18. Présentation de PostgreSQL PostgreSQL VS les autres SGBDR PostgreSQL Mysql Oracle MSSQL Tablespace NON Partitionnement Emulé INNODB Vues matérialisées PostgreSQL, administration alphorm.com™© Vues matérialisées Emulé NON Norme ACID INNODB Intégrité référentielles INNODB Langage Procédural Plusieurs Curseurs Limité
  • 19. Présentation de PostgreSQL Conclusion SGBDR performant Montée en puissance et en charge progressive Gestion des gros volumes de données Gestion des performances PostgreSQL, administration alphorm.com™© • Tuning matériel • Tuning logiciel • Optimiseur de requêtes
  • 20. Prochain module : Installation de PostgreSQL PostgreSQL, administration alphorm.com™© Installation de PostgreSQL
  • 21. Installation de PostgreSQL PostgreSQL, administration alphorm.com™© Site : http://alphorm.com Blog : http://alphorm.com/blog Forum : http://alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : ndform@valneo-xi.fr Windows
  • 23. Installation de PostgreSQL Les étapes d’installation Téléchargement des sources à partir du site http://www.postgresql.org Installation du logiciel PostgreSQL Automatisation du démarrage du service PostgreSQL PostgreSQL, administration alphorm.com™©
  • 24. Prochain module : Gestion des instances sous PostgreSQL, administration alphorm.com™© Gestion des instances sous PostgreSQL
  • 25. Installation de PostgreSQL PostgreSQL, administration alphorm.com™© Site : http://alphorm.com Blog : http://alphorm.com/blog Forum : http://alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : ndform@valneo-xi.fr
  • 26. Installation de PostgreSQL Les étapes d’installation Téléchargement des sources à partir du site http://www.postgresql.org Préparation du système d’exploitation Installation du logiciel PostgreSQL Initialisation des fichiers de l’instance Configuration PostgreSQL, administration alphorm.com™© Configuration Installation et configuration des scripts de démarrage sous Unix ou services sous Windows
  • 27. Installation de PostgreSQL • Les types d’installation Installation à partir des paquetages « rpm » (Linux) • Les paquetages nécessaires - Postgresql-server* - Postgresql* - Postgresql-libs* PostgreSQL, administration alphorm.com™© - Postgresql-libs* Installation à partir des binaires (Linux) • Pré-requis - make, GCC, gzip, tar Installation à partir des exécutables (WINDOWS)
  • 28. Prochain module : Gestion des instances sous PostgreSQL, administration alphorm.com™© Gestion des instances sous PostgreSQL
  • 29. Gestion des instances sous PostgreSQL PostgreSQL, administration alphorm.com™© Site : http://alphorm.com Blog : http://alphorm.com/blog Forum : http://alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : ndform@valneo-xi.fr Notion d’instance
  • 30. Gestion d’une instance PostgreSQL Une instance PostgreSQL c’est quoi ? Un cache mémoire Des processus Une arborescence physiques (FS, répertoires) Un ensemble de bases de données PostgreSQL, administration alphorm.com™©
  • 31. Gestion d’une instance PostgreSQL Représentation schématique d’une instance PostgreSQL, administration alphorm.com™©
  • 32. Gestion d’une instance PostgreSQL Les processus PostgreSQL Le processus postmaster • Le Processus de gestion des journaux applicatifs (optionnel) • Le processus de collecte des statistiques (optionnel) • Le processus d'écriture en tâche de fond PostgreSQL, administration alphorm.com™© • Le processus d’écriture des journaux de transactions • Le Processus de maintenance des tables (optionnel) • Le processus d'archivage (optionnel) • Les processus de communication client/serveur
  • 33. Gestion d’une instance PostgreSQLGestion d’une instance PostgreSQL Le processusLe processus postmasterpostmaster Père de tous les autres processusPère de tous les autres processus Ecoute toutes les connexions entrantesEcoute toutes les connexions entrantes Ecoute par la socket ou le port TCP/IP (par défaut 5432)Ecoute par la socket ou le port TCP/IP (par défaut 5432) Lance les différents services nécessaires à PostgreSQLLance les différents services nécessaires à PostgreSQL •• le processus de gestion des journaux applicatifs (si activé) ;le processus de gestion des journaux applicatifs (si activé) ; PostgreSQL, administration alphorm.com™© •• le processus de gestion des journaux applicatifs (si activé) ;le processus de gestion des journaux applicatifs (si activé) ; •• le processus de collecte des statistiques (si activé) ;le processus de collecte des statistiques (si activé) ; •• le « autovacuum launcher » (si activé) ;le « autovacuum launcher » (si activé) ; •• le processus d'écriture en tâche de fond ;le processus d'écriture en tâche de fond ; •• le processsus d'écriture des journaux de transactionsle processsus d'écriture des journaux de transactions
  • 34. Gestion d’une instance PostgreSQL Le processusLe processus bgwriterbgwriter Ecriture des blocs modifiés en mémoire cache dans les fichiers deEcriture des blocs modifiés en mémoire cache dans les fichiers de donnéesdonnées Processus d’arrière planProcessus d’arrière plan Déclenché par un checkpointDéclenché par un checkpoint checkpoint_timeoutcheckpoint_timeout indique la durée maximale sans CHECKPOINTindique la durée maximale sans CHECKPOINT PostgreSQL, administration alphorm.com™© checkpoint_timeoutcheckpoint_timeout indique la durée maximale sans CHECKPOINTindique la durée maximale sans CHECKPOINT checkpoint_segmentscheckpoint_segments indique le nombre maximum de journaux deindique le nombre maximum de journaux de transactions utilisés sans CHECKPOINTtransactions utilisés sans CHECKPOINT
  • 35. Gestion d’une instance PostgreSQL Le «Le « walwal writerwriter processprocess »» Apparu en 8.3Apparu en 8.3 Enregistre les modifications dans les journaux de transactions WALEnregistre les modifications dans les journaux de transactions WAL Paramètres d’optimisationParamètres d’optimisation wal_bufferwal_buffer PostgreSQL, administration alphorm.com™© fsyncfsync ……
  • 36. Gestion d’une instance PostgreSQL Le processus de collecte des statistiquesLe processus de collecte des statistiques Activé par défaut en 8.3 (Activé par défaut en 8.3 (track_activitiestrack_activities,, track_countstrack_counts)) Récupère les informations des processusRécupère les informations des processus postgrespostgres Statistiques surStatistiques sur •• le nombre de lignes lues, insérées, modifiées et suppriméesle nombre de lignes lues, insérées, modifiées et supprimées PostgreSQL, administration alphorm.com™© •• le nombre de blocs disque lus ou écritsle nombre de blocs disque lus ou écrits Informations récupérées via un port UDP configuré en mode nonInformations récupérées via un port UDP configuré en mode non bloquantbloquant
  • 37. Gestion d’une instance PostgreSQL Le processus de maintenance des tablesLe processus de maintenance des tables Procède au nettoyage des tablesProcède au nettoyage des tables Depuis la version 8.3Depuis la version 8.3 •• autovacuumautovacuum launcherlauncher •• autovacuumautovacuum workerworker PostgreSQL, administration alphorm.com™© Exécuté au démarrage du serveurExécuté au démarrage du serveur Traces disponibles pour ce processusTraces disponibles pour ce processus
  • 38. Gestion d’une instance PostgreSQL Le processus d’archivageLe processus d’archivage Désactivé par défaut (archive_mode)Désactivé par défaut (archive_mode) Gère l'archivage des journaux de transactionsGère l'archivage des journaux de transactions Pas de consommation mémoire importantePas de consommation mémoire importante Traces disponibles pour ce processusTraces disponibles pour ce processus PostgreSQL, administration alphorm.com™©
  • 39. Gestion d’une instance PostgreSQL Le processus des journaux applicatifsLe processus des journaux applicatifs Disponible depuis la version 8.0Disponible depuis la version 8.0 Activé par défautActivé par défaut Apparaît sous le nom de «Apparaît sous le nom de « logger processlogger process »» Exécuté au lancement du serveur PostgreSQLExécuté au lancement du serveur PostgreSQL PostgreSQL, administration alphorm.com™©
  • 40. Gestion d’une instance PostgreSQL Les processus de communication client/serveurLes processus de communication client/serveur Ce sont les plus nombreux (limitation avec max_connections)Ce sont les plus nombreux (limitation avec max_connections) Gère la communication entre le client et le serveurGère la communication entre le client et le serveur Démarré par le processus «Démarré par le processus « postmasterpostmaster » après authentification de» après authentification de l’utilisateurl’utilisateur Traite les requêtes des clientsTraite les requêtes des clients PostgreSQL, administration alphorm.com™© Traite les requêtes des clientsTraite les requêtes des clients Utilise la mémoire partagée et la mémoire dédiéeUtilise la mémoire partagée et la mémoire dédiée
  • 41. Gestion d’une instance PostgreSQL Arborescence physique d’une instanceArborescence physique d’une instance PostgreSQL, administration alphorm.com™©
  • 42. Gestion d’une instance PostgreSQL Fonction de chaque répertoireFonction de chaque répertoire basebase répertoire associé à l'espace de tables pg_defaultrépertoire associé à l'espace de tables pg_default base/pgsql_tmpbase/pgsql_tmp fichiers temporaires pour certaines opérationsfichiers temporaires pour certaines opérations globalglobal tables système (espace de tables pg_global)tables système (espace de tables pg_global) pg_clogpg_clog données relatives au statut de validation des transactionsdonnées relatives au statut de validation des transactions PostgreSQL, administration alphorm.com™© pg_logpg_log journaux d'activitéjournaux d'activité pg_multixactpg_multixact données relatives au statut des transactions multiplesdonnées relatives au statut des transactions multiples pg_subtranspg_subtrans données relatives au statut des transactions imbriquéesdonnées relatives au statut des transactions imbriquées pg_tblspcpg_tblspc contient un lien symbolique pour chaque espace de tablescontient un lien symbolique pour chaque espace de tables pg_twophasepg_twophase données pour les transactions préparéesdonnées pour les transactions préparées pg_xlogpg_xlog journaux binaires (WAL)journaux binaires (WAL)
  • 43. Gestion d’une instance PostgreSQL La racine de l’instanceLa racine de l’instance $PGDATA$PGDATA Contient tous les répertoires de l’instanceContient tous les répertoires de l’instance Contient les fichiers de configuration de l’instanceContient les fichiers de configuration de l’instance •• PG_VERSIONPG_VERSION version de PostgreSQL associée à l’instanceversion de PostgreSQL associée à l’instance •• pg_hba.confpg_hba.conf configuration de l'authentificationconfiguration de l'authentification PostgreSQL, administration alphorm.com™© •• pg_ident.confpg_ident.conf configuration de l'authentification identconfiguration de l'authentification ident •• postgresql.confpostgresql.conf configuration de l'instanceconfiguration de l'instance •• postmaster.optspostmaster.opts options de démarrage de postmasteroptions de démarrage de postmaster •• postmaster.pidpostmaster.pid PID du processus postmasterPID du processus postmaster
  • 44. Gestion d’une instance PostgreSQL Configuration de l’instanceConfiguration de l’instance Se fait dans le fichier «Se fait dans le fichier « postgresql.confpostgresql.conf »» •• A la racine de chaque instance $PGDATAA la racine de chaque instance $PGDATA •• Toujours faire une sauvegarde du fichier avant modificationToujours faire une sauvegarde du fichier avant modification PostgreSQL, administration alphorm.com™©
  • 45. Gestion d’une instance PostgreSQL Représentation de l’architecture logique et physiqueReprésentation de l’architecture logique et physique PostgreSQL, administration alphorm.com™©
  • 46. Gestion d’une instance PostgreSQL Configuration de l’instanceConfiguration de l’instance Se fait dans le fichier «Se fait dans le fichier « postgresql.confpostgresql.conf »» •• A la racine de chaque instance $PGDATAA la racine de chaque instance $PGDATA •• Toujours faire une sauvegarde du fichier avant modificationToujours faire une sauvegarde du fichier avant modification PostgreSQL, administration alphorm.com™©
  • 47. Prochain module : Les outils d’administration sous PostgreSQL, administration alphorm.com™© Les outils d’administration sous PostgreSQL
  • 48. Gestion des instances sous PostgreSQL PostgreSQL, administration alphorm.com™© Site : http://alphorm.com Blog : http://alphorm.com/blog Forum : http://alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : ndform@valneo-xi.fr Les tablespaces
  • 49. Gestion d’une instance PostgreSQL Les espaces de stockage oude stockage ou tablespacetablespace Répertoire d’un système de fichier, dans lequelRépertoire d’un système de fichier, dans lequel PostgreSQLPostgreSQL écrit les fichiers des tables et des indexesécrit les fichiers des tables et des indexes UtilisationUtilisation •• Extension de l’espace de stockage existantExtension de l’espace de stockage existant PostgreSQL, administration alphorm.com™© •• Répartition des objets à fort accès sur des disques différentsRépartition des objets à fort accès sur des disques différents •• Amélioration des performances pour les I/OAmélioration des performances pour les I/O
  • 50. Gestion d’une instance PostgreSQL Caractéristiques des espaces de tablesCaractéristiques des espaces de tables N’est pas spécifique à une base de donnéesN’est pas spécifique à une base de données Outil pour l’administrateur afin d’optimiser le stockageOutil pour l’administrateur afin d’optimiser le stockage sur disquesur disque Gestion fine des permissions sur les espaces de tablesGestion fine des permissions sur les espaces de tables PostgreSQL, administration alphorm.com™© Maîtrise de la répartition des fichiers DATA, en fonctionMaîtrise de la répartition des fichiers DATA, en fonction des bases de données et des rôles utilisésdes bases de données et des rôles utilisés
  • 51. Gestion d’une instance PostgreSQL •• Mise en oeuvre des espaces de tableMise en oeuvre des espaces de table Au niveau de l’OSAu niveau de l’OS •• Création du nouveau répertoire de stockageCréation du nouveau répertoire de stockage •• Modification du propriétaire du répertoireModification du propriétaire du répertoire •• Attribution des privilèges sur le répertoireAttribution des privilèges sur le répertoire PostgreSQL, administration alphorm.com™© •• Attribution des privilèges sur le répertoireAttribution des privilèges sur le répertoire Au niveau de PostgreSQLAu niveau de PostgreSQL •• Création du tablespace avec la commande DDLCréation du tablespace avec la commande DDL •• Vérification de la création du tablespaceVérification de la création du tablespace
  • 52. Gestion d’une instance PostgreSQL •• Création des espaces de tableCréation des espaces de table SyntaxeSyntaxe ExempleExemple CREATE TABLESPACE <nom> LOCATION <dir> # CREATE TABLESPACE app LOCATION ‘/u101/pgsql/data’ PostgreSQL, administration alphorm.com™© # CREATE TABLESPACE app LOCATION ‘/u101/pgsql/data’
  • 53. Gestion d’une instance PostgreSQL •• Suppression des espaces de tableSuppression des espaces de table Le tablespace doit être vide (pas de table ni d’index)Le tablespace doit être vide (pas de table ni d’index) Suppression du tablespace via la commande DDLSuppression du tablespace via la commande DDL Le répertoire de stockage peut être suppriméLe répertoire de stockage peut être supprimé physiquement avec les commandes de l’OSphysiquement avec les commandes de l’OS PostgreSQL, administration alphorm.com™© SyntaxeSyntaxe DROP TABLESPACE [ IF EXISTS] <nom>
  • 54. Gestion d’une instance PostgreSQL •• Modifier des espaces de tableModifier des espaces de table Renommer le tablespaceRenommer le tablespace Changer le propriétaireChanger le propriétaire SyntaxeSyntaxe ALTER TABLESPACE nomtblspc RENAME nomtblspc2; PostgreSQL, administration alphorm.com™© ALTER TABLESPACE nomtblspc RENAME nomtblspc2; ALTER TABLESPACE nomtblspc OWNER nomROLE;
  • 55. Gestion des instances sous PostgreSQL PostgreSQL, administration alphorm.com™© Site : http://alphorm.com Blog : http://alphorm.com/blog Forum : http://alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : ndform@valneo-xi.fr Initialisation d’une instance
  • 56. Initialisation d'une instance Configuration des ressources du noyauConfiguration des ressources du noyau PostgreSQLPostgreSQL utilise les ressources IPC de l’OS pour la gestion de lautilise les ressources IPC de l’OS pour la gestion de la mémoire vivemémoire vive La taille maximale d’un segment de mémoire partagée et positionnéLa taille maximale d’un segment de mémoire partagée et positionné par défaut à 32 Mopar défaut à 32 Mo Le nombre de pages est positionné par défaut à 2097152 pagesLe nombre de pages est positionné par défaut à 2097152 pages PostgreSQL, administration alphorm.com™© Nécessité de modifier les paramètres par défautNécessité de modifier les paramètres par défaut •• shmmaxshmmax taille maximale d’un segment de mémoire partagéetaille maximale d’un segment de mémoire partagée •• shmallshmall nombre maximale de pages de mémoire partagée (OS)nombre maximale de pages de mémoire partagée (OS)
  • 57. Initialisation d'une instance initdbinitdb SyntaxeSyntaxe ExempleExemple initdb -E <codage> --locale=<locale> -D <dir> $ initdb -E UTF8 -D $PGDATA PostgreSQL, administration alphorm.com™©
  • 58. Initialisation d'une instance initdbinitdb SyntaxeSyntaxe ExempleExemple initdb -E <codage> --locale=<locale> -D <dir> $ initdb -E UTF8 -D $PGDATA PostgreSQL, administration alphorm.com™©
  • 59. Initialisation d'une instance Création d’une instanceCréation d’une instance Utilisation du programmeUtilisation du programme initdbinitdb •• Les optionsLes options •• --D <dir>D <dir> indique le répertoire de stockage des donnéesindique le répertoire de stockage des données •• --U <utilisateur>U <utilisateur> indique le nom du super userindique le nom du super user PostgreSQL, administration alphorm.com™© •• --E <encodage>E <encodage> indique le jeux de caractères sélectionnéindique le jeux de caractères sélectionné •• --locale=<locale>locale=<locale> initialise les paramètres locauxinitialise les paramètres locaux
  • 60. Initialisation d'une instance Démarrage et arrêt d’une instanceDémarrage et arrêt d’une instance Utilisation du programmeUtilisation du programme pg_ctlpg_ctl •• --D <dir>D <dir> indique le répertoire de l’instanceindique le répertoire de l’instance •• --l <journal de trace>l <journal de trace> fichier de log de démarrage de l’instancefichier de log de démarrage de l’instance •• start, stop, restartstart, stop, restart etet reloadreload permettent de démarrer, d’arrêter,permettent de démarrer, d’arrêter, de redémarrer et de recharger le serveurde redémarrer et de recharger le serveur PostgreSQL, administration alphorm.com™© de redémarrer et de recharger le serveurde redémarrer et de recharger le serveur
  • 61. Initialisation d'une instance pg_ctlpg_ctl SyntaxeSyntaxe ExempleExemple pg_ctl -D $PGDATA start | stop | restart -l <journal trace> pg_ctl -D /var/lib/pgsql/data stop PostgreSQL, administration alphorm.com™© pg_ctl -D /var/lib/pgsql/data start
  • 62. Initialisation d'une instance pg_ctlpg_ctl SyntaxeSyntaxe ExempleExemple pg_ctl -D $PGDATA start | stop | restart -l <journal trace> pg_ctl -D /var/lib/pgsql/data start PostgreSQL, administration alphorm.com™©
  • 63. Initialisation d'une instance Démarrage et arrêt d’une instanceDémarrage et arrêt d’une instance Utilisation du script de démarrage (SysV) LinuxUtilisation du script de démarrage (SysV) Linux WindowsWindows /etc/init.d/postgresql stop | start | restart | reload PostgreSQL, administration alphorm.com™©
  • 64. Initialisation d'une instance Suppression d’une instanceSuppression d’une instance LinuxLinux •• Arrêtez le processus postmaster PostgreSQLArrêtez le processus postmaster PostgreSQL •• Supprimer tous les fichiers et répertoires à la racine deSupprimer tous les fichiers et répertoires à la racine de l’instance ($PGDATA)l’instance ($PGDATA) WindowsWindows PostgreSQL, administration alphorm.com™© WindowsWindows •• Arrêtez le service PostgreSQLArrêtez le service PostgreSQL •• Supprimer tous les fichiers et répertoire à la racine de l’instanceSupprimer tous les fichiers et répertoire à la racine de l’instance ($PGDATA)($PGDATA)
  • 65. Initialisation d'une instance Suppression d’une instanceSuppression d’une instance LinuxLinux •• Arrêtez le processus postmaster PostgreSQLArrêtez le processus postmaster PostgreSQL •• Supprimer tous les fichiers et répertoires à la racine deSupprimer tous les fichiers et répertoires à la racine de l’instance ($PGDATA)l’instance ($PGDATA) WindowsWindows PostgreSQL, administration alphorm.com™© WindowsWindows •• Arrêtez le service PostgreSQLArrêtez le service PostgreSQL •• Supprimer tous les fichiers et répertoire à la racine de l’instanceSupprimer tous les fichiers et répertoire à la racine de l’instance ($PGDATA)($PGDATA)
  • 66. Gestion des instances sous PostgreSQL PostgreSQL, administration alphorm.com™© Site : http://alphorm.com Blog : http://alphorm.com/blog Forum : http://alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : ndform@valneo-xi.fr Sécurisation d’une instance
  • 67. Sécurisation d'une instance Gérée parGérée par LLe fichier «e fichier « pg_hba.confpg_hba.conf »» Configure la manière d’authentifier les connexionsConfigure la manière d’authentifier les connexions Par défaut autorise toutes les connexions localesPar défaut autorise toutes les connexions locales Nécessaire de modifier ce fichier après l’installationNécessaire de modifier ce fichier après l’installation PostgreSQL, administration alphorm.com™© Nécessaire de modifier ce fichier après l’installationNécessaire de modifier ce fichier après l’installation Les objets rôlesLes objets rôles Pour la connexion et la sécurité au niveau des objetsPour la connexion et la sécurité au niveau des objets
  • 68. Sécurisation d'une instance Configuration de «Configuration de « pg_hba.confpg_hba.conf »» Format d’une ligne d’authentificationFormat d’une ligne d’authentification TypeType || BaseBase || UserUser || AdresseAdresse || MéthodeMéthode || OptionOption •• Colonne « Type »Colonne « Type » - local : connexion par une socket du domaine Unix (la colonne PostgreSQL, administration alphorm.com™© - local : connexion par une socket du domaine Unix (la colonne adresse est vide) ; - host : connexion chiffrée ou non par une socket TCP/IP ; - hostssl : connexion chiffrée par une socket TCP/IP ; - hostnossl : connexion non chiffrée par une socket TCP/IP.
  • 69. Sécurisation d'une instance Configuration de «Configuration de « pg_hba.confpg_hba.conf »» Format d’une ligne d’authentificationFormat d’une ligne d’authentification TypeType || BaseBase || UserUser || AdresseAdresse || MéthodeMéthode || OptionOption •• Colonne « Base »Colonne « Base » - all ; PostgreSQL, administration alphorm.com™© - all ; - samerole, sameuser ; - une liste de ces éléments séparés par une virgule.
  • 70. Sécurisation d'une instance Configuration de «Configuration de « pg_hba.confpg_hba.conf »» Format d’une ligne d’authentificationFormat d’une ligne d’authentification TypeType || BaseBase || UserUser || AdresseAdresse || MéthodeMéthode || OptionOption •• Colonne « User »Colonne « User » - all ; PostgreSQL, administration alphorm.com™© - all ; - le nom d'un groupe (rôle) précédé du caractère « + » ; - une liste de ces éléments séparés par une virgule.
  • 71. Sécurisation d'une instance Configuration de «Configuration de « pg_hba.confpg_hba.conf »» Format d’une ligne d’authentificationFormat d’une ligne d’authentification TypeType || BaseBase || UserUser || AdresseAdresse || MéthodeMéthode || OptionOption •• Colonne « Adresse »Colonne « Adresse » -- IP d'origine de la connexion au format CIDRIP d'origine de la connexion au format CIDR PostgreSQL, administration alphorm.com™© -- IP d'origine de la connexion au format CIDRIP d'origine de la connexion au format CIDR -- Doit être vide lorsque le type est « local »Doit être vide lorsque le type est « local »
  • 72. Sécurisation d'une instance Configuration de «Configuration de « pg_hba.confpg_hba.conf »» Format d’une ligne d’authentificationFormat d’une ligne d’authentification TypeType || BaseBase || UserUser || AdresseAdresse || MéthodeMéthode || OptionOption •• Colonne « Méthode »Colonne « Méthode » - trust : autoriser sans même vérifier le mot de passe ; PostgreSQL, administration alphorm.com™© - trust : autoriser sans même vérifier le mot de passe ; - reject : rejeter la connexion ; - md5 : vérifier le mot de passe fourni (ne plus utiliser crypt ou password) ; - ident : utiliser le protocole IDENT pour vérifier l'utilisateur ; - krb5, pam ou ldap : authentifications spécifiques.
  • 73. Sécurisation d'une instance Configuration de «Configuration de « pg_hba.confpg_hba.conf »» Format d’une ligne d’authentificationFormat d’une ligne d’authentification TypeType || BaseBase || UserUser || AdresseAdresse || MéthodeMéthode | [| [OptionOption ]] •• Colonne « Méthode »Colonne « Méthode » - trust : autoriser sans même vérifier le mot de passe ; PostgreSQL, administration alphorm.com™© - trust : autoriser sans même vérifier le mot de passe ; - reject : rejeter la connexion ; - md5 : vérifier le mot de passe fourni (ne plus utiliser crypt ou password) ; - ident : utiliser le protocole IDENT pour vérifier l'utilisateur ; - krb5, pam ou ldap : authentifications spécifiques.
  • 74. Sécurisation d'une instance Les sessionsLes sessions Connexion des clients via une socket UNIXConnexion des clients via une socket UNIX Port d’écoute par défaut: 5432Port d’écoute par défaut: 5432 Quatre informations nécessaires pour ouvrir une sessionQuatre informations nécessaires pour ouvrir une session Le nom/IP de la machine qui héberge l’instanceLe nom/IP de la machine qui héberge l’instance PostgreSQL, administration alphorm.com™© Le nom/IP de la machine qui héberge l’instanceLe nom/IP de la machine qui héberge l’instance Le nom de la baseLe nom de la base Le nom d’un rôleLe nom d’un rôle Un mot de passe (si configuré dans « pg_hba.conf »Un mot de passe (si configuré dans « pg_hba.conf »
  • 75. Prochain module : Les outils d’administration sous PostgreSQL, administration alphorm.com™© Les outils d’administration sous PostgreSQL
  • 76. Les outils d’administration sous PostgreSQL PostgreSQL, administration alphorm.com™© Site : http://alphorm.com Blog : http://alphorm.com/blog Forum : http://alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : ndform@valneo-xi.fr sous PostgreSQL
  • 77. Les outils d’administration Mode ligne de commandeMode ligne de commande createdb, dropdbcreatedb, dropdb createuser, dropusercreateuser, dropuser reindexdb, vacuumdbreindexdb, vacuumdb pg_dump, pg_dumpall, pg_restorepg_dump, pg_dumpall, pg_restore PostgreSQL, administration alphorm.com™© pg_dump, pg_dumpall, pg_restorepg_dump, pg_dumpall, pg_restore initdb, clusterdb, postmaster, pg_ctlinitdb, clusterdb, postmaster, pg_ctl psqlpsql, Droplang, pg_config, pg_resetxlog, pg_controldata,, Droplang, pg_config, pg_resetxlog, pg_controldata, createlang, ipccleancreatelang, ipcclean
  • 78. Les outils d’administration Mode ligne de commandeMode ligne de commande L’interpréteur de commande «L’interpréteur de commande « psqlpsql »» Les principaux paramètresLes principaux paramètres -h <machine> -p <port> PostgreSQL, administration alphorm.com™© -p <port> -d <nom base de données> -U <utilisateur>
  • 79. Les outils d’administration Mode ligne de commandeMode ligne de commande L’interpréteur de commande «L’interpréteur de commande « psqlpsql »» Les variables utilisées par « psql » (.bash_profile)Les variables utilisées par « psql » (.bash_profile) $PGDATA $PGHOST PostgreSQL, administration alphorm.com™© $PGHOST $PGDATABASE $PGPORT $PGUSER
  • 80. Les outils d’administration GraphiqueGraphique pgAdmin IIIpgAdmin III PostgreSQL, administration alphorm.com™©
  • 82. Prochain module : La gestion des transactions sous PostgreSQL, administration alphorm.com™© La gestion des transactions sous PostgreSQL
  • 83. La gestion des transactions sous PostgreSQL PostgreSQL, administration alphorm.com™© Site : http://alphorm.com Blog : http://alphorm.com/blog Forum : http://alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : ndform@valneo-xi.fr sous PostgreSQL
  • 84. La gestion des transactions TransactionsTransactions Conforme à la norme ACIDConforme à la norme ACID •• AtomicitéAtomicité toutes les instructions de la transaction sont validées ou aucune netoutes les instructions de la transaction sont validées ou aucune ne l'estl'est •• CohérenceCohérence chaque transaction validée garantit un état cohérent de la base dechaque transaction validée garantit un état cohérent de la base de donnéesdonnées •• IsolationIsolation les modifications d'une transaction sont invisibles aux autresles modifications d'une transaction sont invisibles aux autres transactionstransactions PostgreSQL, administration alphorm.com™© transactionstransactions •• DurabilitéDurabilité si la transaction est validée, les modifications engendrées sontsi la transaction est validée, les modifications engendrées sont pérennespérennes
  • 85. La gestion des transactions TransactionsTransactions Par défautPar défaut •• aautocommitutocommit Une transactionUne transaction •• Démarrage d’une transaction avecDémarrage d’une transaction avec BEGINBEGIN PostgreSQL, administration alphorm.com™© •• COMMITCOMMIT permet de valider une transactionpermet de valider une transaction •• ROLLBACKROLLBACK permet d’annuler une transactionpermet d’annuler une transaction
  • 86. La gestion des transactions TransactionsTransactions SpécificitésSpécificités •• Les instructions LDD sont prises en charge par les transactionsLes instructions LDD sont prises en charge par les transactions •• La fermeture d'une session provoque un rollback impliciteLa fermeture d'une session provoque un rollback implicite PostgreSQL, administration alphorm.com™©
  • 87. La gestion des transactions TransactionsTransactions IsolationIsolation •• Le standard SQLLe standard SQL -- read uncommitedread uncommited -- read commitedread commited PostgreSQL, administration alphorm.com™© -- repeatable readrepeatable read -- serializableserializable
  • 88. La gestion des transactions TransactionsTransactions IsolationIsolation Modification du niveau d’isolationModification du niveau d’isolation SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL { SERIALIZABLE | REPEATABLE READ | READ COMMITTED | READ UNCOMMITTED } PostgreSQL, administration alphorm.com™©
  • 89. La gestion des transactions Les verrousLes verrous Verrous implicitesVerrous implicites Verrous expliciteVerrous explicite •• Avec l'instructionAvec l'instruction locklock •• En utilisant les clausesEn utilisant les clauses for updatefor update etet for sharefor share de l'instruction selectde l'instruction select •• Les verrous ne peuvent être posés que dans le cadre d'une transactionLes verrous ne peuvent être posés que dans le cadre d'une transaction PostgreSQL, administration alphorm.com™© •• Les verrous ne peuvent être posés que dans le cadre d'une transactionLes verrous ne peuvent être posés que dans le cadre d'une transaction commencéecommencée avec begin. •• Les verrous sont libérés lorsque une transaction est terminéeLes verrous sont libérés lorsque une transaction est terminée •• La liste des verrous actifs est consultable dans la vue systèmeLa liste des verrous actifs est consultable dans la vue système pg_lockspg_locks
  • 90. Prochain module : Les logs PostgreSQL PostgreSQL, administration alphorm.com™© Les logs PostgreSQL
  • 91. Gestion de la sécurité sous PostgreSQL PostgreSQL, administration alphorm.com™© Site : http://alphorm.com Blog : http://alphorm.com/blog Forum : http://alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : ndform@valneo-xi.fr PostgreSQL
  • 92. Gestion de la sécurité Gestion des droits d’accèsGestion des droits d’accès Utilise la notion de rôleUtilise la notion de rôle Peut représenter un utilisateur ou un groupePeut représenter un utilisateur ou un groupe •• Etre propriétaire d'objets de l'instance (bases de données,Etre propriétaire d'objets de l'instance (bases de données, tables, etc.)tables, etc.) •• Se voir octroyer des droits d'accès à des objets ou des droitSe voir octroyer des droits d'accès à des objets ou des droit PostgreSQL, administration alphorm.com™© •• Se voir octroyer des droits d'accès à des objets ou des droitSe voir octroyer des droits d'accès à des objets ou des droit systèmesystème •• Etre membre d'un autre rôleEtre membre d'un autre rôle •• Se voir attribuer un mot de passeSe voir attribuer un mot de passe •• Non lié au utilisateurs du système d’exploitationNon lié au utilisateurs du système d’exploitation
  • 93. Gestion de la sécurité Création des rôlesCréation des rôles SyntaxeSyntaxe CREATE ROLE nom_role [ [ WITH ] [ SUPERUSER ] [ CREATEDB ] [ CREATEROLE ] [ LOGIN ] [ ENCRYPTED PASSWORD 'mot_de_passe' ] PostgreSQL, administration alphorm.com™© [ IN ROLE nom_role [, ...] ] [ ROLE nom_role [, ...] ] ]
  • 94. Gestion de la sécurité Suppression des rôlesSuppression des rôles SyntaxeSyntaxe DROP ROLE [ IF EXISTS ] nom PostgreSQL, administration alphorm.com™©
  • 95. Gestion de la sécurité Les rôles groupesLes rôles groupes Modélise la notion de groupe d’utilisateursModélise la notion de groupe d’utilisateurs Suffit de créer un rôle sans mot de passeSuffit de créer un rôle sans mot de passe Sans l’attribut LOGINSans l’attribut LOGIN PostgreSQL, administration alphorm.com™©
  • 96. Gestion de la sécurité Les droitsLes droits Basé sur les rôles et utilise les instructions SQLBasé sur les rôles et utilise les instructions SQL GRANT et REVOKEGRANT et REVOKE •• Octroyer ou révoquer des droits d'accès sur des objetsOctroyer ou révoquer des droits d'accès sur des objets •• Ajouter ou retirer des rôles (utilisateurs) à d'autres rôlesAjouter ou retirer des rôles (utilisateurs) à d'autres rôles (groupes)(groupes) PostgreSQL, administration alphorm.com™© (groupes)(groupes)
  • 97. Gestion de la sécurité Les droitsLes droits Les attributs des rôles:Les attributs des rôles: • LOGIN / NOLOGIN ; • SUPERUSER / NOSUPERUSER ; • CREATEDB / NOCREATEDB ; PostgreSQL, administration alphorm.com™© • CREATEROLE / NOCREATEROLE ; • PASSWORD. Associés aux rôles lors de leur création (CREATE ROLE) ou avecAssociés aux rôles lors de leur création (CREATE ROLE) ou avec l'instruction ALTER ROLEl'instruction ALTER ROLE Les rôles qui disposent de l'attribut SUPERUSER contournent leLes rôles qui disposent de l'attribut SUPERUSER contournent le système des privilèges (c'estsystème des privilèges (c'est--àà--dire qu'ils ont tous les privilèges)dire qu'ils ont tous les privilèges)
  • 98. Gestion de la sécurité Droits, objetsDroits, objets Les privilèges octroyés dépendent du type d’objetLes privilèges octroyés dépendent du type d’objet •• tables : SELECT | INSERT | UPDATE | DELETE | REFERENCES |tables : SELECT | INSERT | UPDATE | DELETE | REFERENCES | TRIGGERTRIGGER •• séquences : USAGE | SELECT | UPDATEséquences : USAGE | SELECT | UPDATE •• base de données : CREATE | CONNECT | TEMPORARYbase de données : CREATE | CONNECT | TEMPORARY PostgreSQL, administration alphorm.com™© •• base de données : CREATE | CONNECT | TEMPORARYbase de données : CREATE | CONNECT | TEMPORARY •• fonctions : EXECUTEfonctions : EXECUTE •• langage : USAGElangage : USAGE •• schémas : CREATE | USAGEschémas : CREATE | USAGE •• espaces de tables : CREATEespaces de tables : CREATE
  • 99. Gestion de la sécurité Droits, objetsDroits, objets ALL représente tous les privilèges et PUBLIC tous les rôlesALL représente tous les privilèges et PUBLIC tous les rôles L'option WITH GRANT OPTION autorise le ou les rôles cibles àL'option WITH GRANT OPTION autorise le ou les rôles cibles à octroyer ces privilègesoctroyer ces privilèges PostgreSQL, administration alphorm.com™©
  • 100. Gestion de la sécurité Droits, objetsDroits, objets ALL représente tous les privilèges et PUBLIC tous les rôlesALL représente tous les privilèges et PUBLIC tous les rôles L'option WITH GRANT OPTION autorise le ou les rôles cibles àL'option WITH GRANT OPTION autorise le ou les rôles cibles à octroyer ces privilègesoctroyer ces privilèges PostgreSQL, administration alphorm.com™©
  • 101. Gestion de la sécurité Droits, objetsDroits, objets Révocation des droits avec REVOKERévocation des droits avec REVOKE SyntaxeSyntaxe REVOKE [ GRANT OPTION FOR ] { privilège [,...] | ALL } ON [ type_objet ] nom_objet [, ...] PostgreSQL, administration alphorm.com™© FROM { nom_role | PUBLIC } [, ...] [ CASCADE | RESTRICT ]
  • 102. Gestion de la sécurité Droits, objetsDroits, objets Bonnes pratiquesBonnes pratiques •• Associer une base de données à un rôleAssocier une base de données à un rôle •• Associer une base de données à une applicationAssocier une base de données à une application •• Un schéma est associé à un rôle utilisateurUn schéma est associé à un rôle utilisateur PostgreSQL, administration alphorm.com™© •• Les privilèges objets sont donnés à des rôles groupes et non àLes privilèges objets sont donnés à des rôles groupes et non à des rôles LOGINdes rôles LOGIN
  • 103. Prochain module : Sauvegarde restauration sous PostgreSQL, administration alphorm.com™© Sauvegarde restauration sous PostgreSQL
  • 104. Les logs PostgreSQL PostgreSQL, administration alphorm.com™© Site : http://alphorm.com Blog : http://alphorm.com/blog Forum : http://alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : ndform@valneo-xi.fr Les logs d’activités
  • 105. Gestion des logs Les logs d’activitésLes logs d’activités Enregistre les évènements pendant l’exécution du serveurEnregistre les évènements pendant l’exécution du serveur Méthode d’enregistrementMéthode d’enregistrement •• fsync, stderr, syslog, eventlog (Windows)fsync, stderr, syslog, eventlog (Windows) Niveau de traceNiveau de trace PostgreSQL, administration alphorm.com™© •• Différentes nature de messageDifférentes nature de message •• Possibilité d’ajuster le niveau de tracePossibilité d’ajuster le niveau de trace
  • 106. Gestion des logs Les logs d’activitésLes logs d’activités Ou tracer ?Ou tracer ? •• log_destination (string)log_destination (string) destination des logs (syslog, stderr, etc.)destination des logs (syslog, stderr, etc.) •• logging_collector (boolean)logging_collector (boolean) autorise la capture et la redirectionautorise la capture et la redirection des messages envoyés à stderrdes messages envoyés à stderr •• log_directorylog_directory (string)(string) détermine le répertoire dans lequel lesdétermine le répertoire dans lequel les PostgreSQL, administration alphorm.com™© •• log_directorylog_directory (string)(string) détermine le répertoire dans lequel lesdétermine le répertoire dans lequel les fichiers de trace sont créésfichiers de trace sont créés •• log_filename (string)log_filename (string) indique les noms des journaux applicatifsindique les noms des journaux applicatifs crééscréés •• ……
  • 107. Gestion des logs Les logs d’activitésLes logs d’activités Quand tracer ?Quand tracer ? •• client_min_messages (enum)client_min_messages (enum) contrôle les niveaux de messagecontrôle les niveaux de message envoyés au clientenvoyés au client •• log_min_messages (enum)log_min_messages (enum) contrôle les niveaux de messagecontrôle les niveaux de message écrits dans les traces du serveurécrits dans les traces du serveur PostgreSQL, administration alphorm.com™© écrits dans les traces du serveurécrits dans les traces du serveur •• log_error_verbosity (enum)log_error_verbosity (enum) contrôle le niveau de détail descontrôle le niveau de détail des traces de chaque messagetraces de chaque message •• log_min_error_statement (enum)log_min_error_statement (enum) contrôle si l'instruction SQL àcontrôle si l'instruction SQL à l'origine d'une erreur doit être enregistrée dans les traces dul'origine d'une erreur doit être enregistrée dans les traces du serveurserveur •• ……
  • 108. Gestion des logs Les logs d’activitésLes logs d’activités Que tracer ?Que tracer ? •• log_checkpoints (boolean)log_checkpoints (boolean) trace les points de vérification danstrace les points de vérification dans les journaux applicatifsles journaux applicatifs •• log_connections (boolean)log_connections (boolean) trace chaque tentative de connexiontrace chaque tentative de connexion sur le serveur, ainsi que la réussite de l'authentification dusur le serveur, ainsi que la réussite de l'authentification du clientclient PostgreSQL, administration alphorm.com™© sur le serveur, ainsi que la réussite de l'authentification dusur le serveur, ainsi que la réussite de l'authentification du clientclient •• log_duration (boolean)log_duration (boolean) indique le temps de chaque requêteindique le temps de chaque requête noté par log_statementnoté par log_statement •• log_statement (boolean)log_statement (boolean) indique la nature des requête a tracerindique la nature des requête a tracer •• ……
  • 109. Gestion des logs Les logs d’activitésLes logs d’activités Paramètres du fichier de traceParamètres du fichier de trace •• log_rotation_age (entier)log_rotation_age (entier) indique le temps de vie d’un fichier deindique le temps de vie d’un fichier de traces d’activitéstraces d’activités •• log_rotation_size (entier)log_rotation_size (entier) indique la taille maximale d’un fichierindique la taille maximale d’un fichier de tracesde traces PostgreSQL, administration alphorm.com™© de tracesde traces •• ……
  • 110. La gestion des transactions sous PostgreSQL PostgreSQL, administration alphorm.com™© Site : http://alphorm.com Blog : http://alphorm.com/blog Forum : http://alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : ndform@valneo-xi.fr sous PostgreSQL
  • 111. Gestion des logs Les logs binaires ou WALLes logs binaires ou WAL Mécanisme d’écriture des transactionsMécanisme d’écriture des transactions •• Chaque transaction est écrite dans un fichier binaire, avant queChaque transaction est écrite dans un fichier binaire, avant que les données ne soient réellement écrites dans les fichiers deles données ne soient réellement écrites dans les fichiers de données et d’indexdonnées et d’index •• Mécanisme qui garantit l’écriture des donnéesMécanisme qui garantit l’écriture des données PostgreSQL, administration alphorm.com™© Mécanisme qui garantit l’écriture des donnéesMécanisme qui garantit l’écriture des données •• Permet d’obtenir de meilleures performances, tout enPermet d’obtenir de meilleures performances, tout en garantissant l’écriture des donnéesgarantissant l’écriture des données
  • 112. Gestion des logs Les logs binaires ou WALLes logs binaires ou WAL Schéma du mécanisme d’écriture des transactionsSchéma du mécanisme d’écriture des transactions PostgreSQL, administration alphorm.com™©
  • 113. Gestion des logs Les logs binaires ou WALLes logs binaires ou WAL CaractéristiquesCaractéristiques •• Chaque segment WAL a une taille de 16 MoChaque segment WAL a une taille de 16 Mo •• Chaque segment est divisé en pages de 8 KoChaque segment est divisé en pages de 8 Ko •• Les fichiers sont nommés suivant un nombre qui est toujoursLes fichiers sont nommés suivant un nombre qui est toujours incrémenté et qui commence à 000000010000000000000000incrémenté et qui commence à 000000010000000000000000 PostgreSQL, administration alphorm.com™© incrémenté et qui commence à 000000010000000000000000incrémenté et qui commence à 000000010000000000000000 •• Les segments WAL sont stockés dans le répertoireLes segments WAL sont stockés dans le répertoire pg_xlogpg_xlog •• Le serveur peut en créer plusieurs si nécessaireLe serveur peut en créer plusieurs si nécessaire
  • 114. Gestion des logs Les logs binaires ou WALLes logs binaires ou WAL Paramètres de configurationParamètres de configuration •• fsync(boolean)fsync(boolean) permet de forcer l’écriture des fichiers de tracespermet de forcer l’écriture des fichiers de traces binairesbinaires •• checkpoint_segment(entier)checkpoint_segment(entier) indique l’écart maximum entreindique l’écart maximum entre deux points de contrôledeux points de contrôle PostgreSQL, administration alphorm.com™© deux points de contrôledeux points de contrôle •• checkpoint_timeout(entier)checkpoint_timeout(entier) indique le temps maximal, enindique le temps maximal, en seconde, entre deux points de contrôleseconde, entre deux points de contrôle •• checkpoint_warning(entier)checkpoint_warning(entier) déclenche l’envoi de messagesdéclenche l’envoi de messages dans les traces d’activités lorsque les points de contrôles sontdans les traces d’activités lorsque les points de contrôles sont trop fréquentstrop fréquents •• wal_bufferwal_buffer cache des logs binairescache des logs binaires
  • 115. Prochain module : Les logs PostgreSQL PostgreSQL, administration alphorm.com™© Les logs PostgreSQL
  • 116. Le cache de données PostgreSQL PostgreSQL, administration alphorm.com™© Site : http://alphorm.com Blog : http://alphorm.com/blog Forum : http://alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : ndform@valneo-xi.fr PostgreSQL
  • 117. Le cache de données Le cache PostgreSQLLe cache PostgreSQL shared_buffersshared_buffers zone de travail principale partagéezone de travail principale partagée wal_bufferswal_buffers cache pour les transactions WAL partagécache pour les transactions WAL partagé temp_bufferstemp_buffers cache pour les tables temporaire localecache pour les tables temporaire locale work_memwork_mem cache pour les opérations de triscache pour les opérations de tris PostgreSQL, administration alphorm.com™© maintenance_work_memmaintenance_work_mem cache pour les opérations de maintenancecache pour les opérations de maintenance
  • 118. Le cache de données Le cache PostgreSQLLe cache PostgreSQL PostgreSQL, administration alphorm.com™©
  • 119. Prochain module : Gestion de la sécurité sous PostgreSQL, administration alphorm.com™© Gestion de la sécurité sous PostgreSQL
  • 120. Sauvegarde et Restauration sous PostgreSQL PostgreSQL, administration alphorm.com™© Site : http://alphorm.com Blog : http://alphorm.com/blog Forum : http://alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : ndform@valneo-xi.fr Import Export
  • 121. Sauvegarde et restauration Trois stratégies de sauvegardes possiblesTrois stratégies de sauvegardes possibles Export à partir d'une base de données ou une instance active enExport à partir d'une base de données ou une instance active en utilisant le programmeutilisant le programme pg_dumppg_dump etet pg_dumpallpg_dumpall Sauvegarde des fichiers de l'instance lorsqu'elle est arrêtéeSauvegarde des fichiers de l'instance lorsqu'elle est arrêtée (sauvegarde à froid)(sauvegarde à froid) Sauvegarde à chaud en utilisant des journaux des transactionsSauvegarde à chaud en utilisant des journaux des transactions PostgreSQL, administration alphorm.com™©
  • 122. Sauvegarde et restauration Export avecExport avec pg_dumppg_dump Permet de transférer rapidement des données entre bases dePermet de transférer rapidement des données entre bases de donnéesdonnées Supporte trois types de format, dont le SQLSupporte trois types de format, dont le SQL Utilise les mêmes options de connexion queUtilise les mêmes options de connexion que psqlpsql Simple d'emploi..Simple d'emploi.. PostgreSQL, administration alphorm.com™© Simple d'emploi..Simple d'emploi..
  • 123. Sauvegarde et restauration Export avecExport avec pg_dumppg_dump Trois types de formatsTrois types de formats •• Format texteFormat texte SQLSQL (par défaut), les données seront restaurées(par défaut), les données seront restaurées avec psqlavec psql •• FormatFormat tartar, les données seront restaurées avec pg_restore, les données seront restaurées avec pg_restore •• FormatFormat dumpdump spécifique, restauration avec pg_restorespécifique, restauration avec pg_restore PostgreSQL, administration alphorm.com™© •• FormatFormat dumpdump spécifique, restauration avec pg_restorespécifique, restauration avec pg_restore
  • 124. Sauvegarde et restauration Export avecExport avec pg_dumpallpg_dumpall PermetPermet d’exporter toutes les bases de données d’une instanced’exporter toutes les bases de données d’une instance Un seul type de format d’export SQLUn seul type de format d’export SQL PostgreSQL, administration alphorm.com™©
  • 125. Sauvegarde et Restauration sous PostgreSQL PostgreSQL, administration alphorm.com™© Site : http://alphorm.com Blog : http://alphorm.com/blog Forum : http://alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : ndform@valneo-xi.fr Sauvegarde à froid
  • 126. Sauvegarde et restauration Sauvegarde à froidSauvegarde à froid Arrêt de l’instanceArrêt de l’instance Sauvegarde de la racine de l’instance $PGDATA au niveau systèmeSauvegarde de la racine de l’instance $PGDATA au niveau système Sauvegarde des répertoires des espaces de tables au niveau systèmeSauvegarde des répertoires des espaces de tables au niveau système PostgreSQL, administration alphorm.com™©
  • 127. Sauvegarde et restauration Restauration à partir d’une sauvegarde à froidRestauration à partir d’une sauvegarde à froid Arrêt de l’instanceArrêt de l’instance Suppression de tous les répertoires et fichiers de l’instanceSuppression de tous les répertoires et fichiers de l’instance •• $PGDATA$PGDATA •• Espaces de tableEspaces de table PostgreSQL, administration alphorm.com™© Restaurer les fichiers au niveau systèmeRestaurer les fichiers au niveau système Démarrer l’instanceDémarrer l’instance
  • 128. Sauvegarde et Restauration sous PostgreSQL PostgreSQL, administration alphorm.com™© Site : http://alphorm.com Blog : http://alphorm.com/blog Forum : http://alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : ndform@valneo-xi.fr Sauvegarde à chaud
  • 129. Sauvegarde et restauration Sauvegarde à chaudSauvegarde à chaud PréPré--requisrequis •• Activer l'archivage des journaux des transactionsActiver l'archivage des journaux des transactions - wal_level = archive - archive_mode = on PostgreSQL, administration alphorm.com™© - archive_command = ‘cp %p /archives/%f’ •• Exécuter régulièrement une sauvegarde complète de l'instance.Exécuter régulièrement une sauvegarde complète de l'instance.
  • 130. Sauvegarde et restauration Sauvegarde à chaudSauvegarde à chaud Mise en oeuvreMise en oeuvre •• Exécution de la function SQLExécution de la function SQL pg_start_backuppg_start_backup •• Sauvegarde des fichiers de l'instances à l'exception duSauvegarde des fichiers de l'instances à l'exception du répertoire pg_xlogrépertoire pg_xlog •• Exécution de la fonctionExécution de la fonction pg_stop_backuppg_stop_backup PostgreSQL, administration alphorm.com™© •• Exécution de la fonctionExécution de la fonction pg_stop_backuppg_stop_backup - Une étiquette est conservée dans le fichier $PGDATA/backup_label. - Un fichier $PGDATA/pg_xlog/000000010000x.xxxxxx.backup est créé pour indiquer le dernier journal utilisé avant la sauvegarde.
  • 131. Sauvegarde et restauration Sauvegarde à chaudSauvegarde à chaud RestaurationRestauration • Si disponibles, mettre de côté les journaux du répertoire $PGDATA/pg_xlog • Supprimer tous les fichiers et répertoires de l'instance et ses espaces de tables • Restaurer la sauvegarde complète en prenant garde à rétablir les permissions • Supprimer les fichiers dans $PGDATA/pg_xlog ou recréer ce répertoire PostgreSQL, administration alphorm.com™© • S'assurer que le répertoire $PGDATA/pg_xlog/archive_status existe • Recopier les journaux éventuellement mis de côté dans $PGDATA/pg_xlog • Créer un fichier recovery.conf dans $PGDATA à partir de recovery.conf.sample • Démarrer PostgreSQL en s'assurant que les utilisateurs ne pourront se connecter
  • 132. Sauvegarde et restauration Sauvegarde à chaudSauvegarde à chaud RestaurationRestauration •• Le fichierLe fichier recovery.confrecovery.conf - restore_command = 'cp /archive/%f %p' - recovery_target_time = '2008-04-23 11:20:55 EST' PostgreSQL, administration alphorm.com™©
  • 133. Sauvegarde et restauration Les étapes de notre TPLes étapes de notre TP Je met l’instance en mode ARCHIVELOGJe met l’instance en mode ARCHIVELOG Je lance une transactionJe lance une transaction T1T1 insertinsert Je démarre Le mode sauvegarde à chaud sousJe démarre Le mode sauvegarde à chaud sous PostgreSQLPostgreSQL selectselect pg_start_backuppg_start_backup()() Je réalise la sauvegarde au niveau du système d’exploitationJe réalise la sauvegarde au niveau du système d’exploitation tartar J’arrête le mode sauvegarde à chaudJ’arrête le mode sauvegarde à chaud selectselect pg_stop_backuppg_stop_backup()() Je lance une transactionJe lance une transaction T2T2 insertinsert PostgreSQL, administration alphorm.com™© Je lance une transactionJe lance une transaction T2T2 insertinsert Je bascule vers un nouveau fichier journalJe bascule vers un nouveau fichier journal selectselect pg_switch_xlogpg_switch_xlog Je lance une transactionJe lance une transaction T3T3 insertinsert JeJe bascule vers un nouveau fichierbascule vers un nouveau fichier journaljournal selectselect pg_switch_xlogpg_switch_xlog Je lance une transactionJe lance une transaction T4T4 insertinsert JeJe bascule vers un nouveau fichierbascule vers un nouveau fichier journaljournal selectselect pg_switch_xlogpg_switch_xlog
  • 134. Prochain module : Administrer au quotidien PostgreSQL PostgreSQL, administration alphorm.com™© Administrer au quotidien PostgreSQL
  • 135. Administrer au quotidien PostgreSQL PostgreSQL, administration alphorm.com™© Site : http://alphorm.com Blog : http://alphorm.com/blog Forum : http://alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : ndform@valneo-xi.fr Les bases de données
  • 136. Administrer au quotidien Pour chaque instance il existe les basesPour chaque instance il existe les bases postgrespostgres template0template0 template1template1 •• Les relations (tables, indexes, etc.) sont stockées dans les basesLes relations (tables, indexes, etc.) sont stockées dans les bases de donnéesde données PostgreSQL, administration alphorm.com™© de donnéesde données •• Pour chaque base, il existe au mois le schémaPour chaque base, il existe au mois le schéma publicpublic et leset les catalogues (catalogues (information_schemainformation_schema etet pg_catalogpg_catalog))
  • 137. Administrer au quotidien Les relationsLes relations Désigne des objets (tables, indexes, sequences)Désigne des objets (tables, indexes, sequences) •• Les données de chaque relation sont stockées dans un fichierLes données de chaque relation sont stockées dans un fichier identifié par son OIDidentifié par son OID -- $PGDATA/base/oid_bdd/filenode_relation$PGDATA/base/oid_bdd/filenode_relation •• Exception pour la base de données postgresException pour la base de données postgres PostgreSQL, administration alphorm.com™© •• Exception pour la base de données postgresException pour la base de données postgres -- $PGDATA/global$PGDATA/global
  • 138. Administrer au quotidien Création des bases de donnéesCréation des bases de données SyntaxeSyntaxe CREATE DATABASE nom [ [ WITH ] [ OWNER [=] utilisateur ] [ TEMPLATE [=] modèle ] [ ENCODING [=] encodage ] [ TABLESPACE [=] espace_de_tables ] PostgreSQL, administration alphorm.com™© Le propriétaire par défaut est l'utilisateur connectéLe propriétaire par défaut est l'utilisateur connecté La base de données modèle par défaut estLa base de données modèle par défaut est template1template1 L'encodage par défaut est celui de l'instanceL'encodage par défaut est celui de l'instance L'espace de tables par défaut estL'espace de tables par défaut est pg_defaultpg_default Disposer du droit createdb pour pouvoir créer une baseDisposer du droit createdb pour pouvoir créer une base
  • 139. Administrer au quotidien Suppression des bases de donnéesSuppression des bases de données SyntaxeSyntaxe DROP DATABASE [ IF EXISTS] nom Aucune connexion sur la base de données à supprimerAucune connexion sur la base de données à supprimer Seul l’administrateur ou le propriétaire peut supprimer une base de donnéesSeul l’administrateur ou le propriétaire peut supprimer une base de données PostgreSQL, administration alphorm.com™© Seul l’administrateur ou le propriétaire peut supprimer une base de donnéesSeul l’administrateur ou le propriétaire peut supprimer une base de données
  • 140. Administrer au quotidien Les schémasLes schémas Espace de nom logiqueEspace de nom logique Permet d’avoir plusieurs objets portant le même nom dans unePermet d’avoir plusieurs objets portant le même nom dans une même base de donnéesmême base de données Les objets sont accessible en préfixant le nom de l’objet par le nomLes objets sont accessible en préfixant le nom de l’objet par le nom du schéma « schéma.objet »du schéma « schéma.objet » PostgreSQL, administration alphorm.com™© La variableLa variable search_pathsearch_path est utilisée pour la recherche dans lesest utilisée pour la recherche dans les schémasschémas
  • 141. Administrer au quotidien Création des schémasCréation des schémas SyntaxeSyntaxe CREATE SCHEMA nom [ AUTHORIZATION utilisateur ] Le propriétaire par défaut est l'utilisateur connectéLe propriétaire par défaut est l'utilisateur connecté PostgreSQL, administration alphorm.com™© Le propriétaire par défaut est l'utilisateur connectéLe propriétaire par défaut est l'utilisateur connecté Pour créer un schémaPour créer un schéma •• Être administrateurÊtre administrateur •• Avoir le privilègeAvoir le privilège createcreate sur la base de données ciblesur la base de données cible
  • 142. Administrer au quotidien Suppression des schémasSuppression des schémas SyntaxeSyntaxe DROP SCHEMA [ IF EXISTS ] nom [ CASCADE ] Seul l’administrateur ou le propriétaire peu supprimer un schémaSeul l’administrateur ou le propriétaire peu supprimer un schéma L’option CASCADE permet de supprimer un schéma qui possède des objetsL’option CASCADE permet de supprimer un schéma qui possède des objets PostgreSQL, administration alphorm.com™© L’option CASCADE permet de supprimer un schéma qui possède des objetsL’option CASCADE permet de supprimer un schéma qui possède des objets
  • 143. Administrer au quotidien Suppression des schémasSuppression des schémas SyntaxeSyntaxe DROP SCHEMA [ IF EXISTS ] nom [ CASCADE ] Seul l’administrateur ou le propriétaire peu supprimer un schémaSeul l’administrateur ou le propriétaire peu supprimer un schéma L’option CASCADE permet de supprimer un schéma qui possède des objetsL’option CASCADE permet de supprimer un schéma qui possède des objets PostgreSQL, administration alphorm.com™© L’option CASCADE permet de supprimer un schéma qui possède des objetsL’option CASCADE permet de supprimer un schéma qui possède des objets