mysql ソフトウェア:私のmysqlレプリケーションサーバーを監視するための提案はありますか?

StackOverflow https://stackoverflow.com/questions/35420

  •  09-06-2019
  •  | 
  •  

質問

レプリケーション サーバーのセットアップに苦労しました。レプリケーションの問題を監視して解決できるプログラム (OS X、Win、Linux、または php で問題ありません) はありますか?(ちなみに、次の方々のために、私はこの問題に取り組んでいます ここ, ここ, ここ そして ここ. 。私のやり方が間違っているか、私が非常に太っているかのどちらかです)

私の運用データベースのサイズは数メガであり、さらに増加し​​ています。データベースのレプリケーションが停止し、必然的にデータベースの同期が外れ始めるたびに、私はうんざりします。前回のダンプからの再同期には往復でほぼ 4 時間かかりました。

いつものように、同期後でも、この種の重大なエラーが発生します。」

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

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

編集:以前の質問を調べて見つけた これ それはとても役に立ちます。私は今でも監視ソリューションに注目しています。

乾杯、

/mp

役に立ちましたか?

解決

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

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

MySql プロキシをロードバランサとして前面に配置したマスター-マスター レプリケーションを使用し、エラーが発生しないようにします。

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

そうですね、単純で愚かに聞こえるかもしれませんが、これで私たちが抱えていたすべての問題の 95% が解決されました。

他のヒント

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

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

mysqlのバグの説明

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top