Re : [pgsql-fr-generale] Re: [pgsql-fr-generale] Re : [pgsql-fr-generale] desactivation des trigers pendant une réplication

From: Laurent ROCHE <laurent_roche(at)yahoo(dot)com>
To: Sébastien Lardière <sebastien(at)lardiere(dot)net>
Cc: pgsql-fr-generale(at)postgresql(dot)org
Subject: Re : [pgsql-fr-generale] Re: [pgsql-fr-generale] Re : [pgsql-fr-generale] desactivation des trigers pendant une réplication
Date: 2007-10-15 10:19:49
Message-ID: 257962.59380.qm@web34409.mail.mud.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

Merci pour ces clarifications.

Je n'ai pas l'habitude que les ordres DDLs soit possibles dans une transaction mais il m'avait semblé avoir lu ça pour PostgreSQL, d'où ma question.

Du coup effectivement, la désactivation de triggers devient beaucoup plus simple.

Merci encore pour la réponse rapide et claire,
L(at)u
The Computing Froggy

----- Message d'origine ----
De : Sébastien Lardière <sebastien(at)lardiere(dot)net>
À : pgsql-fr-generale(at)postgresql(dot)org
Envoyé le : Lundi, 15 Octobre 2007, 10h41mn 11s
Objet : [pgsql-fr-generale] Re: [pgsql-fr-generale] Re : [pgsql-fr-generale] desactivation des trigers pendant une réplication

Laurent ROCHE a écrit :
> Bonjour,
>
> Je développe également une solution de réplication (trés
asynchrone)
> en utilisant des triggers pour "logger" les changements et les
envoyer
> ensuite aux systèmes distants (cf.
>
http://archives.postgresql.org/pgsql-fr-generale/2007-10/msg00000.php).
>
> Je suis confronté au même problème (ne pas renvoyer -par les
triggers-
> les données que l'on vient de recevoir).
> J'aime bien cette solution (dropper/désactiver les triggers),
> cependant une chose m'intrigue dans cette solution : si je droppe ou
> désactive les triggers, les modifications des utilisateurs pendant
cet
> intervalle ne seront plus "loggés" ! ? !
> Ou bien, est ce que les drop/désactivation sont à l'intérieur
d'une
> transaction qui recrée/réactive les triggers à la fin ?
> Je ne pensais pas que ce genre d'opération pouvait être géré à
> l'intérieur d'une transaction.
Les ordres de désactivation des déclencheurs respectent bien sûr les
propriétés ACID de PostgreSQL, ce qui fait que la désactivation d'un
déclencheur au sein d'une transaction (bloc BEGIN ; COMMIT ;) ne se
"voit" pas à l'exterieur de la transaction, grâçe à l'isolation (le
I de
ACID).

Lorsque la transaction est validée (COMMIT;), le déclencheur est
désactivée pour tout le monde, selon le niveau d'isolation. Il suffit
de
le ré-activer au sein de la transaction pour rendre l'opération
transparente.

Les DDLs sont compatibles ACID dans PostgreSQL.

--
Sébastien

---------------------------(end of
broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
choose an index scan if your joining column's datatypes do not
match

_____________________________________________________________________________
Ne gardez plus qu'une seule adresse mail ! Copiez vos mails vers Yahoo! Mail

Browse pgsql-fr-generale by date

  From Date Subject
Next Message Hajatiana RAHOLIARIJAONA 2007-10-25 06:44:04 Problème pg_dump
Previous Message William Dode 2007-10-15 10:08:07 Re: Re : [pgsql-fr-generale] desactivation des trigers pendant une réplication