2013年4月30日火曜日

MySQL 5.5.30のmysqldumpに当てるパッチ書いた

前々からパッチは書いてあって(本番環境で使ってる)公開するする詐欺だったんだけれども、
著作権周りのごたごたが社内でやっと落ち着いたので今度こそ公開。

修正している内容の主なものは、
"--master-data=2と--dump-slave=2を同時に指定できるようにする"
です。

何に使うかというと、こんな構成で


・バイナリログのバックアップはlog-slave-updatesでスレーブにとってあるので、
・マスターのDISKが消し飛んでもバイナリログからロールフォワードを保証するためには
 --master-dataと--dump-slaveの両方のポジション情報が必要で、
・でも2回もmysqldumpは取りたくなくて
・あと—dump-slaveにはFLUSH TABLES WITH READ LOCKをかけてくれないバグがあったり
・要らないSTOP SLAVEをかける(--single-transactionと一緒に使うなら不要)バグがあったりする
のでどうしたもんかなー

って思ったときに使います。

需要なさげ。でも折角なので公開。GPLv2です。

https://gist.github.com/yoku0825/5487061



--master-dataと--dump-slaveを(0以外で)両方していした場合、
--master-data=2 --dump-slave=2として解釈されます(両方のバイナリログのポジションがコメントアウトで出力される)

あとはdump-slave使ってる時にFLUSH TABLES WITH READ LOCKが必要なのにやってないバグ(#65035)

dump-slaveでsingle-transactionならSTOP SQL_THREADしなくても良いのにやってるバグ(同じく#65035)
古いSET OPTION構文が残っているバグ(#67507)
を修正しています。

会社の名前で公開できるかどうかモメた挙句、
著作権をワタシ個人に譲渡する && 公開は個人としてやる、ということになりました。

公開するなではなく、便宜を図ってくれた会社に感謝します(*-人-)

0 件のコメント :

コメントを投稿