alphorm.com formation postgresql, la haute disponibilité
TRANSCRIPT
![Page 1: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/1.jpg)
Présentation de la
PostgreSQL, Haute Disponibilité
PostgreSQL, La haute disponibilité alphorm.com™©
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Présentation de la formation
Noureddine DRISSI Expert consultant bases de données
![Page 2: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/2.jpg)
Plan
• Présentation du formateur
• Mes formations sur alphorm
• Le plan de formation
• Publics concernés
• Connaissances requises
PostgreSQL, La haute disponibilité alphorm.com™©
• Connaissances requises
• Liens utiles
![Page 3: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/3.jpg)
Le formateur
� Noureddine DRISSI
� Expertise dans le domaine des bases de données
� 15 années d’expérience sur tous les SGBDR du marché (Langage SQL, Mysql, Oracle, SQL Server, Postgresql,DB2, MongoDB)
� Issue de l’environnement bancaire
PostgreSQL, La haute disponibilité alphorm.com™©
• Mon profil sur alphorm.com : http://www.alphorm.com/auteur/noureddine-drissi
![Page 4: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/4.jpg)
Mes formations sur alphorm.com
MySQL, Administration (1Z0-883)
Oracle Database 11g DBA 1 (1Z0-052)
Le langage SQL
PostgreSQL, La haute disponibilité alphorm.com™©
(1Z0-883)
MongoDB, administration
(1Z0-052)
Formation Administration PostgreSQLAdministration SQL Server
2012 (70-462)
![Page 5: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/5.jpg)
Connaissances préalables
� Connaissances en administration de PostgreSQL
� Avoir suivi le cours PostgreSQL, administration
PostgreSQL, La haute disponibilité alphorm.com™©
Formation Administration PostgreSQL
![Page 6: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/6.jpg)
A propos de ce cours
� Objectifs :
• Comprendre les mécanismes de haute disponibilité;
• Mettre en oeuvre une solution opérationnelle de haute disponibilité;
• Choisir la solution de haute disponibilité la plus adaptée;
PostgreSQL, La haute disponibilité alphorm.com™©
• Comprendre et maîtriser les différents modes de réplication.
![Page 7: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/7.jpg)
Plan du cours
�Présentation de la formation
�Présentation des solutions de haute disponibilité
�Le Warm Standby ou Log Shipping
�Le Hot Standby
PostgreSQL, La haute disponibilité alphorm.com™©
�Streaming Réplication
�pgPool-II
�La réplication avec Slony
�Conclusion
![Page 8: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/8.jpg)
GO
PostgreSQL, La haute disponibilité alphorm.com™©
GO
![Page 9: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/9.jpg)
L’environnement
PostgreSQL, Haute Disponibilité
PostgreSQL, La haute disponibilité alphorm.com™©
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
L’environnement
Noureddine DRISSI Expert consultant bases de données
![Page 10: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/10.jpg)
Environnement
� Architecture
Internet
IP: 192.168.1.171
PostgreSQL, La haute disponibilité alphorm.com™©
IP: 192.168.1.170Hostname: srvpgsql01OS: Linux Centos 6.3SGBDR: Postgresql 9.3
IP: 192.168.1.171Hostname: srvpgsql02OS: Linux Centos 6.3SGBDR: Postgresql 9.3
IP: 192.168.1.172Hostname: srvpgsql03OS: Linux Centos 6.3
![Page 11: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/11.jpg)
Présentation des solutions de haute disponibilité
PostgreSQL, La haute disponibilité alphorm.com™©
disponibilité
![Page 12: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/12.jpg)
Les solutions de haute
Présentation des solutions de haute disponibilité
PostgreSQL, La haute disponibilité alphorm.com™©
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Les solutions de haute disponibilité
Noureddine DRISSI Expert consultant bases de données
![Page 13: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/13.jpg)
Objectifs
� Présenter les solutions de haute disponibilité sous PostgreSQL
� Comprendre les principales caractéristiques de chaque solution
PostgreSQL, La haute disponibilité alphorm.com™©
![Page 14: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/14.jpg)
Les solutions de haute disponibilité
� Warm Standby ou Log Shipping
� Utilisation des fichiers journaux
� Nécessité d’être en mode ARCHIVELOG
� Nécessite un réseau fiable
PostgreSQL, La haute disponibilité alphorm.com™©
� Le FAIL OVER doit être géré manuellement ou par script
� Le serveur secondaire est en mode RESTORE
![Page 15: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/15.jpg)
Les solutions de haute disponibilité
� Architecture Warm Standby ou Log Shipping
PostgreSQL, La haute disponibilité alphorm.com™©
![Page 16: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/16.jpg)
Les solutions de haute disponibilité
� Hot Standby
� Utilisation des fichiers journaux
� Nécessité d’être en mode ARCHIVELOG
� Nécessite un réseau fiable
PostgreSQL, La haute disponibilité alphorm.com™©
� Le FAIL OVER doit être géré manuellement ou par script
� Le serveur secondaire est ouvert en mode lecture seule
![Page 17: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/17.jpg)
Les solutions de haute disponibilité
� Architecture Host Standby
PostgreSQL, La haute disponibilité alphorm.com™©
![Page 18: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/18.jpg)
Les solutions de haute disponibilité
� Streaming Replication
� Consiste à rejouer les transactions par paquet du maître vers l’esclave
� Transmission des transactions en groupe
� Nécessite un réseau fiable
PostgreSQL, La haute disponibilité alphorm.com™©
� Nécessite un réseau fiable
� Le FAIL OVER doit être géré manuellement ou par script
� Le serveur secondaire est ouvert en mode lecture seule
![Page 19: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/19.jpg)
Les solutions de haute disponibilité
� Architecture Streaming Replication
PostgreSQL, La haute disponibilité alphorm.com™©
![Page 20: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/20.jpg)
Les solutions de haute disponibilité
� Slony
� Système de réplication asynchrone pour un maître/plusieurs esclaves
� Permet de répliquer des données entre plusieurs serveurs PostgreSQL
PostgreSQL, La haute disponibilité alphorm.com™©
PostgreSQL
� La réplication s’effectue au niveau table
� Utilise le mécanisme de trigger
� Possibilité de mettre les serveurs Esclave en cascade
![Page 21: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/21.jpg)
Les solutions de haute disponibilité
� Architecture Slony
PostgreSQL, La haute disponibilité alphorm.com™©
![Page 22: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/22.jpg)
Les solutions de haute disponibilité
� PgPool-II
� Gestionnaire de connexion externe à PostgreSQL
� Permet de s’insérer entre les logiciels clients et les serveurs PostgreSQL
� Permet d’optimiser le nombre de connexions ouvertes sur un
PostgreSQL, La haute disponibilité alphorm.com™©
� Permet d’optimiser le nombre de connexions ouvertes sur un serveur PostgreSQL
� Permet de faire de la réplication et de la répartition de charge
![Page 23: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/23.jpg)
Les solutions de haute disponibilité
� Architecture: PgPool-II
PostgreSQL, La haute disponibilité alphorm.com™©
![Page 24: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/24.jpg)
Le Warm Standby
PostgreSQL, La haute disponibilité alphorm.com™©
![Page 25: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/25.jpg)
Préparation de
Le Warm Standby ou Log Shipping
PostgreSQL, La haute disponibilité alphorm.com™©
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Préparation de l’environnement
Noureddine DRISSI Expert consultant bases de données
![Page 26: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/26.jpg)
Objectifs
� Préparer l’environnement pour la mise en place du Warm Standby
� Installer PostgreSQL 9.3
� Initialiser les instances PostgreSQL
� Automatiser les échanges entre les deux serveurs avec ssh
PostgreSQL, La haute disponibilité alphorm.com™©
![Page 27: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/27.jpg)
Installation de PostgreSQL 9.3
� Installation du dépôt PGDG
� yum localinstall http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-centos93-9.3-1.noarch.rpm
� Installation de PostgreSQL
� yum install postgresql93-server
PostgreSQL, La haute disponibilité alphorm.com™©
� yum install postgresql93-server
![Page 28: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/28.jpg)
Initialisation des instances PostgreSQL
� Utilisation du programme initdb
� su - postgres
• echo $PGDATA
• initdb -D $PGDATA
• pg_ctl -D $PGDATA start
PostgreSQL, La haute disponibilité alphorm.com™©
• pg_ctl -D $PGDATA start
![Page 29: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/29.jpg)
Automatisation des échanges ssh
� Génération du couple clés publique/privée
� ssh-keygen -t rsa
� Transfert d’une copie de la clé publique sur le serveur distant
PostgreSQL, La haute disponibilité alphorm.com™©
![Page 30: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/30.jpg)
Mise en oeuvre du mode ARCHIVELOG
PostgreSQL, La haute disponibilité alphorm.com™©
ARCHIVELOG
![Page 31: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/31.jpg)
Mise en oeuvre du mode
Le Warm Standby ou Log Shipping
PostgreSQL, La haute disponibilité alphorm.com™©
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Mise en oeuvre du mode ARCHIVELOG
Noureddine DRISSI Expert consultant bases de données
![Page 32: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/32.jpg)
Objectif
� Configurer le mode ARCHIVELOG pour le Warm Standby
PostgreSQL, La haute disponibilité alphorm.com™©
![Page 33: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/33.jpg)
Les paramètres de configuration
� Dans le fichier postgresql.conf du serveur primaire
� archive_mode = on
� wal_level = archive
� archive_command = ‘scp %p 192.168.1.171:/u101/pgsql/wal_primaire/%f’
� archive_timeout = 60
PostgreSQL, La haute disponibilité alphorm.com™©
� archive_timeout = 60
![Page 34: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/34.jpg)
Mise en oeuvre du mode de réplication Warm Standby
PostgreSQL, La haute disponibilité alphorm.com™©
réplication Warm Standby
![Page 35: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/35.jpg)
Mise en oeuvre de la
Le Warm Standby ou Log Shipping
PostgreSQL, La haute disponibilité alphorm.com™©
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Mise en oeuvre de la réplication Warm Standby
Noureddine DRISSI Expert consultant bases de données
![Page 36: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/36.jpg)
Objectifs
� Connaître les caractéristiques d’une solution de réplication Warm Standby
� Mettre en oeuvre une solution de réplication Warm Standby
PostgreSQL, La haute disponibilité alphorm.com™©
![Page 37: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/37.jpg)
Caractéristiques
� Réplication d’un cluster PostgreSQL sur un serveur secondaire
� Le serveur secondaire est identique au serveur primaire à un WAL près
� Réplication au niveau du cluster (instance) et non au niveau bases
� Intégré à PostgreSQL
PostgreSQL, La haute disponibilité alphorm.com™©
� Simple et robuste
� Utilise l’outil pg_standby
� Le serveur secondaire est en mode RESTORE
![Page 38: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/38.jpg)
Fonctionnement
� Un ou plusieurs serveurs de secours
� Serveur principal : opère en mode d'archivage continu
� Serveur de secours : opère en mode de récupération continue restore_command
� Transfert de fichiers appelé "transfert de journaux"
PostgreSQL, La haute disponibilité alphorm.com™©
� Transfert de fichiers appelé "transfert de journaux"
� Envoi des journaux asynchrone
� Taille de la fenêtre des données perdues peut-être réduite avec archive_timeout
� Serveur de secours non disponible car en mode récupération
![Page 39: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/39.jpg)
Les étapes de mise en oeuvre
1. Installer pg_standby sur les deux serveurs (postgresql93-contrib)
2. Préparer la configuration du serveur primaire et secours (identique)
3. Configurer l'archivage continu sur le serveur primaire
4. Réaliser une sauvegarde de la racine de l’instance du serveur primaire
PostgreSQL, La haute disponibilité alphorm.com™©
5. Restaurer la sauvegarde sur le serveur de secours
6. Commencer la récupération sur le serveur de secours à partir de l'archive WAL (recovery.conf)
![Page 40: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/40.jpg)
FAILOVER
� L'ancien serveur de secours devient serveur primaire
� L'ancien serveur primaire est arrêté et peut le rester
� Pour revenir au fonctionnement normal : il faut récréer intégralement un serveur de secours
� Rédiger une procédure pour le mécanisme de FAILOVER
PostgreSQL, La haute disponibilité alphorm.com™©
� Rédiger une procédure pour le mécanisme de FAILOVER
![Page 41: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/41.jpg)
Le Hot Standby
PostgreSQL, La haute disponibilité alphorm.com™©
![Page 42: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/42.jpg)
Mise en oeuvre de la
Le Hot Standby
PostgreSQL, La haute disponibilité alphorm.com™©
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Mise en oeuvre de la réplication Hot Standby
Noureddine DRISSI Expert consultant bases de données
![Page 43: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/43.jpg)
Objectifs
� Connaître les caractéristiques d’une solution de réplication Hot Standby
� Mettre en oeuvre une solution de réplication Hot Standby
PostgreSQL, La haute disponibilité alphorm.com™©
![Page 44: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/44.jpg)
Caractéristiques
� Réplication d’un cluster PostgreSQL sur un serveur secondaire
� Le serveur secondaire est identique au serveur primaire à un WAL près
� Réplication au niveau du cluster (instance) et non au niveau bases
� Intégré à PostgreSQL
PostgreSQL, La haute disponibilité alphorm.com™©
� Simple et robuste
� Utilise l’outil pg_standby
� Le serveur secondaire est en mode LECTURE SEULE
![Page 45: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/45.jpg)
Fonctionnement
� Un ou plusieurs serveurs de secours
� Serveur principal : opère en mode d'archivage continu
� Serveur de secours : opère en mode de récupération continue restore_command
� Transfert de fichiers appelé "transfert de journaux"
PostgreSQL, La haute disponibilité alphorm.com™©
� Transfert de fichiers appelé "transfert de journaux"
� Envoi des journaux asynchrone
� Taille de la fenêtre des données perdues peut-être réduite avec archive_timeout
� Serveur de secours disponible en LECTURE seule
![Page 46: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/46.jpg)
Les étapes de mise en oeuvre
1. Installer pg_standby sur les deux serveurs (postgresql93-contrib)
2. Préparer la configuration du serveur primaire et secours (identique)
3. Configurer l'archivage continu sur le serveur primaire (wal_level = hot_standby)
4. Réaliser une sauvegarde de la racine de l’instance du serveur primaire
PostgreSQL, La haute disponibilité alphorm.com™©
4. Réaliser une sauvegarde de la racine de l’instance du serveur primaire
5. Restaurer la sauvegarde sur le serveur de secours
6. Instance secondaire en mode hot standby (hot_standby = on)
7. Commencer la récupération sur le serveur de secours à partir de l'archive WAL (recovery.conf)
![Page 47: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/47.jpg)
Fonctions utiles
� pg_is_in_recovery() => savoir si le serveur est maitre ou standby
� pg_last_xlog_receive_location() => indique l'emplacement du dernier enregistrement de transaction reçu
� pg_last_xlog_replay_location() => précise l'emplacement du dernier enregistrement rejoué
PostgreSQL, La haute disponibilité alphorm.com™©
![Page 48: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/48.jpg)
FAILOVER
� L'ancien serveur de secours devient serveur primaire
� L'ancien serveur primaire est arrêté et peut le rester
� Pour revenir au fonctionnement normal : il faut récréer intégralement un serveur de secours
� Rédiger une procédure pour le mécanisme de FAILOVER
PostgreSQL, La haute disponibilité alphorm.com™©
� Rédiger une procédure pour le mécanisme de FAILOVER
![Page 49: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/49.jpg)
Streaming Replication
PostgreSQL, La haute disponibilité alphorm.com™©
![Page 50: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/50.jpg)
Mise en oeuvre du
Streaming Replication
PostgreSQL, La haute disponibilité alphorm.com™©
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Mise en oeuvre du Streaming Replication
Noureddine DRISSI Expert consultant bases de données
![Page 51: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/51.jpg)
Objectifs
� Connaître les caractéristiques d’une solution de Streaming Replication
� Mettre en oeuvre une solution de Streaming Replication
PostgreSQL, La haute disponibilité alphorm.com™©
![Page 52: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/52.jpg)
Caractéristiques
� Réplication d’un cluster PostgreSQL sur un ou plusieurs serveurs secondaires
� La réplication se fait au niveau transaction et non plus au niveau d’un fichier WAL (Write Ahead Log)
� Réplication au niveau du cluster (instance) et non au niveau bases
PostgreSQL, La haute disponibilité alphorm.com™©
� Le serveur secondaire est en mode LECTURE SEULE
![Page 53: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/53.jpg)
Fonctionnement
� Un ou plusieurs serveurs de secours
� Utilise deux processus
� wal sender : envoi les enregistrements de journaux de transactions au processus wal receiver des serveurs secondaires
� wal receiver: reçoit les transactions du wal sender et les applique
PostgreSQL, La haute disponibilité alphorm.com™©
� wal receiver: reçoit les transactions du wal sender et les applique
� Serveur de secours disponible en LECTURE seule
![Page 54: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/54.jpg)
Configuration du serveur primaire
� Dans le fichier $PGDATA/postgresql.conf
• wal_level = hot_standby
• archive_mode = on
• archive_command = 'cp %p /u103/pgsql/archives/%f‘
• max_wal_senders = 1
PostgreSQL, La haute disponibilité alphorm.com™©
• max_wal_senders = 1
• listen_addresses = '*‘
• wal_keep_segments = 10
� Dans le fichier $PGDATA/pg_hba.conf
• host replication admreplica 192.168.1.171/24 md5
![Page 55: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/55.jpg)
Configuration du serveur secondaire
� Dans le fichier $PGDATA/postgresql.conf
• hot_standby = on
• #max_wal_senders = 0
� Dans le fichier $PGDATA/recovery.conf
standby_mode = 'on'
PostgreSQL, La haute disponibilité alphorm.com™©
• standby_mode = 'on'
• restore_command = 'cp /u101/pgsql/wal_primaire/%f %p'
• primary_conninfo = 'host=192.168.1.170 port=5432 user=admreplica password=secret'
• trigger_file = '/u101/pgsql/wal_primaire/stopstandby'
![Page 56: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/56.jpg)
Fonctions utiles
� pg_is_in_recovery() => savoir si le serveur est maitre ou standby
� pg_last_xlog_receive_location() => indique l'emplacement du dernier enregistrement de transaction reçu
� pg_last_xlog_replay_location() => précise l'emplacement du dernier enregistrement rejoué
PostgreSQL, La haute disponibilité alphorm.com™©
![Page 57: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/57.jpg)
FAILOVER
� L'ancien serveur de secours devient serveur primaire
� L'ancien serveur primaire est arrêté et peut le rester
� Pour revenir au fonctionnement normal : il faut récréer intégralement un serveur de secours
� Rédiger une procédure pour le mécanisme de FAILOVER
PostgreSQL, La haute disponibilité alphorm.com™©
� Rédiger une procédure pour le mécanisme de FAILOVER
![Page 58: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/58.jpg)
PgPool
PostgreSQL, La haute disponibilité alphorm.com™©
![Page 59: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/59.jpg)
Mise en oeuvre de la
pgPool-II
PostgreSQL, La haute disponibilité alphorm.com™©
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Mise en oeuvre de la réplication avec pgPool-II
Noureddine DRISSI Expert consultant bases de données
![Page 60: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/60.jpg)
Objectifs
� Connaître les caractéristiques d’une solution de réplication avec pgPool-II
� Mettre en oeuvre une solution de réplication avec pgPool-II
PostgreSQL, La haute disponibilité alphorm.com™©
![Page 61: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/61.jpg)
Caractéristiques
� Gestionnaire de connexion Pgpool externe à PostgreSQL
� Permet de s’insérer entre les logiciels clients et les serveurs PostgreSQL
� Permet d’optimiser le nombre de connexions ouvertes sur un serveur PostgreSQL
� Permet d’utiliser jusqu’à 128 serveur PostgreSQL
PostgreSQL, La haute disponibilité alphorm.com™©
� Permet d’utiliser jusqu’à 128 serveur PostgreSQL
� Peut être utilisé comme une solution de réplication
� Permet de faire de la répartition de charge
![Page 62: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/62.jpg)
Configuration de pgPool-II
� Pour la réplication
� Dans le fichier pgpool.conf
• listen_addresses = '*'
• port = 9999
• replication_mode = true
PostgreSQL, La haute disponibilité alphorm.com™©
• replication_mode = true
• backend_hostname0 = '192.168.1.170'
• backend_port0 = 5432
• backend_hostname1 = '192.168.1.171'
• backend_port1 = 5432
![Page 63: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/63.jpg)
Les étapes de mise en oeuvre
� Configurer l’accès aux instances PostgreSQL (pg_hba.conf)
� Installer pgPool-II
� Configurer la réplication dans pgpool.conf
� Réaliser un test
PostgreSQL, La haute disponibilité alphorm.com™©
![Page 64: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/64.jpg)
Rappel : environnement
� Architecture
Internet
IP: 192.168.1.171
PostgreSQL, La haute disponibilité alphorm.com™©
IP: 192.168.1.170Hostname: srvpgsql01OS: Linux Centos 6.3SGBDR: Postgresql 9.3
IP: 192.168.1.171Hostname: srvpgsql02OS: Linux Centos 6.3SGBDR: Postgresql 9.3
IP: 192.168.1.172Hostname: srvpgsql03OS: Linux Centos 6.3
![Page 65: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/65.jpg)
Répartition de charge avec PgPool-II
PostgreSQL, La haute disponibilité alphorm.com™©
![Page 66: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/66.jpg)
Répartition de charge avec
pgPool-II
PostgreSQL, La haute disponibilité alphorm.com™©
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Répartition de charge avec pgPool-II
Noureddine DRISSI Expert consultant bases de données
![Page 67: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/67.jpg)
Objectif
� Mettre en oeuvre la répartition de charge avec pgPool-II
PostgreSQL, La haute disponibilité alphorm.com™©
![Page 68: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/68.jpg)
Configuration de pgPool-II
� Dans le fichier pgpool.conf
• load_balance_mode = true
• backend_hostname0 = '192.168.1.170'
• backend_port0 = 5432
• backend_weight0 = 0.5
PostgreSQL, La haute disponibilité alphorm.com™©
• backend_weight0 = 0.5
• backend_hostname1 = '192.168.1.171'
• backend_port1 = 5432
• backend_weight1 = 0.5
![Page 69: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/69.jpg)
Les limites de la réplication avec pgPool-II
PostgreSQL, La haute disponibilité alphorm.com™©
pgPool-II
![Page 70: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/70.jpg)
Les limites de la
pgPool-II
PostgreSQL, La haute disponibilité alphorm.com™©
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Les limites de la réplication avec pgPool-II
Noureddine DRISSI Expert consultant bases de données
![Page 71: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/71.jpg)
Objectif
� Connaître les limites de la réplication avec pgPool-II
PostgreSQL, La haute disponibilité alphorm.com™©
![Page 72: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/72.jpg)
La réplication avec Slony
PostgreSQL, La haute disponibilité alphorm.com™©
![Page 73: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/73.jpg)
Présentation de Slony
La réplication avec Slony
PostgreSQL, La haute disponibilité alphorm.com™©
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Présentation de Slony
Noureddine DRISSI Expert consultant bases de données
![Page 74: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/74.jpg)
Objectifs
� Connaître les caractéristiques techniques de fonctionnement de Slony
� Connaître la terminologie utilisée par Slony
PostgreSQL, La haute disponibilité alphorm.com™©
![Page 75: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/75.jpg)
Caractéristiques techniques
� Système de réplication asynchrone pour un maître/plusieurs esclaves
� Utilise le mécanisme de trigger (réplication des changements de données)
� Possibilité de mettre les serveurs Esclave en cascade
� Les objets répliqués sont les tables et les séquences
PostgreSQL, La haute disponibilité alphorm.com™©
� Les objets répliqués sont les tables et les séquences
� Les serveurs esclaves sont en lecture seule
� Les informations de réplication Slony sont stockés dans un schéma (nom du réplica) de la base de données à répliquée
![Page 76: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/76.jpg)
Terminologie
� Un cluster est une instance PostgreSQL
� Un nœud est un serveur (maître/esclave)
� Un set est un ensemble cohérent de tables et de séquences
� L'abonnement permet à un nœud de s'abonner aux modifications des données réalisées pour un certain set
PostgreSQL, La haute disponibilité alphorm.com™©
données réalisées pour un certain set
� Un slon daemon est le démon Slony qui gère la réplication sur les noeuds
![Page 77: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/77.jpg)
Architecture
Noeudmaître
NoeudesclaveCluster
TablesTables
ClusterSlon
deamon
Slon deamonEnvoi des données
PostgreSQL, La haute disponibilité alphorm.com™©
IP: 192.168.1.170IP: 192.168.1.171
Set 1
Set 2
SéquencesAbonnement
Triggers Triggers
![Page 78: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/78.jpg)
Les contraintes
� Existence d’une clé primaire sur chaque table à répliquer
� Ne pas utiliser l'ordre SQL TRUNCATE
� Le schéma de la base de données répliquée ne doit pas être modifié fréquemment
PostgreSQL, La haute disponibilité alphorm.com™©
![Page 79: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/79.jpg)
Mise en oeuvre de la réplication avec Slony
PostgreSQL, La haute disponibilité alphorm.com™©
Slony
![Page 80: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/80.jpg)
Mise en oeuvre de la
La réplication avec Slony
PostgreSQL, La haute disponibilité alphorm.com™©
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Mise en oeuvre de la réplication avec Slony
Noureddine DRISSI Expert consultant bases de données
![Page 81: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/81.jpg)
Objectifs
� Identifier les différentes étapes de mise en oeuvre
� Mettre en oeuvre une solution de réplication avec Slony
PostgreSQL, La haute disponibilité alphorm.com™©
![Page 82: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/82.jpg)
TPNoeud maître
(repslony)
NoeudesclaveInstance
Postgresql 5432
TablesTables
clients et emp
Slon deamon
Slon deamonEnvoi des données
Instance Postgresql 5432
PostgreSQL, La haute disponibilité alphorm.com™©
IP: 192.168.1.170IP: 192.168.1.171
Set 1
Séquences
emp
AbonnementSéquences
![Page 83: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/83.jpg)
Maintenance de la réplication avec Slony
PostgreSQL, La haute disponibilité alphorm.com™©
Slony
![Page 84: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/84.jpg)
Maintenance de la
La réplication avec Slony
PostgreSQL, La haute disponibilité alphorm.com™©
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Maintenance de la réplication avec Slony
Noureddine DRISSI Expert consultant bases de données
![Page 85: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/85.jpg)
Objectifs
� Connaître les éléments de surveillance de la réplication Slony
� Réaliser une bascule du maître vers un esclave
PostgreSQL, La haute disponibilité alphorm.com™©
![Page 86: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/86.jpg)
Surveillance de la réplication
� Les éléments à surveiller
� La réplication des données
• Schema <_nom_replica> dans la base de données répliquée
- Vue <_nom_replica>.sl_status
� Le changement du schéma
PostgreSQL, La haute disponibilité alphorm.com™©
� Le changement du schéma
• Utilisation de l’outil perl check_postgres.pl
• Utilisation du script slonik_execute_script
![Page 87: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/87.jpg)
Les principales actions de maintenance
� Faire une bascule du maître
� Ajouter un noeud à la réplication (slonik_add_node)
� Supprimer un noeud de la réplication (slonik_drop_node)
� Ajouter un set à un noeud (slonik_create_set)
PostgreSQL, La haute disponibilité alphorm.com™©
� Supprimer un set d’un noeud (slonik_drop_set)
� Ajouter/Supprimer une table d’un set (slonik_drop_table)
� Abonné un noeud à un set (slonik_subscribe_set)
� ...
![Page 88: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/88.jpg)
Switch Over
� Bascule manuelle
� Le noeud esclave devient le noeud maître
� L’ancien noeud maître devient le noeud esclave (synchronisé)
� Utilisation de l’outil slonik
lock set (id = 1, origin = 1);
PostgreSQL, La haute disponibilité alphorm.com™©
lock set (id = 1, origin = 1);
move set (id = 1, old origin = 1, new origin = 2);
![Page 89: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/89.jpg)
Fail Over
� Bascule d’urgence
� Le noeud esclave devient le noeud maître
� L’ancien noeud maître est désynchronisé (necéssité de le reconstruire)
� Utilisation de l’outil slonik
failover (id = 1, backup node = 2);
PostgreSQL, La haute disponibilité alphorm.com™©
failover (id = 1, backup node = 2);
� Suppression de l’ancien noeud maître
![Page 90: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/90.jpg)
Conclusion
PostgreSQL, La haute disponibilité alphorm.com™©
![Page 91: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/91.jpg)
Le mot de la fin
Conclusion
PostgreSQL, La haute disponibilité alphorm.com™©
Site : http://www.alphorm.comBlog : http://www.alphorm.com/blogForum : http://www.alphorm.com/forum
Le mot de la fin
Noureddine DRISSI Expert consultant bases de données
![Page 92: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/92.jpg)
Conclusion
� Rappel des objectifs de la formation
• Ce que vous devez savoir faire
- Mettre en oeuvre la réplication asynchrone Warm Standby;
- Mettre en oeuvre la réplication asynchrone Hot Standby;
PostgreSQL, La haute disponibilité alphorm.com™©
- Mettre en oeuvre la réplication asynchrone Streaming Replication;
- Mettre en oeuvre la réplication asynchrone avec Slony.
![Page 93: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/93.jpg)
Conlusion
� A venir:
� SQL Server Business Intelligence
� La modélisation au sens MERISE
PostgreSQL, La haute disponibilité alphorm.com™©
![Page 94: Alphorm.com Formation PostgreSQL, la Haute Disponibilité](https://reader033.vdocuments.pub/reader033/viewer/2022061509/55a93bf91a28ab94758b4643/html5/thumbnails/94.jpg)
Conclusion
FIN
Merci pour votre attention
PostgreSQL, La haute disponibilité alphorm.com™©
Merci pour votre attention