IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PostgreSQL Discussion :

réplication base multi-master


Sujet :

PostgreSQL

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2007
    Messages : 187
    Points : 110
    Points
    110
    Par défaut réplication base multi-master
    bonjour,

    J'ai une base de donnée qui est accédé de plusieurs endroits dans le monde. certain de ces endroits bénéficie d'une bande passante très faible, ce qui rend l'accès directe à la base impraticable.

    Pour résoudre se problème de temps de réponse, j'imagine de répliquer ma base sur les différents lieux d'accès. Les accès seraient alors locaux et rapide.

    La base doit être modifiable depuis toutes ses réplications et les changements doivent être synchronisés de sorte a ce que mes bases soient (a peut près) toujours les même à un temps t.

    Je cherche donc un mécanisme de réplication postgres qui :
    - supporte plusieurs bases maitre (2 pour l'instant).
    - synchronise les données d'une base à l'autre.
    - ne bloque pas les accès durant la synchronisation.
    - ne soit pas nécessairement temps reél.
    - ne "gache" pas la bande passante.

    j'ai jeté un oeuil à pgCluster mais j'ai c'est pas très clair

    des idées, du vécu?

    merci

    Patrice.

  2. #2
    Membre expérimenté Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Points : 1 734
    Points
    1 734
    Par défaut
    Je ne pense pas que Postgresql, dans les versions actuelles, propose des outils pour faire ce genre d'architecture évoluée
    Tu as éventuellement les dblinks mais ça voudrait dire que pour chaque insert/update/delete sur 1 maître, il faudrait un trigger qui le réplique via dblink ... Ca deviendrait vite une usine à gaz ...

    C'est à mon avis en tout très difficile de faire du synchrone avec Postgresql
    La théorie, c'est quand on sait tout mais que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

    Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 761
    Points : 52 547
    Points
    52 547
    Billets dans le blog
    5
    Par défaut
    Ce que vous recherchez c'est faire une réplication de fusion. Ce n'est peut être pas implémenté sous PG. Mais vous pouvez le faire à la main. Ceci dit cela représente beaucoup de travail pour réaliser une telle chose alors que certains SGBDR proposent cela en standard (MS SQL Server).
    En effet il faut entre autre :
    1) ajouter une colonne avec un GUID dans toutes les tables répliquées
    2) prévoir 3 triggers (INSERT + UPDATE + DELETE) dans chacune des tables répliquées
    3) centraliser les mises à jours distribuées dans une base (qui servira aussi pour la gestion des conflits)
    4) prévoir que les clefs auto incrémentée ne se recoupent pas (gérer les auto incrément par plage ou modulo)
    5) introduire une gestion des conflits de réplication (qui gagne en cas de MAJ des deux côtés).

    Bref, quelques mois de développement au minimum pour réaliser tout cela et un bon DBA pour gérer les conflits et surveiller la charge.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2007
    Messages : 187
    Points : 110
    Points
    110
    Par défaut
    SQLPro, savez vous ou je peux trouver de la documentation sur le sujet?
    cette approche m'intéresse.

    quelles sont les solutions pour la résolution des conflits?
    je pense notamment aux contraintes d'unicités et aux intégrités référentielles mises à mal par une suppression d'un coté et un ajout de l'autre.

    merci,

    P.

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 761
    Points : 52 547
    Points
    52 547
    Billets dans le blog
    5
    Par défaut
    SQLPro, savez vous ou je peux trouver de la documentation sur le sujet?
    Fouillez le net avec les mots clef MERGE REPLICATION.

    quelles sont les solutions pour la résolution des conflits?
    Il s'agit de régles métiers à implanter dans le SGBDR. malgré cela il faut un outil de gestion des conflits.

    Exemple : règle métier = données la plus récente. Si data1.datatimeRefresh = data2.datatimeRefresh alors, faire tomber les tuples dans une base de gestion de conflit et demander au DBA comment il arbitre.

    Compter 3 à 6 mois de développement pour un spécialiste SQL... Bon courage !

    PS : ceci existe en standard dans SQL Server....

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  6. #6
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2007
    Messages : 187
    Points : 110
    Points
    110
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Compter 3 à 6 mois de développement pour un spécialiste SQL... Bon courage !
    Oups, merci pour l'encouragement....

    P.

  7. #7
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 761
    Points : 52 547
    Points
    52 547
    Billets dans le blog
    5
    Par défaut
    J'ai oublié de vous dire, pour les règles métier, c'est à mettre dans un déclencheur.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  8. #8
    Membre expérimenté Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Points : 1 734
    Points
    1 734
    Par défaut
    Franchement si j'étais toi je prendrais le problème à la base
    Ca reviendrait sûrement moins cher d'investir dans une bande passante plus rapide que de passer 6 mois à développer une usine à gaz ...

    Si réellement ton réseau ne peut pas être plus rapide il te faut trouver des compromis :
    - les utilisateurs de tes différents sites peuvent-ils modifier les mêmes données ? si non, chaque site pourrait avoir son schéma de données principal de travail
    - peux-tu envisager un rafraichissement asynchrone via export/import entre tes sites ? dans ce cas tu ne transfèrerais que le dump compressé par le réseau ...
    La théorie, c'est quand on sait tout mais que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

    Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/

  9. #9
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 761
    Points : 52 547
    Points
    52 547
    Billets dans le blog
    5
    Par défaut
    Ou encore changer de SGBDR !!! J'ai déjà vu des rigolos prendre MySQL et développer pendant 6 mois des outils qui existent en standard dans la concurrence et sont mille fois plus stable... Mais le mythe du free qui coute pas cher....

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  10. #10
    Membre chevronné
    Avatar de kedare
    Homme Profil pro
    Network Automation Engineer
    Inscrit en
    Juillet 2005
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Network Automation Engineer

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 548
    Points : 1 861
    Points
    1 861
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Ou encore changer de SGBDR !!! J'ai déjà vu des rigolos prendre MySQL et développer pendant 6 mois des outils qui existent en standard dans la concurrence et sont mille fois plus stable... Mais le mythe du free qui coute pas cher....

    A +
    Le problème c'est que tout le monde n'a pas les moyens ou l'envie d'aller sur MS-SQL et Windows Server (dont moi)

  11. #11
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 761
    Points : 52 547
    Points
    52 547
    Billets dans le blog
    5
    Par défaut
    Les envies des uns ne sont pas toujours compatible avec la réalité économique des autres !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  12. #12
    Membre chevronné
    Avatar de kedare
    Homme Profil pro
    Network Automation Engineer
    Inscrit en
    Juillet 2005
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Network Automation Engineer

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 548
    Points : 1 861
    Points
    1 861
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Les envies des uns ne sont pas toujours compatible avec la réalité économique des autres !

    A +
    Je doute qu'une solution sous Windows Server + MS SQL Server soit plus économique qu'une solution sous Linux (Debian ou Fedora) ou BSD et Postgresql,
    surtout qu'après il faut payer les grosses mises a jours si l'on veut beneficier des dernières nouveautés (WS2003->WS2008, SQLSERVER2005->SQLSERVER2008),
    Personnellement j'ai déjà essayé SQLSERVER2008... Plus jamais je re-installe ce truc, c'est pire que mysql niveau respect du SQL (genre les GO, sp_truc, [table]....)
    Enfin bon après c'est pas un sujet Postgresql vs Mssql, chacun ses gouts

  13. #13
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 761
    Points : 52 547
    Points
    52 547
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par kedare Voir le message
    Je doute qu'une solution sous Windows Server + MS SQL Server soit plus économique qu'une solution sous Linux (Debian ou Fedora) ou BSD et Postgresql
    Ce n'est pas ce que disent les études....
    Voici un exemple :
    http://www.sco.com/products/unixware...p_Analysis.pdf

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  14. #14
    Membre chevronné
    Avatar de kedare
    Homme Profil pro
    Network Automation Engineer
    Inscrit en
    Juillet 2005
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Network Automation Engineer

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 548
    Points : 1 861
    Points
    1 861
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Ce n'est pas ce que disent les études....
    Voici un exemple :
    http://www.sco.com/products/unixware...p_Analysis.pdf

    A +
    Ah oui... Red Hat Linux, le linux proprio payant que personne utilise...
    Je pensais plutôt a des technologies open source en disant linux (genre debian)

  15. #15
    Membre expérimenté Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Points : 1 734
    Points
    1 734
    Par défaut
    Citation Envoyé par kedare Voir le message
    Ah oui... Red Hat Linux, le linux proprio payant que personne utilise...
    Je pensais plutôt a des technologies open source en disant linux (genre debian)
    Red Hat Linux est un bon compromis pour une entreprise souhaitant passer à l'open source, ce n'est pas du tout un système fermé et proprio ou chaque évolution ou mise à jour nécessite de payer ...
    La théorie, c'est quand on sait tout mais que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

    Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/

  16. #16
    Membre chevronné
    Avatar de kedare
    Homme Profil pro
    Network Automation Engineer
    Inscrit en
    Juillet 2005
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Network Automation Engineer

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 548
    Points : 1 861
    Points
    1 861
    Par défaut
    Citation Envoyé par scheu Voir le message
    Red Hat Linux est un bon compromis pour une entreprise souhaitant passer à l'open source, ce n'est pas du tout un système fermé et proprio ou chaque évolution ou mise à jour nécessite de payer ...
    Je vois pas trop les avantages de RedHat par apport a Debian, Centos, Archlinux ou autres distributions open-source.. A par le "c'est payant donc ca fait bien"

  17. #17
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2007
    Messages : 187
    Points : 110
    Points
    110
    Par défaut
    Merci pour ce débat open source/propriétaire passionnant.
    mais pour en revenir au sujet initial :
    - peux-tu envisager un rafraichissement asynchrone via export/import entre tes sites ? dans ce cas tu ne transfèrerais que le dump compressé par le réseau ...
    dans ce cas comment merge t'on les données? existe t'il des algos connus?

    merci

    P.

  18. #18
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 145
    Points : 194
    Points
    194
    Par défaut
    Bonjour,

    désolé de m'immiscer dans la discussion mais comme le rappel pdelorme, il n'y pas besoin de réplication/propagation en temps réel.
    Je pense que de simples scripts basés sur les entrées de log pour charger une base tampon de chaque coté et un autre en cron pour transformer la BD cible serait peut-être suffisant (on peut aussi faire un script basé sur les logs sans BD). Des outils d'ETL comme Talend (version gratuite biensur(désolé pour la pub, c'est pas le but)) peuvent être étudiés comme solution, ne pensez vous pas?


    ps: Parallèlement, j'aurais aimé que SQLPro nous explique pourquoi un tel dev devrait mettre 3à6 mois/H pour arriver en prod?
    (Ayant à faire à peu près la même chose (en un peu plus compliqué et sur de multiples systèmes hétérogènes), cela me semble, personnellement un peu disproportionné en terme de délais; mais je peux me tromper (à ce moment-là, je suis vraiment dans la **** (j'en ai + de 10 à réaliser sur la même période))

  19. #19
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 761
    Points : 52 547
    Points
    52 547
    Billets dans le blog
    5
    Par défaut
    dans ce cas comment merge t'on les données? existe t'il des algos connus?
    Le problème est toujours le même : c'est spécifique à votre organisation. A vous de le développer.
    Par exemple cela peut être le dernier à toujours raison. Mais il faut prévoir le cas ou les modif auront été faites exactement au même moment à chaque bout de la chaîne (gestion des conflits). Or les données continuent à arriver de part et d'autre !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. Réplication base de données Master/Slave
    Par hichem tunis dans le forum Administration
    Réponses: 2
    Dernier message: 18/03/2014, 11h32
  2. Réplication multi master
    Par nandy.c dans le forum Administration
    Réponses: 6
    Dernier message: 22/01/2013, 09h55
  3. Réplication Multi Master - V9 - V11
    Par plochert dans le forum Administration
    Réponses: 0
    Dernier message: 01/02/2011, 11h18
  4. verrouillage des données / base Multi utilisateurs
    Par DI DODO dans le forum Access
    Réponses: 1
    Dernier message: 27/03/2006, 15h34
  5. Design d'une base multi-user
    Par Aurelien.Regat-Barrel dans le forum Langage SQL
    Réponses: 4
    Dernier message: 29/08/2005, 12h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo