2008-10-23 14 views
5

Nous avons affaire à une application héritée basée sur MySQL 5.0 (MyISAM). J'ai besoin de savoir en temps réel lorsqu'une mise à jour, supprimer ou insérer arrive à une table particulière. Le 'gotcha' est que je ne peux pas changer le db (c'est-à-dire les déclencheurs d'écriture) de quelque façon que ce soit. Je dois utiliser le journal bin, la réplication ou quelque chose d'autre qui est quelque peu non-invasive.Analyse syntaxique du binaire MySQL en temps réel

Nous avons examiné la commande 'mysqlbinlog' pour analyser le journal binaire. Cependant, ce n'est pas en temps réel et nous préférons faire quelque chose de plus axé sur les événements.

Des idées?

+0

avez-vous déjà trouvé quelque chose pour cela? –

Répondre

6

vérifiez MySQL Proxy. il vous permet de taper directement dans le flux de commande/réponse, et il est entièrement programmable dans Lua. vous pouvez même modifier les commandes en temps réel, si vous voulez

+0

Nous avons examiné cela un peu et cela pourrait fonctionner. Le plan serait: 1) Changez le port sur lequel MySQL écoute, puis installez l'ancien port de MySQL. 2) Capturez des actions sur notre table et appelez une commande shell. Cependant, nous préférons plutôt utiliser mysqlbinlog dans un démon comme moyen. – JJohnson

0

J'expérimente en utilisant mysqlbinlog -R -t pour obtenir le flux en temps réel, cela fonctionne jusqu'à la fin, alors vous devez trouver la dernière position lue, et continuer là, combiné avec une requête pour les fichiers journaux cela devrait vous donner tous les fichiers les uns après les autres .... J'expérimente avec cela ..

0

Aussi, si vous voulez savoir en temps réel si un changement a eu lieu Sur une table, alors je suggère que vous fassiez un déclencheur sur le maître, et alors vous pouvez insérer des données dans une base de données distincte qui est répliquée par elle-même. à l'intérieur du déclencheur, vous pouvez accéder à un autre serveur même en utilisant un serveur fédéré. http://dev.mysql.com/tech-resources/articles/mysql-federated-storage.html