réplication logique - pgday.fr lille 2016 · 9.1 , synchronous replication 9.2 , refactoring...

Post on 25-Jun-2020

1 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Réplication Logique

pgDay.fr Lille 2016

Cédric Villemain cedric@2ndQuadrant.fr

31 mai 2016

Cédric Villemain cedric@2ndQuadrant.fr Réplication Logique 31 mai 2016 1 / 29

Cédric Villemain

Expertise & DéveloppementFormation

Support & Remote DBA

Cédric Villemain cedric@2ndQuadrant.fr Réplication Logique 31 mai 2016 2 / 29

2ndQuadrant

Sponsor Platine de PostgreSQL

• 9.1, Synchronous Replication

• 9.2, Refactoring checkpoint group commit

• 9.3, Event Trigger, Refactoring

• 9.4, Replication Slot / Réplication Logique

• 9.5, Replication Origin / Commit Timestamp

• 9.6, Logical WAL messaging

• NEXT, Timeline Switch / Integrated Failover

Cédric Villemain cedric@2ndQuadrant.fr Réplication Logique 31 mai 2016 3 / 29

Réplication

Cédric Villemain cedric@2ndQuadrant.fr Réplication Logique 31 mai 2016 4 / 29

Opérations Logiques

BEGIN;

INSERT INTO country VALUES (1, 'france') ;

INSERT INTO towns VALUES (default, 1 , 'lille');

COMMIT;

Cédric Villemain cedric@2ndQuadrant.fr Réplication Logique 31 mai 2016 5 / 29

Après le COMMIT: analyse des opérations

Cédric Villemain cedric@2ndQuadrant.fr Réplication Logique 31 mai 2016 6 / 29

Opérations Physiques

fopen(1, ...)

fseek(1, ...)

fwrite(1, ...)

fopen(2, ...)

fseek(2, ...)

fwrite(2, ...)

...

fsync()

Cédric Villemain cedric@2ndQuadrant.fr Réplication Logique 31 mai 2016 7 / 29

Après le COMMIT: empreintes des modi�cations

Cédric Villemain cedric@2ndQuadrant.fr Réplication Logique 31 mai 2016 8 / 29

Système évènementiel

Cédric Villemain cedric@2ndQuadrant.fr Réplication Logique 31 mai 2016 9 / 29

Evènements

• INSERT

• UPDATE

• DELETE

• TRUNCATE

• CREATE TABLE

• ...

Cédric Villemain cedric@2ndQuadrant.fr Réplication Logique 31 mai 2016 10 / 29

Evènements

• INSERT

• UPDATE

• DELETE

• TRUNCATE

• CREATE TABLE

• ...

Cédric Villemain cedric@2ndQuadrant.fr Réplication Logique 31 mai 2016 10 / 29

Evènements

• INSERT

• UPDATE

• DELETE

• TRUNCATE

• CREATE TABLE

• ...

Cédric Villemain cedric@2ndQuadrant.fr Réplication Logique 31 mai 2016 10 / 29

Evènements

• INSERT

• UPDATE

• DELETE

• TRUNCATE

• CREATE TABLE

• ...

Cédric Villemain cedric@2ndQuadrant.fr Réplication Logique 31 mai 2016 10 / 29

Evènements

• INSERT

• UPDATE

• DELETE

• TRUNCATE

• CREATE TABLE

• ...

Cédric Villemain cedric@2ndQuadrant.fr Réplication Logique 31 mai 2016 10 / 29

Evènements

• INSERT

• UPDATE

• DELETE

• TRUNCATE

• CREATE TABLE

• ...

Cédric Villemain cedric@2ndQuadrant.fr Réplication Logique 31 mai 2016 10 / 29

Evènements

• Trigger: Déclencheur

• Logical Slot: Déclencheur / Accumulateur / Communication

• LISTEN / NOTIFY: Communication

Cédric Villemain cedric@2ndQuadrant.fr Réplication Logique 31 mai 2016 11 / 29

Evènements

• Trigger: Déclencheur

• Logical Slot: Déclencheur / Accumulateur / Communication

• LISTEN / NOTIFY: Communication

Cédric Villemain cedric@2ndQuadrant.fr Réplication Logique 31 mai 2016 11 / 29

Evènements

• Trigger: Déclencheur

• Logical Slot: Déclencheur / Accumulateur / Communication

• LISTEN / NOTIFY: Communication

Cédric Villemain cedric@2ndQuadrant.fr Réplication Logique 31 mai 2016 11 / 29

ACTION!

Cédric Villemain cedric@2ndQuadrant.fr Réplication Logique 31 mai 2016 12 / 29

Associer certains évènementsà certaines actions

Cédric Villemain cedric@2ndQuadrant.fr Réplication Logique 31 mai 2016 13 / 29

Trigger

ON INSERT DO ....

...

ROLLBACK;

