2017-05-22 4 views
0

当社は、MySQLのレプリケーションのアーキテクチャのためのオプションの中に私たちの現在の設定の関連する詳細を探しています:都市間のMySQLレプリケーションにはどのようなソリューションを使用できますか?

  • 私たちは別の都市に複数のブランチを管理します。
  • すべてのブランチは同じデータベース構造を持ちます。
  • すべてのテーブルのすべてのプライマリキーの先頭には、分岐識別子が付いています。
  • ネットワークが停止していて、接続が復元されたときにメインブランチと同期する必要がある場合、ブランチは機能し続ける必要があります。

我々はすべてのテーブルの上に重複したインデックスを取得する任意のチャンスを持っていないので「私はMySQLのマルチマスター、または多分Percona XtraDBクラスタまたはような何かタングステンに思っていますが、私はすることができます単一ノードが他のノードから隔離されていて、接続が復元された後に受信したデータはどうなるかについてのドキュメントを見つける。

この種の設定に適した実証済みの方法はありますか?何かアドバイスありがとう、ありがとう。それがどのように振る舞うかタングステンの場合

+0

私の以前の仕事では、SQL Serverのレプリケーションを使用して隔離されていませんでした。私たちの顧客のそれぞれには、「独自のサーバー」があり、私たちはデータファーム上にコピーを持っていました。だからいずれかのケース(多くのことが起こった場合)は、コードではなく、サーバーを指すようにコード内で修正しました。 – Gino

答えて

0

は、あなたがリラックスした一貫性モデルを記述しているように見える方法をyou tell it to behave

に依存します。しかし、すべての問題を解決するためのシェルフクラスタリングソリューションはありません。確かに、各レコードが「ホーム」データベースで変更されていることを確認すれば、多くの問題に遭遇することはありませんが、このモデルではすべてのデータをすべての場所に複製する必要があります。帯域幅は問題ではなく、優れたDR機能を提供しますが、ストレージとスケーラビリティが問題になる可能性があります。

集中管理された管理されたデータセンターをお持ちの場合は、各ブランチを非同期デュアルマスター(ブランチに1つ、データセンターに1つずつ配置し、データセットを統合するための独自のスクリプトを実行する)を実行する方法があります。

0

ノードが同期していないときに同じデータに対してUPDATEを実行していない限り、複数マスターの複製が機能します。その場合、変更内容をサイレントに適用し、データが矛盾するようにします。

あなたがそれをやっていないなら、MySQLがバイナリログポインタを処理して再接続を処理するので、それが最良の解決策だと思います。マスターの間でauto_increment_offsetの設定が正しく構成されていることを確認してください。とにかく、私はちょうど2つのマスターサーバー(わずかな問題で生産7年間)でこの展開をテストしました。

関連する問題