DBMotoではソース(複製元)とターゲット(複製先)で双方向に差分レプリケーションする「シンクロナイゼーション」というレプリケーションモードがありますが、応用して3台以上のデータベースに一括でレプリケーションする「マルチシンクロナイゼーション」という機能があります。
マルチシンクロのイメージ。設定上はソース1とターゲットnとなり、どこかで更新があれば他すべてに同期を取ります。
例えばですが、マスターDBが1台、各支店ごとにDBがあり支店が全部で30ある場合、マスターDBで更新があれば30支店全部にレプリケーションします。また、ある支店で更新があった場合にはソースと他の支店全部にレプリケーションします。
●DBMoto設定イメージ
ソース(マスターDB)がOracle、ターゲット(30支店)がMySQLの場合の設定を行う場合、以下のように設定します。
Oracle <—> MySQL1(シンクロ)
Oracle <—> MySQL2(シンクロ)
・・・
Oracle <—> MySQL30(シンクロ)
上記レプリケーション定義(30個)を設定後、すべてグループ化してまとめます。
metadataの接続設定イメージです。
metadataのレプリケーション設定イメージです。最後にグループ化して1つにまとめています。
レプリケーションを開始したところ。まずはイニシャルリフレッシュで、ソースのレコードがすべてのターゲットにレプリケーションされたところです。
イニシャルリフレッシュ完了後、どれかいずれかのレコードを1件更新した場合、他すべてのDBに同期を取っているところです。