Skip site navigation (1) Skip section navigation (2)

Peripheral Links

Header And Logo

PostgreSQL
| The world's most advanced open source database.

Site Navigation

Search for
  Advanced Search

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



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

Home | Main Index | Thread Index

Privacy Policy | PostgreSQL Archives hosted by Command Prompt, Inc. | Designed by tinysofa
Copyright © 1996 – 2008 PostgreSQL Global Development Group