2012-02-23 11 views
0

私たちは、両方ともMySQLを使用してWebサイトと統合される.NETデスクトップアプリケーションを開発してきました。各ソフトウェアの顧客にはWebサイトがあります。顧客のデータベースを当社のサーバーで稼動している通信データベースと同期させる必要があります。サーバーごとに1つのデータベースを顧客ごとに実行します。これらの情報は、お客様のWebサイトに表示されます。.NETアプリケーションMysqlリモートデータベース同期

同期は短期間で行う必要があります。私たちは時代遅れのウェブサイトを望んでいません。

これを同期させるためのコードを記述しています。堅実な同期を達成するのは難しい作業のようです。顧客のデータベースは大きくなりますが、短期間で送信するのは実用的ではないようです。

次に、データベースの複製が見つかりました。すばらしいです!データベースを同期するスムーズな方法。このソリューションをハードコードする必要はありません!私たちの顧客のデータベースはマスターになり、私たちのサーバーのものはスレーブになります。同じMySQLサーバに複数のスレーブが必要です。 MySQLはそれを許可しません。

お客様ごとに複数のMySQLインスタンス(インスタンス)を実行できます。しかし、インスタンスごとにポートを開く必要があり、安全ではないように思えます。

最後に、私たちはポートを開いてファイアウォールを使って顧客以外のアクセスを拒否することを考えました。

どのようにこの問題を解決しますか?あなたの意見を聞きたい。おかげさまで

答えて

1

私は同様のプログラムを持っていますが、私はCQL CEデータベース/ MS SQLを使用しています。私がやることはマスターサーバー上にあり、クライアントデータベースに更新を送信するために必要な各テーブルは、更新日フィールドを置いています。クライアントデータベースには、データベースが最後に更新された日付を保持するテーブルがあります。したがって、サーバー上で何かが変更されると、更新日は現在の日付になり、クライアントプログラムは最後の更新日をWebサービスと照合して更新が必要かどうかを確認します。

0

私はこれを少し前に考えました。

私は、クライアントデータベースから直接Web上にデータを供給することで、あまりにも多くのデータストアを複製しないようにすることをお勧めします。

ポートなどを開くことなくこれを行うことができると私が考える最もよい方法は、長いポーリングまたはhtml 5ソケットを使用して要求されたデータのみを提供することです。これは、ユーザーがすべてのデータを頻繁に表示することを期待しない限り、公正なソリューションを提供します。

関連する問題