PostgreSQL, Haute Disponibilité 
Présentation de la 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Fo...
Plan 
• Présentation du formateur 
• Mes formations sur alphorm 
• Le plan de formation 
• Publics concernés 
• Connaissan...
Le formateur 
 Noureddine DRISSI 
 Expertise dans le domaine des bases de données 
 15 années d’expérience sur tous les SG...
Mes formations sur alphorm.com 
MySQL, Administration 
(1Z0-883) 
Oracle Database 11g DBA 1 
(1Z0-052) 
Le langage SQL 
Mo...
Connaissances préalables 
 Connaissances en administration de PostgreSQL 
 Avoir suivi le cours PostgreSQL, administration...
A propos de ce cours 
 Objectifs : 
• Comprendre les mécanismes de haute disponibilité; 
• Mettre en oeuvre une solution o...
Plan du cours 
Présentation de la formation 
Présentation des solutions de haute disponibilité 
Le Warm Standby ou Log Shi...
GO 
PostgreSQL, La haute disponibilité alphorm.com™©
PostgreSQL, Haute Disponibilité 
L’environnement 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum...
Environnement 
 Architecture 
Internet 
IP: 192.168.1.171 
IP: 192.168.1.170 
Hostname: srvpgsql01 
OS: Linux Centos 6.3 
...
Présentation des solutions de haute 
disponibilité 
PostgreSQL, La haute disponibilité alphorm.com™©
Présentation des solutions de 
haute disponibilité 
Les solutions de haute 
Site : http://www.alphorm.com 
Blog : http://w...
Objectifs 
 Présenter les solutions de haute disponibilité sous PostgreSQL 
 Comprendre les principales caractéristiques d...
Les solutions de haute disponibilité 
 Warm Standby ou Log Shipping 
 Utilisation des fichiers journaux 
 Nécessité d’être...
Les solutions de haute disponibilité 
 Architecture Warm Standby ou Log Shipping 
PostgreSQL, La haute disponibilité alpho...
Les solutions de haute disponibilité 
 Hot Standby 
 Utilisation des fichiers journaux 
 Nécessité d’être en mode ARCHIVEL...
Les solutions de haute disponibilité 
 Architecture Host Standby 
PostgreSQL, La haute disponibilité alphorm.com™©
Les solutions de haute disponibilité 
 Streaming Replication 
 Consiste à rejouer les transactions par paquet du maître ve...
Les solutions de haute disponibilité 
 Architecture Streaming Replication 
PostgreSQL, La haute disponibilité alphorm.com™...
Les solutions de haute disponibilité 
 Slony 
 Système de réplication asynchrone pour un maître/plusieurs 
esclaves 
 Perm...
Les solutions de haute disponibilité 
 Architecture Slony 
PostgreSQL, La haute disponibilité alphorm.com™©
Les solutions de haute disponibilité 
 PgPool-II 
 Gestionnaire de connexion externe à PostgreSQL 
 Permet de s’insérer en...
Les solutions de haute disponibilité 
 Architecture: PgPool-II 
PostgreSQL, La haute disponibilité alphorm.com™©
Le Warm Standby 
PostgreSQL, La haute disponibilité alphorm.com™©
Le Warm Standby ou Log 
Shipping 
Préparation de 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum...
Objectifs 
 Préparer l’environnement pour la mise en place du Warm Standby 
 Installer PostgreSQL 9.3 
 Initialiser les in...
Installation de PostgreSQL 9.3 
 Installation du dépôt PGDG 
 yum localinstall http://yum.postgresql.org/9.3/redhat/rhel-6...
Initialisation des instances PostgreSQL 
 Utilisation du programme initdb 
 su - postgres 
• echo $PGDATA 
• initdb -D $PG...
Automatisation des échanges ssh 
 Génération du couple clés publique/privée 
 ssh-keygen -t rsa 
 Transfert d’une copie de...
