私はこの質問が以前に尋ねられたことを知っていますが、私は本当に行き詰まっていて、この問題を続行する方法がわからないので、このエラーが発生する原因を本当に知りたいです。
問題なく動作するレプリケーションがありました。私たちのセットアップには、1つのデータベースマスターと4つのスレーブが含まれ、すべて同じバージョン(5.5.x)のperconamysqlを実行しています。先日、データベースマスターがハードウェアの問題で亡くなりました。それで私たちは続けて奴隷を新しい主人にしました。それほど問題にはならないはずで、以前は実際に問題はありませんでした。しかし今、物事を再び立ち上げた後、私は私のsyslogに次のようなたくさんのログエントリを取得し続けます:
Mar 15 13:17:25 dbslave3 mysqld: 120315 13:17:25 InnoDB: Error: page 263337 log sequence number 34159788445
Mar 15 13:17:25 dbslave3 mysqld: InnoDB: is in the future! Current system log sequence number 1096541424.
さて、私はxtrabackup(以前はこれに使用していました)を使用して新しいマスターからダンプを作成し、そのダンプを使用してスレーブに適用しました。成功せずに。このエラーメッセージでも同じ問題が発生します。次に私は以下を試しました:
私は自分のサイトをオフラインにして、すべてのデータがすべてのスレーブに複製されていることを確認しました-確かに:複製は機能しています!データが失われることはありません。すべてのスレーブには、必要なすべてのデータがあります。
次に、スレーブでreset slave
を実行し、マスターでreset master
を実行しました。私の意見では、これによりbinlogがリセットされ、新しいシーケンス番号で最初からやり直す必要があります。次に、show master status
を実行し、スレーブのchange master to ...
コマンドに新しいシーケンスファイルと番号を使用しました。レプリケーションを再度アクティブにして、サイトを再びオンラインにしました。
成功せずに!それでも同じ問題。だから私の最大の質問:
何が起きてんだ!?このエラーはどのように発生しますか:
それを解決する方法は?つまり、データベースにギガバイトのデータを挿入することについて多くのことを読みました。「シーケンスポインタは追いつくことができます」...しかし、これは汚いハックのように聞こえ、できません。 この問題の本当の解決策になるでしょう!?そして私の最大の懸念は、この汚いハックを使用して問題が実際に解決されているかどうかです。
私ができる他のアイデアはありますか? mysqldumpを使用してデータをダンプし、再度インポートすることはできません。データベースが非常に大きいため、再度インポートするのに時間がかかるためです。
[〜#〜] update [〜#〜]
私もやったことは:スレーブの1つをダンプすることです:mysqlを完全に削除し、binlog、データベースなどを含むすべてのmysql関連のものを削除し、それを再設定します-成功しませんでした。それは私が上で尋ねているフレッシュインストールです。
誰もこの問題の本当の解決策を持っていないようです、少なくとも私は何か役に立つものを掘ることができませんでした。しかし、どうやら、定期的にログを実行してクリーンアップするだけで、サーバーがログでいっぱいにならないようにすることが役立つようです...少なくとも、ログエントリがない日もあるので...
これはすべて非常に奇妙です-私の謙虚な意見では。