Download - Alphorm.com Formation PostgreSQL, la Haute Disponibilité

Transcript
Page 1: Alphorm.com Formation PostgreSQL, la Haute Disponibilité

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é

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é

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

[email protected]

PostgreSQL, La haute disponibilité alphorm.com™©

[email protected]

• Mon profil sur alphorm.com : http://www.alphorm.com/auteur/noureddine-drissi

Page 4: Alphorm.com Formation PostgreSQL, la Haute Disponibilité

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é

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é

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é

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é

GO

PostgreSQL, La haute disponibilité alphorm.com™©

GO

Page 9: Alphorm.com Formation PostgreSQL, la Haute Disponibilité

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é

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é

Présentation des solutions de haute disponibilité

PostgreSQL, La haute disponibilité alphorm.com™©

disponibilité

Page 12: Alphorm.com Formation PostgreSQL, la Haute Disponibilité

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é

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é

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é

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é

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é

Les solutions de haute disponibilité

� Architecture Host Standby

PostgreSQL, La haute disponibilité alphorm.com™©

Page 18: Alphorm.com Formation PostgreSQL, la Haute Disponibilité

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é

Les solutions de haute disponibilité

� Architecture Streaming Replication

PostgreSQL, La haute disponibilité alphorm.com™©

Page 20: Alphorm.com Formation PostgreSQL, la Haute Disponibilité

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é

Les solutions de haute disponibilité

� Architecture Slony

PostgreSQL, La haute disponibilité alphorm.com™©

Page 22: Alphorm.com Formation PostgreSQL, la Haute Disponibilité

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é

Les solutions de haute disponibilité

� Architecture: PgPool-II

PostgreSQL, La haute disponibilité alphorm.com™©

Page 24: Alphorm.com Formation PostgreSQL, la Haute Disponibilité

Le Warm Standby

PostgreSQL, La haute disponibilité alphorm.com™©

Page 25: Alphorm.com Formation PostgreSQL, la Haute Disponibilité

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é

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é

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é

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é

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é

Mise en oeuvre du mode ARCHIVELOG

PostgreSQL, La haute disponibilité alphorm.com™©

ARCHIVELOG

Page 31: Alphorm.com Formation PostgreSQL, la Haute Disponibilité

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é

Objectif

� Configurer le mode ARCHIVELOG pour le Warm Standby

PostgreSQL, La haute disponibilité alphorm.com™©

Page 33: Alphorm.com Formation PostgreSQL, la Haute Disponibilité

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é

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é

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é

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é

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é

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é

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é

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é

Le Hot Standby

PostgreSQL, La haute disponibilité alphorm.com™©

Page 42: Alphorm.com Formation PostgreSQL, la Haute Disponibilité

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é

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é

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é

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é

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é

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é

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é

Streaming Replication

PostgreSQL, La haute disponibilité alphorm.com™©

Page 50: Alphorm.com Formation PostgreSQL, la Haute Disponibilité

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é

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é

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é

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é

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é

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é

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é

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é

PgPool

PostgreSQL, La haute disponibilité alphorm.com™©

Page 59: Alphorm.com Formation PostgreSQL, la Haute Disponibilité

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é

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é

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é

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é

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é

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é

Répartition de charge avec PgPool-II

PostgreSQL, La haute disponibilité alphorm.com™©

Page 66: Alphorm.com Formation PostgreSQL, la Haute Disponibilité

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é

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é

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é

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é

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é

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é

La réplication avec Slony

PostgreSQL, La haute disponibilité alphorm.com™©

Page 73: Alphorm.com Formation PostgreSQL, la Haute Disponibilité

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é

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é

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é

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é

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é

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é

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é

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é

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é

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é

Maintenance de la réplication avec Slony

PostgreSQL, La haute disponibilité alphorm.com™©

Slony

Page 84: Alphorm.com Formation PostgreSQL, la Haute Disponibilité

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é

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é

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é

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é

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é

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é

Conclusion

PostgreSQL, La haute disponibilité alphorm.com™©

Page 91: Alphorm.com Formation PostgreSQL, la Haute Disponibilité

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é

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é

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é

Conclusion

FIN

Merci pour votre attention

PostgreSQL, La haute disponibilité alphorm.com™©

Merci pour votre attention