MySQLで準同期レプリケーション組んで、複数のスレーブDBを複製するためたまたま仮想サーバだったのでクローンして数台増やしたところ、下記のメッセージがマスター側で大量に出力されてた。
------- 2013-08-23 22:17:51 5705 [Note] Stop asynchronous binlog_dump to slave (server_id: 2199) 2013-08-23 22:17:51 5705 [Note] Start asynchronous binlog_dump to slave (server_id: 2199), pos(mysql-bin.000015, 120) 2013-08-23 22:17:51 5705 [Note] Stop semi-sync binlog_dump to slave (server_id: 2103) 2013-08-23 22:17:51 5705 [Note] Start semi-sync binlog_dump to slave (server_id: 2103), pos(mysql-bin.000015, 120) ------- 上記メッセージが1秒に30行以上出続ける。やばいよ、すぐにエラーログがいっぱいに。。
一応マスタDBでエラーログの監視はしてたが、ステータスがNoteなので検知できず。。
で、本エラーが出る原因は主に2つであることが調査してすぐにわかりました。 1.server-idが被った場合。 2.uuidが被った場合。
server-idはmy.cnfでserver-idパラメータを全サーバで分けてるのでここは影響をうけないはず!
では、uuidか?
複数のスレーブDBのuuidを確認。
・スレーブDB 1台目
mysql> show variables like 'server_uuid'; +---------------+--------------------------------------+ | Variable_name | Value | +---------------+--------------------------------------+ | server_uuid | 17e7fe43-0bbf-11e3-8f75-df9b683ae8de | +---------------+--------------------------------------+
・スレーブDB 2台目
mysql> show variables like 'server_uuid'; +---------------+--------------------------------------+ | Variable_name | Value | +---------------+--------------------------------------+ | server_uuid | 17e7fe43-0bbf-11e3-8f75-df9b683ae8de | +---------------+--------------------------------------+
いっしょじゃん!
これが原因で出力されていることが分かった。
結局のところdatadir配下で自動作成されるauto.cnfが原因であることが分かった。
クローンで作ったサーバだから削除を忘れてたよ・・。
なので、auto.cnfを削除してMySQLを再起動したところuuidが自動で割り当てられて、マスタ側の大量のログ出力がストップした!
ちなみにauto.cnfの中身はこんな感じ。
[auto]
server-uuid=17e7fe43-0bbf-11e3-8f75-df9b683ae8de
う~ん、MySQL5.6の機能GTIDでuuidを割り当てる必要があるために自動で作成されるファイルのようだが、不要なファイルは削除しないとトラブルの種だね。
コメント