まとまりのないブログ

something which something is something

mysql

Client requested master to start replication from impossible position ( server_errno=1236)

投稿日:

mysqlのレプリケーションでのエラー。Client requested master to start replication from impossible position ( server_errno=1236)というエラーがレプリケーションしているサーバを起動したら発生した。エラーの意味は、ログファイルの読み取り位置が不可能なポジションを示しているということらしい。このエラーが発生した原因は、私の場合はサーバの突発的な障害(電子レンジと掃除機を同時に使ったらブレーカーが落ちた)が発生してしまったことによる。UPSなどは当然ながら導入していないため、サーバを再起動して確認してみるとテーブルがクラッシュしまくっているという有様。停電したらUPSに電源を切り替えて自動で安全にシャットダウンするというような仕組みが要るなぁ・・・。

で、このレプリケーションのエラーについて。ログファイルが読み込み不可能なポジションであるということなので実際にログファイルの方を確認してみる。スレーブで止まっているポジションを確認してみるとログファイルの5287994というポジションで止まっていたことが確認できた。マスターの方のログファイルを確認してみると、ログファイルの最大値は5284311となっていた。つまりレプリケーションしているサーバのログファイルの方が値が大きいために読み取りが不可能なポジションであるということになる。サーバに障害が発生したことでその辺りに影響が出てしまったのだろう。

直す方法としては、レプリケーションサーバの内容を確認してログファイルがどこまで反映されているか確認して、その次のログの初めのポジションの値をレプリケーションサーバに設定をする。CHANGE MASTERで設定をしなおす。下記は私の環境での設定例。私の場合はmysql-bin.000146のリレーログでエラーが発生して止まっていた。確認してみたところmysql-bin.000146の内容はレプリケーションされていたようなので、次のファイルからレプリケーションをしなおす、ということでmysql-bin.000147をログファイルに指定してポジションに0をセットする。そしてスレーブスタートという感じ。

mysql> stop slave;
mysql> CHANGE MASTER TO
MASTER_HOST=’192.168.11.11′,
MASTER_USER=’repl’,
MASTER_PASSWORD=’password’,
MASTER_LOG_FILE=’mysql-bin.000147′,
MASTER_LOG_POS=0;
mysql> start slave;

-mysql

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

関連記事

no image

mysqlのテーブルのクラッシュ

/usr/local/mysql/bin/myisamchk –recover –force –sort_buffer_size=2048M /usr/local/mysql/data/auc/ …

no image

mysqlのレプリケーションでのエラー:ERROR 1064

レプリケーションしているサーバで時々エラーが発生してスレーブ動作が止まる。よくあることと思いsql_skip_slave_counterに1を代入してエラーが発生する度に飛ばしていたのだけれど、詳しく …

no image

Blitzという名前のついたバルクメモリ

PCがやたらとフリーズするのでなんでだろうかと悩んでいた原因がわかった。アプライドの特価品メモリを使っていたのが原因だった。メモリの相性が悪かった、というより不良品のメモリであるというのが正しい表現だ …

no image

Wrong bytesec: 49-48-48 at linkstart: 14313808772

またテーブルのクラッシュ。mysqlのテーブルがクラッシュする頻度が激増してきた。以前はこんなことなかったのだが・・・。今は一日一回発生して絶えず見張っていなければならないという状態になってしまってい …

no image

HAPROXYを使ってmysqlサーバーの負荷分散

備忘録 listen mysql-db bind *:3306 mode tcp option mysql-check user haproxy1 balance roundrobin server …