Mise en oeuvre du mode 
ARCHIVELOG 
PostgreSQL, La haute disponibilité alphorm.com™©
Le Warm Standby ou Log 
Shipping 
Mise en oeuvre du mode 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blo...
Objectif 
 Configurer le mode ARCHIVELOG pour le Warm Standby 
PostgreSQL, La haute disponibilité alphorm.com™©
Les paramètres de configuration 
 Dans le fichier postgresql.conf du serveur primaire 
 archive_mode = on 
 wal_level = ar...
Mise en oeuvre du mode de 
réplication Warm Standby 
PostgreSQL, La haute disponibilité alphorm.com™©
Le Warm Standby ou Log 
Shipping 
Mise en oeuvre de la 
réplication Warm Standby 
Site : http://www.alphorm.com 
Blog : ht...
Objectifs 
 Connaître les caractéristiques d’une solution de réplication Warm 
Standby 
 Mettre en oeuvre une solution de ...
Caractéristiques 
 Réplication d’un cluster PostgreSQL sur un serveur secondaire 
 Le serveur secondaire est identique au ...
Fonctionnement 
 Un ou plusieurs serveurs de secours 
 Serveur principal : opère en mode d'archivage continu 
 Serveur de ...
Les étapes de mise en oeuvre 
1. Installer pg_standby sur les deux serveurs (postgresql93-contrib) 
2. Préparer la configu...
FAILOVER 
 L'ancien serveur de secours devient serveur primaire 
 L'ancien serveur primaire est arrêté et peut le rester 
...
Le Hot Standby 
PostgreSQL, La haute disponibilité alphorm.com™©
Le Hot Standby 
Mise en oeuvre de la 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://ww...
Objectifs 
 Connaître les caractéristiques d’une solution de réplication Hot Standby 
 Mettre en oeuvre une solution de ré...
Caractéristiques 
 Réplication d’un cluster PostgreSQL sur un serveur secondaire 
 Le serveur secondaire est identique au ...
Fonctionnement 
 Un ou plusieurs serveurs de secours 
 Serveur principal : opère en mode d'archivage continu 
 Serveur de ...
Les étapes de mise en oeuvre 
1. Installer pg_standby sur les deux serveurs (postgresql93-contrib) 
2. Préparer la configu...
Fonctions utiles 
 pg_is_in_recovery() = savoir si le serveur est maitre ou standby 
 pg_last_xlog_receive_location() = in...
FAILOVER 
 L'ancien serveur de secours devient serveur primaire 
 L'ancien serveur primaire est arrêté et peut le rester 
...
Streaming Replication 
PostgreSQL, La haute disponibilité alphorm.com™©
Streaming Replication 
Mise en oeuvre du 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http:...
Objectifs 
 Connaître les caractéristiques d’une solution de Streaming Replication 
 Mettre en oeuvre une solution de Stre...
Caractéristiques 
 Réplication d’un cluster PostgreSQL sur un ou plusieurs serveurs 
secondaires 
 La réplication se fait ...
Fonctionnement 
 Un ou plusieurs serveurs de secours 
 Utilise deux processus 
 wal sender : envoi les enregistrements de ...
Configuration du serveur primaire 
 Dans le fichier $PGDATA/postgresql.conf 
• wal_level = hot_standby 
• archive_mode = o...
Configuration du serveur secondaire 
 Dans le fichier $PGDATA/postgresql.conf 
• hot_standby = on 
• #max_wal_senders = 0 ...
Fonctions utiles 
 pg_is_in_recovery() = savoir si le serveur est maitre ou standby 
 pg_last_xlog_receive_location() = in...
FAILOVER 
 L'ancien serveur de secours devient serveur primaire 
 L'ancien serveur primaire est arrêté et peut le rester 
...
PgPool 
PostgreSQL, La haute disponibilité alphorm.com™©
pgPool-II 
Mise en oeuvre de la 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://www.alp...
Objectifs 
 Connaître les caractéristiques d’une solution de réplication avec 
