2011-10-10 26 views
67

私たちはMysqlとしてバックエンドのいろいろな店舗でJava POSアプリケーションを実行しています。今では、データベース内のデータベースをサーバーのデータベースと同期して保持したいときや、店ではサーバー上で更新する必要があります。どのように私はこれを達成するのですか?親切に私を助けてください2つのデータベース間のMySQLデータベースの同期

+7

mysqlレプリケーション:http://dev.mysql.com/doc/refman/5.0/en/replication.html –

+0

それは簡単ですか?どのくらいの時間がかかると思いますか? – peedee

+2

@peedee MySQLレプリケーションは設定が非常に簡単です。いくつかのコマンドと初期同期。私の最初の時間は約30分かかりました。 – ceejayoz

答えて

56

複製を作成することは非常に難しくありません。

ここではいくつかの良いチュートリアルです:

http://aciddrop.com/2008/01/10/step-by-step-how-to-setup-mysql-database-replication/

http://www.ghacks.net/2009/04/09/set-up-mysql-database-replication/

http://dev.mysql.com/doc/refman/5.5/en/replication-howto.html

http://www.lassosoft.com/Beginners-Guide-to-MySQL-Replication

ここでは、心に留めておく必要がありますいくつかの簡単なルールは、(もちろんのではありませが、それは主なコンセプトです):

  1. データを書き込むための1台のサーバー(マスタ)。
  2. セットアップデータを読み取るための1つ以上のサーバー(スレーブ)。

このようにして、エラーを回避できます。

例: スクリプトがマスターとスレーブの両方の同じテーブルに挿入されると、重複した主キーの競合が発生します。

「スレーブ」は、マスターと同じ情報を保持していてもデータを直接追加することはできず、マスターサーバーの指示に従うだけの「バックアップ」サーバーとして表示できます。

注:もちろん、マスターから読むことができ、スレーブに書き込むことはできますが、同じテーブル(マスターからスレーブ、スレーブからマスターへ)に書き込まないようにしてください。

サーバーを監視して、すべてが正常であることを確認することをお勧めします。

あなたは

+0

はい、ショップ=マスター、サーバー=スレーブ –

+0

私は今マスターを設定しました。私は1つのスレーブデータベースに接続しようとしています。これを行うと、マスターへの変更はスレーブに反映され、奴隷はマスターにも反映されますか? – peedee

+0

はい、すぐにセットアップが良い場合!マスターにレコードを挿入し、テストするスレーブで選択を行うことができます。それがパスすれば、あなたは設定されています! –

18

3つの異なるアプローチ追加のヘルプが必要な場合は、私に教えてください:

  1. クラシッククライアント/サーバアプローチ:お店で任意のデータベースを入れていません。単にアプリケーションがあなたのサーバーにアクセスするようにしてください。もちろん、VPNを設定した方が良いですが、SSLまたはsshで接続をラップするだけで合理的です。 Pro:それはデータベースがもともと考えられていた方法です。 Con:複雑な操作が遅くなる可能性がある場合は、ストアドプロシージャを使用して往復回数を減らす必要があります。

  2. 複製マスター/マスター:@Book of Zeusが提案した。短所:セットアップがやや複雑(特に複数のショップがある場合)、ショップマシンを壊すとシステム全体が危険にさらされる可能性があります。利点:読み取り操作が完全にローカルであり、書き込み操作が非同期に伝播するため、応答性が向上します。

  3. オフライン操作+同期ステップ:すべての作業をローカルおよび時々行うことができます(1時間ごと、毎日、毎週など)。最後の同期操作のすべての新規/変更されたレコードで要約を書き込み、送信します。サーバー。長所:ネットワークなしで、素早く、簡単にチェックすることができます(要約が判読可能な場合)。短所:あなたはリアルタイム情報を持っていません。

+6

私はdb sync(オフライン操作+同期)の3番目のタイプを設定する必要があり、これについてもっと読むのが大好きです。この1つをGoogleにすることはできません。私が参照できる本/記事はありますか? – abhishek77in

1

dbForge Studio for MySQLでSchema and Data Comparison toolsをご覧ください。これらのツールは、比較、差分の表示、同期スクリプトの生成、2つのデータベースの同期に役立ちます。

6

対称DSが答えです。これは、一方向または双方向非同期データ複製を備えた複数の加入者をサポートします。 Webおよびデータベース技術を使用して、必要に応じてほぼリアルタイムでリレーショナルデータベース間でテーブルを複製します。

ニーズに合わせた包括的で堅牢なJava API。

+0

商品の説明が、この商品がすばらしいと言うものまで生きていれば... – TheStoryCoder

関連する問題