2008-10-23 7 views
5

estamos tratando con una aplicación heredada construida en MySQL 5.0 (MyISAM). Necesito saber en en tiempo real cuando ocurre una actualización, eliminación o inserción en una tabla en particular. El 'gotcha' es que no puedo cambiar el DB (es decir, escribir desencadenadores) de ninguna manera. Tengo que usar el bin log, la replicación o alguna otra cosa que no sea invasiva.Análisis de registro binario MySQL en tiempo real

Hemos analizado el uso del comando 'mysqlbinlog' para analizar el registro binario. Sin embargo, esto no es en tiempo real y preferiríamos hacer algo más impulsado por el evento.

¿Alguna idea?

+0

¿Alguna vez se le ocurrió algo para esto? –

Respuesta

6

check MySQL Proxy. te permite tocar directamente en la secuencia de comando/respuesta, y es totalmente programable en Lua. incluso puedes modificar comandos en tiempo real, si quieres

+0

Hemos visto eso un poco y eso podría funcionar. El plan sería: 1) Cambie el puerto en el que escucha MySQL y luego configúrelo en el puerto anterior de MySQL. 2) Capture acciones en nuestra tabla y llame a algún comando de shell. Sin embargo, preferiríamos usar mysqlbinlog en un daemon manera similar. – JJohnson

0

Estoy experimentando con el uso de mysqlbinlog -R -t para obtener el feed en tiempo real, funciona hasta el final, luego necesitas encontrar la última posición leída, y continuar allí, combinado con una consulta para archivos de registro esto debería darle todos los archivos uno tras otro ... estoy experimentando con esto ...

Cuestiones relacionadas