mysql の binlog api を利用するための Perl Binding を作りました
mysql の binlog api をあつかうためのライブラリである libreplication というものがあるのですが、これの perl binding を開発しました。
https://github.com/tokuhirom/MySQL-BinLog
とりあえず、examples/basic-2.cpp でやっていることができるところまでつくっておきました。
バイナリログの内容を streaming で処理できるのがおもしろいです。
以下のような用途での応用が考えられるようです。夢がひろがりんぐですね。
libreplication のセットアップ方法については riywo さんの記事をごらんください。
http://blog.riywo.com/2012/07/08/133005
はまりポイントは、streaming 開始時に ROTATE_EVENT が発生して、最新のログをみにいかされるので、これを skip するために
$binlog->set_position(4);
としなくてはいけないことぐらいでしょうか。
主だったイベントをラップしてますが、まだ不十分なので、patches welcome です。
このブログがくわしいね。
http://intuitive-search.blogspot.jp/2011/07/binary-log-api-and-replication-listener.html