2

レプリケーションサーバーのセットアップに苦労しました。レプリケーションの問題を監視して解決できるプログラム(OS X、Windows、Linux、またはPHPは問題ありません)はありますか?(ところで、以下の人たちのために、私はここ、ここ、ここ、そしてここでこの問題取り組んまし

私の本番データベースは数メガサイズで、大きくなっています。データベースのレプリケーションが停止し、データベースが必然的に同期から外れ始めるたびに、私はうんざりします。ダンプからの最後の再同期には、往復でほぼ4時間かかりました。

いつものように、同期した後でも、この種の表示停止エラーが発生します。

Error 'Duplicate entry '252440' for key 1' on query.

何が起こっているのかを注意深く監視し、おそらくソフトウェアにそれを処理させる方法があれば、私はそれが大好きです。私は自分のデータをよりよく監視するのに役立つかもしれないサービス会社にさえ耳を傾けています。または、完全にミラーリングする別の方法。

編集:私の前の質問を調べて、私はこれが非常に役立つことを発見しました。私はまだ監視ソリューションに耳を傾けています。

4

2 に答える 2

3

サーバーを監視するには、Maatkitの無料ツールを使用します...シンプルでありながら効率的です。

バイナリレプリケーションは5.1で利用できるので、いくつかのボールがあると思います。私たちはまだ5.0を使用しており、問題なく動作しますが、もちろん問題がありました。

MySqlプロキシをフロントのロードバランサーとして使用するMaster-Masterレプリケーションを使用し、エラーが発生しないようにします。

  • すべての一意のインデックスを削除しました
  • 一意の制約が本当に必要ないくつかのケースでは、INSERTではなくREPLACEを使用していることを確認しました(MySqlプロキシを使用して適切な使用を保護できます...クエリを書き換えることもできます)
  • 集中的なレポートを実行するスケジュールされたスクリプトは、常に同じサーバー(ロードバランサーではない)にアクセスしているため、危険な操作が安全に複製されます。

ええ、私はそれが単純で愚かに聞こえることを知っています、しかしそれは私たちが持っていたすべての問題の95%を解決しました。

于 2008-08-29T22:49:44.140 に答える
0

mysql レプリケーションを使用して、データを 30 台近くのサーバーに複製します。それらをnagiosで監視します。おそらく、レプリケーションの状態を確認し、イベント ハンドラーを使用して 'SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; で再起動できます。スレーブを開始;'. これでエラーは修正されますが、エラーの原因となった挿入は失われます。

エラーについてですが、スレーブでメモリテーブルを使用していますか? これは、mysql の最新リリースのバグが原因でこれらのエラーが多数発生した唯一のケースであるためです。「フィールド = 値のテーブルから削除」は、複数の行がある場合でも、メモリ テーブル内の 1 つの行のみを削除します。

mysql バグの説明

于 2008-09-05T14:33:01.997 に答える