pgPool-II 
 Mettre en oeuvre une solution d...
Caractéristiques 
 Gestionnaire de connexion Pgpool externe à PostgreSQL 
 Permet de s’insérer entre les logiciels clients...
Configuration de pgPool-II 
 Pour la réplication 
 Dans le fichier pgpool.conf 
• listen_addresses = '*' 
• port = 9999 
•...
Les étapes de mise en oeuvre 
 Configurer l’accès aux instances PostgreSQL (pg_hba.conf) 
 Installer pgPool-II 
 Configure...
Rappel : environnement 
 Architecture 
Internet 
IP: 192.168.1.171 
IP: 192.168.1.170 
Hostname: srvpgsql01 
OS: Linux Cen...
Répartition de charge avec PgPool-II 
PostgreSQL, La haute disponibilité alphorm.com™©
pgPool-II 
Répartition de charge avec 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://w...
Objectif 
 Mettre en oeuvre la répartition de charge avec pgPool-II 
PostgreSQL, La haute disponibilité alphorm.com™©
Configuration de pgPool-II 
 Dans le fichier pgpool.conf 
• load_balance_mode = true 
• backend_hostname0 = '192.168.1.170...
Les limites de la réplication avec 
pgPool-II 
PostgreSQL, La haute disponibilité alphorm.com™©
pgPool-II 
Les limites de la 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://www.alphor...
Objectif 
 Connaître les limites de la réplication avec pgPool-II 
PostgreSQL, La haute disponibilité alphorm.com™©
La réplication avec Slony 
PostgreSQL, La haute disponibilité alphorm.com™©
La réplication avec Slony 
Présentation de Slony 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum...
Objectifs 
 Connaître les caractéristiques techniques de fonctionnement de Slony 
 Connaître la terminologie utilisée par ...
Caractéristiques techniques 
 Système de réplication asynchrone pour un maître/plusieurs esclaves 
 Utilise le mécanisme d...
Terminologie 
 Un cluster est une instance PostgreSQL 
 Un noeud est un serveur (maître/esclave) 
 Un set est un ensemble ...
Architecture 
Noeud 
maître 
Noeud 
Cluster esclave 
TTaabblleess 
Cluster 
Slon 
deamon 
Slon 
Envoi des données deamon 
...
Les contraintes 
 Existence d’une clé primaire sur chaque table à répliquer 
 Ne pas utiliser l'ordre SQL TRUNCATE 
 Le sc...
Mise en oeuvre de la réplication avec 
Slony 
PostgreSQL, La haute disponibilité alphorm.com™©
La réplication avec Slony 
Mise en oeuvre de la 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum ...
Objectifs 
 Identifier les différentes étapes de mise en oeuvre 
 Mettre en oeuvre une solution de réplication avec Slony ...
TP 
Noeud maître 
(repslony) 
Noeud 
Instance 
Instance esclave 
Postgresql 5432 
Tables 
clients Tables 
et 
emp 
Slon 
d...
Maintenance de la réplication avec 
Slony 
PostgreSQL, La haute disponibilité alphorm.com™©
La réplication avec Slony 
Maintenance de la 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : h...
Objectifs 
 Connaître les éléments de surveillance de la réplication Slony 
 Réaliser une bascule du maître vers un esclav...
Surveillance de la réplication 
 Les éléments à surveiller 
 La réplication des données 
• Schema _nom_replica dans la bas...
Les principales actions de maintenance 
 Faire une bascule du maître 
 Ajouter un noeud à la réplication (slonik_add_node)...
Switch Over 
 Bascule manuelle 
 Le noeud esclave devient le noeud maître 
 L’ancien noeud maître devient le noeud esclave...
