複数のDBサーバーをレプリケーションしていたときに遭遇した現象。
結論
server_idが重複していた。
環境
本件ではあまり関係ないと思うが、一応記載。
OSバージョン CentOS 5.6 #コマンド $ cat /etc/redhat-release
MySQLバージョン 5.1.66 #コマンドmysql -u username -p'password' -D mysql -e "SELECT version()"
経緯
そこそこの台数のDBサーバーをレプリケーション設定していく中で、
レプリケーションが上手くいかないサーバーが出てきた。
しかし、SHOW SLAVE STATUSを見ても、
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
となっており、エラーにも何も出力されていない。
(レプリケーションが失敗していれば大抵は上記ステータスがNoとなる)
Read_Master_Log_Posなども更新されている中
Relay_Log_Posの数値が全く動いてないことに気づいた。
しかしググッても解決できず、
何度構築し直しても改善されず、困り果てた。
そして調査を続けるうちに、Masterサーバーとserver_idが被っていることが判明。
あまりにも単純なミス故にネットでも情報が少ないのか、
検索の仕方が悪かっただけなのか。
遭遇しそうで、遭遇しないだろう貴重(?)な体験だったので、メモ程度に。