1

2つのサイトがデータベースを同期できるようにし、サイトAの情報をサイトBと同期して、2つのサイトが同じデータを参照できるようにするクライアントがいます。

必要なインフラストラクチャについてもわかりません。2つのデータベースを接続するためにVPNが必要ですか、それともインターネットベースのデータベースが機能しますか。つまり、サイトAはInternetDatabaseに、サイトBはInternetDatabaseに機能します。各サイトは定期的にデータをコピーし、InternetDatabaseがそれを同期すると、サイトはデータをプルダウンできます。

私の他の考えはDropboxのようなものでした。サイトAとサイトBがDropboxアカウントを使用してADTファイルなどを同期する場合、各サイトのデータベースはそれらのADTファイルと同期できますか?

ありがとう

4

1 に答える 1

2

2つのサイトが完全に異なるテーブルを更新する場合、Dropboxのようなものがそのために機能する可能性があります。Dropboxはファイルの内容を同期/マージしません。つまり、サイトAとサイトBの両方がファイルを更新した場合は、変更をマージするコードを作成する必要があります。

Advantage Database Serverは、ネイティブに組み込まれたレプリケーションをサポートしているため、これが最も簡単なソリューションになる可能性があります。Advantageレプリケーションは、レコードごとに実行され、非同期で処理されます。ターゲットデータベースに到達できない場合、更新はキューに保存され、定期的に処理されます。2つのサイト間の接続が常に開いている/利用可能である場合、ソース更新と複製された更新の間の遅延は通常は小さいですが、明らかにネットワーク帯域幅と遅延に依存します。

2つのサイト間の接続にVPNを使用することもできますが、必須ではありません。ただし、ある種のVPNを使用しない場合は、2つのサイト間の通信が暗号化されていることを確認する必要があります(サブスクリプションを設定する際のオプションです)。

編集通信に必要なのは、「通常の」ネットワーク接続だけです。主な問題は、ファイアウォールやNATなどの処理です。Advantageでは、使用するポートを定義します。TCP / IP接続を使用する場合は、構成されたポートがads.exeプロセスへのインバウンド接続を許可していることを確認する必要があります。UDPも使用できますが、ファイアウォールを扱っている場合は、TCPを使用した方が簡単になるでしょう。

重複キーについてのあなたの質問は良いものです。両方のサイトが同じ主キーを持つレコードを追加するか、同じレコードを同時に更新する場合、競合が発生します。競合を単に無視するオプションがあります。その場合、最後の更新が優先されます。より現実的には、競合を処理するためにONCONFLICTトリガーを作成する必要があります。

于 2011-01-15T17:56:05.197 に答える