2009-06-06 13 views
2

フォールトトレラントなMySQLレプリケーションを得る方法はありますか?私は多くのネットワーキング問題を抱えています。レプリケーションでエラーが発生し、停止するように見えます。私はそれを継続し、これらの欠陥から回復する必要があります。レプリケーションの状態をチェックし、ログの位置が失われた場合に再起動するラッパーソフトウェアがあります。代わりがありますか?フォールトトレラントなMySQLレプリケーション

注: レプリケーションはMySQLの5.0.45

答えて

1

NDBストレージエンジンを使用してMySQL Clusterのを検討している外部のコンピュータへのMySQL 4.1が埋め込まれたコンピュータから実行され、と耐障害性、何も共有しないことを意味しています

+0

MyISAMまたはInnoDBに滞在する必要があります。 – Joshua

2

どのようなエラーが表示されますか?また、使用しているレプリケーション・スキームやMySQLのバージョンについても説明していません。あなたが得ているエラーもまた重要です。

マスターマスターレプリケーションでプライマリ/ユニークキーの競合が発生すると、通常、レプリケーションは停止します。一般的なマスター/スレーブレプリケーションのセットアップ以外では、ネットワーキングの問題が原因ではありません。

5.0のレプリケーションはステートメントベースで、マスターマスターのセットアップやストアドプロシージャを使用しているときに問題が発生するため、Mysql 5.1以降を使用してみてください。

(また、Mysql Clusterから離れて...別のコメントに関するアドバイスに気づいた)

+0

マスタスレーブ環境でのみ使用 – Joshua

1

通常、MySQLレプリケーションは問題を検出し、途中から続けて再接続します。

レプリケーションエラーが発生している場合は、ソースが別のものである可能性があります。 MySQLのレプリケーションは、クエリログの "tail -f"を効果的に実行し、それをスレーブで再生します(それよりもはるかにスマートですが、それほど大したものではありません)。

データベースが同期しなくなると、MySQLレプリケーションはこれを検出も修復もしませんが、スレーブ上のデータの競合によって次の更新が続行できないため、結局破損する可能性があります。

レプリケーションスレーブのデフォルトのタイムアウトは非常に長く、数時間待っています(これを減らすことを望みます)。

データが同期してなってきては回避することは困難である、軽減手順は次のとおりです。MK-テーブル・チェックサムのようなものを使用して

  • モニターの複製Maatkit
  • から
  • 監査複製、危険なクエリ
  • ためのすべてのコード
  • 5.1を使用している場合は、この問題の影響を受けにくい行ベースのレプリケーションに切り替えます。
2

レプリケーションエラーは、データベースがs何らかの形で、サーバーを単純に続けることは、インコヒーレントなデータベースを意味するでしょう。私は本当にそれが欲しいとは思っていません。

私の経験上、このようなエラーで終わる唯一の時間は、マスターサーバーの1つがクエリを完了せず、スレーブが気付いた場合です。

いずれの場合でも、スレーブに何らかのクロールジョブを継続させたい場合は、スレーブに「SHOW SLAVE STATUS」と尋ねる数分ごとにクエリを実行して、 「STOP SLAVE; SET GLOBAL SQL_SLAVE_SKIP_COUNTER; START SLAVE;」コマンドを送信します。しかし、おそらくmysqlがエラーに遭遇したときに管理者に電子メールを送る方がはるかに多いので、問題の原因を調べてデータベースが実際に同期していることを確認することができます。そうでなければ、データベースがますます同期しなくなるにつれて、より多くのエラーが発生します。

+0

これは、それ自体を修復する必要がある組み込み環境です。 – Joshua

関連する問題