Cédric Villemain cedric@2ndQuadrant.fr Réplication Logique 31 mai 2016 14 / 29

traitement super�u

...et prend du temps �utilisateur�

Cédric Villemain cedric@2ndQuadrant.fr Réplication Logique 31 mai 2016 15 / 29

LISTEN / NOTIFY

# ... ON INSERT DO ....

# NOTIFY channel_1, 'id:1,country:france'

Cédric Villemain cedric@2ndQuadrant.fr Réplication Logique 31 mai 2016 16 / 29

perte d'information

Cédric Villemain cedric@2ndQuadrant.fr Réplication Logique 31 mai 2016 17 / 29

Logical Slot

• ON COMMIT only

• Pas de perte

• Commit Timestamp

• Origine

• ...

Cédric Villemain cedric@2ndQuadrant.fr Réplication Logique 31 mai 2016 18 / 29

Logical Slot

• ON COMMIT only

• Pas de perte

• Commit Timestamp

• Origine

• ...

Cédric Villemain cedric@2ndQuadrant.fr Réplication Logique 31 mai 2016 18 / 29

Logical Slot

• ON COMMIT only

• Pas de perte

• Commit Timestamp

• Origine

• ...

Cédric Villemain cedric@2ndQuadrant.fr Réplication Logique 31 mai 2016 18 / 29

Logical Slot

• ON COMMIT only

• Pas de perte

• Commit Timestamp

• Origine

• ...

Cédric Villemain cedric@2ndQuadrant.fr Réplication Logique 31 mai 2016 18 / 29

Logical Slot

• ON COMMIT only

• Pas de perte

• Commit Timestamp

• Origine

• ...

Cédric Villemain cedric@2ndQuadrant.fr Réplication Logique 31 mai 2016 18 / 29

Réplication Logique

Cédric Villemain cedric@2ndQuadrant.fr Réplication Logique 31 mai 2016 19 / 29

Réplication

• Slony / Skytools / Londiste

• pgLogical

• Bi-Directionnal Replication

Cédric Villemain cedric@2ndQuadrant.fr Réplication Logique 31 mai 2016 20 / 29

Réplication

• Slony / Skytools / Londiste

• pgLogical

• Bi-Directionnal Replication

Cédric Villemain cedric@2ndQuadrant.fr Réplication Logique 31 mai 2016 20 / 29

Réplication

• Slony / Skytools / Londiste

• pgLogical

• Bi-Directionnal Replication

Cédric Villemain cedric@2ndQuadrant.fr Réplication Logique 31 mai 2016 20 / 29

pgLogical

• Evènement -> Logical Decoder(Callback) -> Logical Slot

• Logical Slot <�> Logical Consummer -> ?

Cédric Villemain cedric@2ndQuadrant.fr Réplication Logique 31 mai 2016 21 / 29

pgLogical

• Evènement -> Logical Decoder(Callback) -> Logical Slot

• Logical Slot <�> Logical Consummer -> ?

Cédric Villemain cedric@2ndQuadrant.fr Réplication Logique 31 mai 2016 21 / 29

Utilisations

Cédric Villemain cedric@2ndQuadrant.fr Réplication Logique 31 mai 2016 22 / 29

Réplication

• Réplication partielle

• Réplication croisée et bi-directionnelle (�multi-maitre�)

• Schémas di�érents

• Aggrégation, centralisation, séparation, ...

• Mise à jour PostgreSQL

Cédric Villemain cedric@2ndQuadrant.fr Réplication Logique 31 mai 2016 23 / 29

Extract Load Transform

• pas ETL mais ELT

• En continu

• pgLogical -> Extract Load

• Triggers on Apply -> Transform

• Alimentation d'un système tiers (solR par exemple)

Cédric Villemain cedric@2ndQuadrant.fr Réplication Logique 31 mai 2016 24 / 29

• Partitionnement Horizontal

• Répartition de charge

• Audit / Historisation (merci commit timestamp!)

• Archivage de données

Cédric Villemain cedric@2ndQuadrant.fr Réplication Logique 31 mai 2016 25 / 29

• Cycle de vie des données

• Trigger asynchrone

Cédric Villemain cedric@2ndQuadrant.fr Réplication Logique 31 mai 2016 26 / 29

Future

• Timeline Following

• Integrated Failover

• Row Control

• Réplication en Cascade

• 10 : Réplication Logique intégrée

Cédric Villemain cedric@2ndQuadrant.fr Réplication Logique 31 mai 2016 27 / 29

Ressources

• Logical Decoding:https://www.postgresql.org/docs/current/static/logicaldecoding.html

• pglogical: http://2ndquadrant.com/en/resources/pglogical/

Cédric Villemain cedric@2ndQuadrant.fr Réplication Logique 31 mai 2016 28 / 29

Questions ?

C'est à vous!

Cédric Villemain cedric@2ndQuadrant.fr Réplication Logique 31 mai 2016 29 / 29

top related