まとまりのないブログ

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

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

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

no image

マシンスペックとデータベースのパフォーマンスの関係

マシンが高性能であればあるほど良いに越したことはないが、データベースソフトウェアのパフォーマンスにおいてはマシンの高性能化はあまり意味があるとはいえない。データベースのパフォーマンスを向上させるために …

no image

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

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

no image

mysqlのテーブルから不要なインデックスを削除する

テーブルを設計し直すために不要なインデックスを削除してみることにする。 mysql> drop index idx1 on ac200902; Query OK, 49398993 rows affe …

no image

結果の行数をカウントする

mysqlで結果の行数をカウントするsql文は、 seletc count(*) from foo; で取得するのが最も簡単ではあるけれど、レコード数が膨大な場合にはパフォーマンスの面で問題になる場合 …