Fail Over 
 Bascule d’urgence 
 Le noeud esclave devient le noeud maître 
 L’ancien noeud maître est désynchronisé (necéss...
Conclusion 
PostgreSQL, La haute disponibilité alphorm.com™©
Conclusion 
Le mot de la fin 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://www.alphor...
Conclusion 
 Rappel des objectifs de la formation 
• Ce que vous devez savoir faire 
- Mettre en oeuvre la réplication asy...
Conlusion 
 A venir: 
 SQL Server Business Intelligence 
 La modélisation au sens MERISE 
PostgreSQL, La haute disponibili...
Conclusion 
FIN 
Merci pour votre attention 
PostgreSQL, La haute disponibilité alphorm.com™©
Prochain SlideShare
Chargement dans…5
×

Alphorm.com Formation PostgreSQL, la Haute Disponibilité

6 245 vues

Publié le

Vous trouverez la formation ici:
http://www.alphorm.com/tutoriel/formation-en-ligne-postgresql-la-haute-disponibilite

Après la formation d'administration de PostgreSQL, voilà la formation qui traite La Haute Disponibilité sous PostgreSQL.
Noureddine DRISSI vous montre les différentes méthodes de la mise de la HD sous PostgreSQL : Le Warm Standby ou Log Shipping, Le Hot Standby, Streaming Replication, pgPool-II, La réplication avec Slony.

Pour suivre cette formation vous devez avoir des connaissances solides sur Linux (vous avez déjà la formation LPIC-1 et LPIC-2 sur alphorm) et aussi d'avoir suivi la formation PostgreSQL et la formation SQL.

Publié dans : Technologie
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
6 245
Sur SlideShare
0
Issues des intégrations
0
Intégrations
3 464
Actions
Partages
0
Téléchargements
221
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Alphorm.com Formation PostgreSQL, la Haute Disponibilité

  1. 1. PostgreSQL, Haute Disponibilité Présentation de la Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum formation Noureddine DRISSI Expert consultant bases de données PostgreSQL, La haute disponibilité alphorm.com™©
  2. 2. Plan • Présentation du formateur • Mes formations sur alphorm • Le plan de formation • Publics concernés • Connaissances requises • Liens utiles PostgreSQL, La haute disponibilité alphorm.com™©
  3. 3. 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 • contact@valneo-xi.fr • Mon profil sur alphorm.com : http://www.alphorm.com/auteur/noureddine-drissi PostgreSQL, La haute disponibilité alphorm.com™©
  4. 4. Mes formations sur alphorm.com MySQL, Administration (1Z0-883) Oracle Database 11g DBA 1 (1Z0-052) Le langage SQL MongoDB, administration Formation Administration Administration SQL Server PostgreSQL 2012 (70-462) PostgreSQL, La haute disponibilité alphorm.com™©
  5. 5. Connaissances préalables Connaissances en administration de PostgreSQL Avoir suivi le cours PostgreSQL, administration Formation Administration PostgreSQL PostgreSQL, La haute disponibilité alphorm.com™©
  6. 6. 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; • Comprendre et maîtriser les différents modes de réplication. PostgreSQL, La haute disponibilité alphorm.com™©
  7. 7. Plan du cours Présentation de la formation Présentation des solutions de haute disponibilité Le Warm Standby ou Log Shipping Le Hot Standby Streaming Réplication pgPool-II La réplication avec Slony Conclusion PostgreSQL, La haute disponibilité alphorm.com™©
  8. 8. GO PostgreSQL, La haute disponibilité alphorm.com™©
  9. 9. PostgreSQL, Haute Disponibilité L’environnement Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données PostgreSQL, La haute disponibilité alphorm.com™©
  10. 10. Environnement Architecture Internet IP: 192.168.1.171 IP: 192.168.1.170 Hostname: srvpgsql01 OS: Linux Centos 6.3 SGBDR: Postgresql 9.3 Hostname: srvpgsql02 OS: Linux Centos 6.3 SGBDR: Postgresql 9.3 IP: 192.168.1.172 Hostname: srvpgsql03 OS: Linux Centos 6.3 PostgreSQL, La haute disponibilité alphorm.com™©
  11. 11. Présentation des solutions de haute disponibilité PostgreSQL, La haute disponibilité alphorm.com™©
  12. 12. Présentation des solutions de haute disponibilité Les solutions de haute Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum disponibilité Noureddine DRISSI Expert consultant bases de données PostgreSQL, La haute disponibilité alphorm.com™©
  13. 13. Objectifs Présenter les solutions de haute disponibilité sous PostgreSQL Comprendre les principales caractéristiques de chaque solution PostgreSQL, La haute disponibilité alphorm.com™©
  14. 14. 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 Le FAIL OVER doit être géré manuellement ou par script Le serveur secondaire est en mode RESTORE PostgreSQL, La haute disponibilité alphorm.com™©
  15. 15. Les solutions de haute disponibilité Architecture Warm Standby ou Log Shipping PostgreSQL, La haute disponibilité alphorm.com™©
  16. 16. Les solutions de haute disponibilité Hot Standby Utilisation des fichiers journaux Nécessité d’être en mode ARCHIVELOG 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 PostgreSQL, La haute disponibilité alphorm.com™©
  17. 17. Les solutions de haute disponibilité Architecture Host Standby PostgreSQL, La haute disponibilité alphorm.com™©
  18. 18. 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 Le FAIL OVER doit être géré manuellement ou par script Le serveur secondaire est ouvert en mode lecture seule PostgreSQL, La haute disponibilité alphorm.com™©
  19. 19. Les solutions de haute disponibilité Architecture Streaming Replication PostgreSQL, La haute disponibilité alphorm.com™©
  20. 20. 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 La réplication s’effectue au niveau table Utilise le mécanisme de trigger Possibilité de mettre les serveurs Esclave en cascade PostgreSQL, La haute disponibilité alphorm.com™©
  21. 21. Les solutions de haute disponibilité Architecture Slony PostgreSQL, La haute disponibilité alphorm.com™©
  22. 22. 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 serveur PostgreSQL Permet de faire de la réplication et de la répartition de charge PostgreSQL, La haute disponibilité alphorm.com™©
  23. 23. Les solutions de haute disponibilité Architecture: PgPool-II PostgreSQL, La haute disponibilité alphorm.com™©
  24. 24. Le Warm Standby PostgreSQL, La haute disponibilité alphorm.com™©
  25. 25. Le Warm Standby ou Log Shipping Préparation de Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum l’environnement Noureddine DRISSI Expert consultant bases de données PostgreSQL, La haute disponibilité alphorm.com™©
  26. 26. 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™©
  27. 27. 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™©
  28. 28. 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™©
  29. 29. 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™©
  30. 30. Mise en oeuvre du mode ARCHIVELOG PostgreSQL, La haute disponibilité alphorm.com™©
  31. 31. Le Warm Standby ou Log Shipping Mise en oeuvre du mode Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum ARCHIVELOG Noureddine DRISSI Expert consultant bases de données PostgreSQL, La haute disponibilité alphorm.com™©
  32. 32. Objectif Configurer le mode ARCHIVELOG pour le Warm Standby PostgreSQL, La haute disponibilité alphorm.com™©
  33. 33. 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™©
  34. 34. Mise en oeuvre du mode de réplication Warm Standby PostgreSQL, La haute disponibilité alphorm.com™©
  35. 35. Le Warm Standby ou Log Shipping Mise en oeuvre de la réplication Warm Standby Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données PostgreSQL, La haute disponibilité alphorm.com™©
  36. 36. 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™©
  37. 37. 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 Simple et robuste Utilise l’outil pg_standby Le serveur secondaire est en mode RESTORE PostgreSQL, La haute disponibilité alphorm.com™©
  38. 38. 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 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 PostgreSQL, La haute disponibilité alphorm.com™©
  39. 39. 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 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) PostgreSQL, La haute disponibilité alphorm.com™©
  40. 40. 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™©
  41. 41. Le Hot Standby PostgreSQL, La haute disponibilité alphorm.com™©
  42. 42. Le Hot Standby Mise en oeuvre de la Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum réplication Hot Standby Noureddine DRISSI Expert consultant bases de données PostgreSQL, La haute disponibilité alphorm.com™©
  43. 43. 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™©
  44. 44. 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 Simple et robuste Utilise l’outil pg_standby Le serveur secondaire est en mode LECTURE SEULE PostgreSQL, La haute disponibilité alphorm.com™©
  45. 45. 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 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 PostgreSQL, La haute disponibilité alphorm.com™©
  46. 46. 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 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) PostgreSQL, La haute disponibilité alphorm.com™©
  47. 47. 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™©
  48. 48. 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™©
  49. 49. Streaming Replication PostgreSQL, La haute disponibilité alphorm.com™©
  50. 50. Streaming Replication Mise en oeuvre du Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Streaming Replication Noureddine DRISSI Expert consultant bases de données PostgreSQL, La haute disponibilité alphorm.com™©
  51. 51. 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™©
  52. 52. 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 Le serveur secondaire est en mode LECTURE SEULE PostgreSQL, La haute disponibilité alphorm.com™©
  53. 53. 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 Serveur de secours disponible en LECTURE seule PostgreSQL, La haute disponibilité alphorm.com™©
  54. 54. 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 • listen_addresses = '*‘ • wal_keep_segments = 10 Dans le fichier $PGDATA/pg_hba.conf • host replication admreplica 192.168.1.171/24 md5 PostgreSQL, La haute disponibilité alphorm.com™©
  55. 55. 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' • • 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' PostgreSQL, La haute disponibilité alphorm.com™©
  56. 56. 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™©
  57. 57. 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™©
  58. 58. PgPool PostgreSQL, La haute disponibilité alphorm.com™©
  59. 59. pgPool-II Mise en oeuvre de la Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum réplication avec pgPool-II Noureddine DRISSI Expert consultant bases de données PostgreSQL, La haute disponibilité alphorm.com™©
  60. 60. 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™©
  61. 61. 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 Peut être utilisé comme une solution de réplication Permet de faire de la répartition de charge PostgreSQL, La haute disponibilité alphorm.com™©
  62. 62. Configuration de pgPool-II Pour la réplication Dans le fichier pgpool.conf • listen_addresses = '*' • port = 9999 • replication_mode = true • backend_hostname0 = '192.168.1.170' • backend_port0 = 5432 • backend_hostname1 = '192.168.1.171' • backend_port1 = 5432 PostgreSQL, La haute disponibilité alphorm.com™©
  63. 63. 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™©
  64. 64. Rappel : environnement Architecture Internet IP: 192.168.1.171 IP: 192.168.1.170 Hostname: srvpgsql01 OS: Linux Centos 6.3 SGBDR: Postgresql 9.3 Hostname: srvpgsql02 OS: Linux Centos 6.3 SGBDR: Postgresql 9.3 IP: 192.168.1.172 Hostname: srvpgsql03 OS: Linux Centos 6.3 PostgreSQL, La haute disponibilité alphorm.com™©
  65. 65. Répartition de charge avec PgPool-II PostgreSQL, La haute disponibilité alphorm.com™©
  66. 66. pgPool-II Répartition de charge avec Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum pgPool-II Noureddine DRISSI Expert consultant bases de données PostgreSQL, La haute disponibilité alphorm.com™©
  67. 67. Objectif Mettre en oeuvre la répartition de charge avec pgPool-II PostgreSQL, La haute disponibilité alphorm.com™©
  68. 68. 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 • backend_hostname1 = '192.168.1.171' • backend_port1 = 5432 • backend_weight1 = 0.5 PostgreSQL, La haute disponibilité alphorm.com™©
  69. 69. Les limites de la réplication avec pgPool-II PostgreSQL, La haute disponibilité alphorm.com™©
  70. 70. pgPool-II Les limites de la Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum réplication avec pgPool-II Noureddine DRISSI Expert consultant bases de données PostgreSQL, La haute disponibilité alphorm.com™©
  71. 71. Objectif Connaître les limites de la réplication avec pgPool-II PostgreSQL, La haute disponibilité alphorm.com™©
  72. 72. La réplication avec Slony PostgreSQL, La haute disponibilité alphorm.com™©
  73. 73. La réplication avec Slony Présentation de Slony Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données PostgreSQL, La haute disponibilité alphorm.com™©
  74. 74. 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™©
  75. 75. 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 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 PostgreSQL, La haute disponibilité alphorm.com™©
  76. 76. Terminologie Un cluster est une instance PostgreSQL Un noeud est un serveur (maître/esclave) Un set est un ensemble cohérent de tables et de séquences L'abonnement permet à un noeud de s'abonner aux modifications des 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 PostgreSQL, La haute disponibilité alphorm.com™©
  77. 77. Architecture Noeud maître Noeud Cluster esclave TTaabblleess Cluster Slon deamon Slon Envoi des données deamon Triggers Triggers IP: 192.168.1.170 IP: 192.168.1.171 Set 1 Abonnement Set 2 Séquences PostgreSQL, La haute disponibilité alphorm.com™©
  78. 78. 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™©
  79. 79. Mise en oeuvre de la réplication avec Slony PostgreSQL, La haute disponibilité alphorm.com™©
  80. 80. La réplication avec Slony Mise en oeuvre de la Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum réplication avec Slony Noureddine DRISSI Expert consultant bases de données PostgreSQL, La haute disponibilité alphorm.com™©
  81. 81. 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™©
  82. 82. TP Noeud maître (repslony) Noeud Instance Instance esclave Postgresql 5432 Tables clients Tables et emp Slon deamon Slon Postgresql 5432 Envoi des données deamon IP: 192.168.1.170 IP: 192.168.1.171 Set 1 Séquences Abonnement Séquences PostgreSQL, La haute disponibilité alphorm.com™©
  83. 83. Maintenance de la réplication avec Slony PostgreSQL, La haute disponibilité alphorm.com™©
  84. 84. La réplication avec Slony Maintenance de la Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum réplication avec Slony Noureddine DRISSI Expert consultant bases de données PostgreSQL, La haute disponibilité alphorm.com™©
  85. 85. 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™©
  86. 86. 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 • Utilisation de l’outil perl check_postgres.pl • Utilisation du script slonik_execute_script PostgreSQL, La haute disponibilité alphorm.com™©
  87. 87. 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) 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) ... PostgreSQL, La haute disponibilité alphorm.com™©
  88. 88. 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); move set (id = 1, old origin = 1, new origin = 2); PostgreSQL, La haute disponibilité alphorm.com™©
  89. 89. 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); Suppression de l’ancien noeud maître PostgreSQL, La haute disponibilité alphorm.com™©
  90. 90. Conclusion PostgreSQL, La haute disponibilité alphorm.com™©
  91. 91. Conclusion Le mot de la fin Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données PostgreSQL, La haute disponibilité alphorm.com™©
  92. 92. 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; - Mettre en oeuvre la réplication asynchrone Streaming Replication; - Mettre en oeuvre la réplication asynchrone avec Slony. PostgreSQL, La haute disponibilité alphorm.com™©
  93. 93. Conlusion A venir: SQL Server Business Intelligence La modélisation au sens MERISE PostgreSQL, La haute disponibilité alphorm.com™©
  94. 94. Conclusion FIN Merci pour votre attention PostgreSQL, La haute disponibilité alphorm.com™©

×