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 données master master : duplication primary Key


Sujet :

PostgreSQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 109
    Par défaut Réplication données master master : duplication primary Key
    Bonjour à vous tous !
    Je suis très heureux de vous retrouver.
    Je me permets de contacter la communauté car j'ai un souci un peu spécial (je trouve). Je recherche a faire une réplication de données master master en synchrone en un serveur A et un serveur B
    J'ai donc créé une publication sur une table des deux cotés puis une subscription faisant référence au coté inverse:
    pubA--> subB
    subA <-- pubB

    je pense que je ne suis pas très loin mais voila dans les logs apparement j'ai un souci avec des duplications de clé primaire.

    Voila comment j'ai créé la table p_assets sur les deux serveurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    --- uuid ---
    CREATE EXTENSION IF NOT EXISTS "uuid-ossp"
        SCHEMA public
        VERSION "1.1";
    --- ./uuid ---
    ---------------------------------------------------------------------------------------------------------------------------------------------------
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    --- p_assets ---
    CREATE TABLE public.p_assets (
        assetguid UUID NOT NULL DEFAULT public.uuid_generate_v4(),
        folderguid UUID,
        assetname text,
        assetalt text,
        assetcreatedat timestamp without time zone,
        assetmodifiedat timestamp without time zone,
        assetistrashbin boolean,
        assetisvisible boolean,
        assettype text,
        assetformat text,
        assetsize integer,
        asseturlorignal text,
        asseturlsmall text,
        asseturlmedium text,
        asseturlbig text,
        assettags jsonb,
        assetcollection jsonb,
        assetworkroom jsonb,
        assetowner text,
        assetteam text,
        hashcode text
    );
     
    ALTER TABLE public.p_assets OWNER TO postgres;
     
    ALTER TABLE ONLY public.p_assets
        ADD CONSTRAINT pk__p_assets PRIMARY KEY (assetguid);
     
    CREATE INDEX idx_p_assets_assetguid ON public.p_assets USING btree(assetguid);
    --- p_assets ---
    puis j'ai inséré des valeurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO p_assets(assetname) VALUES ('A1');
    INSERT INTO p_assets(assetname) VALUES ('B2');
    INSERT INTO p_assets(assetname) VALUES ('A3');
    INSERT INTO p_assets(assetname) VALUES ('B4');
    sur le serveur B apparement pas de souci (niveau logs)
    mais sur le serveur A.....un extrait des logs serait plus parlant....

    2020-06-11 08:13:34.035 UTC [5510] LOG: logical replication apply worker for subscription "suba" has started
    2020-06-11 08:13:34.049 UTC [5510] ERROR: duplicate key value violates unique constraint "pk__p_assets"
    2020-06-11 08:13:34.049 UTC [5510] DETAIL: Key (assetguid)=(66c79969-c8bf-493e-99ea-9df057b0dd1a) already exists.
    2020-06-11 08:13:34.051 UTC [4407] LOG: worker process: logical replication worker for subscription 16502 (PID 5510) exited with exit code 1
    2020-06-11 08:13:39.056 UTC [5511] LOG: logical replication apply worker for subscription "suba" has started
    2020-06-11 08:13:39.071 UTC [5511] ERROR: duplicate key value violates unique constraint "pk__p_assets"
    2020-06-11 08:13:39.071 UTC [5511] DETAIL: Key (assetguid)=(66c79969-c8bf-493e-99ea-9df057b0dd1a) already exists.
    2020-06-11 08:13:39.073 UTC [4407] LOG: worker process: logical replication worker for subscription 16502 (PID 5511) exited with exit code 1
    Pouvez vous me dire comment faire en sorte de ne répliquer que le delta (différence) entre la table p_assets du serveur A et B ?
    Merci beaucoup de votre aide.

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 059
    Par défaut
    Bonjour,

    La réplication logique dans PostgreSQL n'est pas faite pour être symétrique (primaire <-> primaire), mais asymétrique (primaire -> secondaire).
    Pour faire du symétrique, il faut ajouter des plugins comme Bucardo ou BDR.

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 109
    Par défaut Outils plugins
    Bonjour ced,
    Merci beaucoup de cette eclairage.
    Je suis débutant avec postgresql.
    Selon vous quel plugin serait le mieux quand il y a un certains nombre de lecture/ecriture sur la base ?
    Sont-ils difficiles à installer ? sont-ils fiables et gratuits ?
    Merci de votre réponse.

    Vincent

  4. #4
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 059
    Par défaut
    La première question à vous poser, c'est de savoir si vous avez réellement besoin d'une réplication symétrique et synchrone...
    C'est très "à la mode", mais ça demande un effort supplémentaire de surveillance et de maintenance technique, donc ce n'est pas sans coût.

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 109
    Par défaut nombre d'écritures importantes
    Bonjour ced,
    Merci de votre réponse.
    Je pense en tous cas que nous devons mettre en place une synchronisation maitre - maitre avec un minimum de risque de perte de données donc peut etre une synchronisation toutes les minutes pourquoi pas.
    J'essaye d'utiliser bucardo sur mon serveur ubuntu mais je trouve que c'est un peu galère (je suis débutant).
    J'ai suivi ce petit tuto https://installvirtual.com/how-to-in...s-replication/
    sans trop de succès. J'ai des erreurs car l'utilisateur bucardo ne peut pas se conencter a ma base. J'ai pourtant changé le password dans la base et sur le système.
    Auriez vous un petit tuto bien détaillé a me conseiller s'il vous plait ?

    Merci de votre aide

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    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 998
    Billets dans le blog
    6
    Par défaut
    Sinon, passez sous Microsoft SQL Server, la réplication mutimaître (dit de fusion) est intégrée et maitrisée depuis la version 7 datant de 1999...
    https://docs.microsoft.com/fr-fr/sql...l-server-ver15

    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. Duplicate primary key
    Par kyokotsu dans le forum Développement de jobs
    Réponses: 3
    Dernier message: 31/12/2012, 11h48
  3. réplication dual master + 4 PC slaves
    Par zerros dans le forum Requêtes
    Réponses: 1
    Dernier message: 25/02/2008, 13h36
  4. Erreur de Réplication Oracle (Master Replication)
    Par manawajaws dans le forum Oracle
    Réponses: 8
    Dernier message: 05/10/2006, 10h25
  5. Réplication Postgresql Master -> Mysql Slave
    Par livingdead dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 11/02/2005, 15h29

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