0

ここでは、2 つの MySQL サーバーが WAN 経由でリンクされている状況があります。各場所 (それらを場所 X と場所 Y と呼びましょう) は 3 つのデータベース (それらを A、B、C と呼びましょう) にアクセスする必要があります。

ロケーション X は、データベース A をメイン データベースとして使用し、データベース B を「ルックアップ」読み取り専用データベースとして使用する必要があります。

ロケーション Y は、データベース B をメイン データベースとして使用し、データベース A を「ルックアップ」読み取り専用データベースとして使用する必要があります。

両方の場所で、レプリケートされたデータベース C への読み取り/書き込みアクセスが必要です (このデータベースには、自動インクリメント列などは含まれていません。かなり単純なログ テーブルです)。

本質的に、マスター/スレーブとマスター/マスターのレプリケーションの組み合わせが必要です。

X      Y
--------
A  --> A
B <--  B
C <--> C

これは MySQL で設定できますか?

4

2 に答える 2

1

MySQLD-Multiは、これを実現するのに役立つパッケージです。個々の MySQL データベースは、マスターを 1 つだけ持つことができます。A シリーズを一方向にマスタリングし、B シリーズを反対方向にマスタリングする場合、それらは独自の IP またはポート番号で実行する必要があります。Cについても同様。

マルチマスターのセットアップは、データ転送エラーが発生したり、テーブル スペースが失われたり、群れの群れに襲われて接続が切断されたりすると困難になります。ログベースの回復ツールを使用してそれらを再同期するという、うらやましい状況に陥る可能性があります. アプリケーションが「書き込み」特権接続を非常に慎重に使用し、読み取り接続に大きく依存することを考慮してください。

このように MySQL インスタンスを分割すると、アプリケーション間のレイテンシーをより適切に分離できます。マルチマスターの状況では、通常、レイテンシーを監視し、レイテンシーが 1 秒でも異なる場合、プールから何かを失敗させ始める必要があります。C シリーズに MM が本当に必要な場合は、C シリーズの両端で読み取り専用スレーブを連鎖させて、書き込みマスターのレイテンシを最小限に抑えることを真剣に検討してください。

于 2013-05-01T00:42:49.657 に答える