web-dev-qa-db-ja.com

同じMySQLテーブルの双方向レプリケーション

AppAはdbA.tableAからデータを保存/取得しますAppBはdbB.tableAからデータを保存/取得します

tableAの定義は、これらのデータベース間で同じです。まず、dbB.tableAがdbA.tableAからコピーされました(両方に5行あると仮定)。

row6はAppA(たとえば主キー6)によって作成されましたrow7はAppB(たとえば主キー7)によって作成されました

Row7をdbA.tableAにコピーし、row6をdbB.tableAにコピーしたいのですが。

  1. AppA、AppBがいつでも同じデータを表示できるように、双方向レプリケーションを設定することも可能ですか。
  2. 主キーが自動インクリメントの場合、データの整合性を維持することは可能ですか、それとも主キーで衝突が発生する可能性がありますか。
3
Rpj

これらはMySQLの異なるインスタンスであると想定しています(おそらく異なるサーバー上にあります)。

マスターマスターレプリケーションを設定できます。dbAはdbBのマスターであり、その逆も同様です。

次に、自動インクリメントの衝突を回避するために、dbAのmy.cnfに以下を設定します。

auto_increment_increment=2
auto_increment_offset=1

そしてdbBについては次のとおりです。

auto_increment_increment=2
auto_increment_offset=2