2008-08-11 10 views
10

異なるジョブ(異なるデータベースを保持)を持つ2つのmysqlサーバを使用していて、もう一方が失敗したときにそれらのうちの1つを使用したい場合は、両者のデータは「リアルタイムに近い」ものですか?フォールバックシナリオ用のMySQLレプリケーション

明らかに、x分ごとに完全なデータベースダンプを作成することはできません。

私はBinary Logについて読んでいます、それは私が行く必要がある方法ですか?フォールバックサーバーの速度を落とさないでしょうか?バイナリログにいくつかのテーブルを含めない方法はありますか?データが変更されても問題はありません。

+0

私はこのまったく同じ問題を抱えてきましたが、それをどうしたらいいのかまだ完全にはわかりません。 [ここに私の質問はいくつかの他の提案を与えられている](http://stackoverflow.com/questions/3798/full-complete-mysql-db-replication-ideas-what-do-people-do)。/mp – mauriciopastrana

答えて

2

バイナリログは確かに行く方法です。しかし、でMySQLを使用すると、そのようなサーバー間で前後に切り替えることはできません。

1台のサーバはマスターとなり、もう1台はスレーブになります。あなたはマスタに書き込み/読み取りを行いますが、スレーブサーバからしか読み込めません。あなたがスレーブに書き込むと、同期が外れてしまい、同期を取り戻す簡単な方法はありません(基本的にマスターを新しいスレーブにするためにスワップする必要がありますが、これは面倒な手作業です)。

ホットスワップ可能なバックアップデータベースが必要な場合は、以外のシステムに移動する必要があります。。必要なのは、最悪の場合のシナリオ(マスターは完全に破棄されます)で即座に使用できる読み取り専用のライブバックアップです。バイナリログはうまくいきます。

3

master-masterレプリケーションのシナリオを考えてみてください。レプリケートするデータベースを指定し、各サーバーのレプリケーションを制限することができます。

server1については、--replicate-do-db=server_2_dbとserver2 --replicate-do-db=server_1_dbをmy.cnf(またはWindowsのmy.ini)に追加します。これは、server_1_dbの文だけがserver2に複製されることを意味します。

偶発的なDROP DATABASEなどのステートメントからの安全性を提供しないため、レプリケーションに依存するだけでなく、定期的にフルバックアップを実行するようにしてください。

関連する問題