私は、ローカルにホストされているクライアントのSQLデータベースからホストされているサーバーデータベースにデータをコピーする必要があるシステムを作成しています。ローカルデータベースのほとんどのデータは、実際に送信する必要があるデータの量を減らすために最適化されていますが、ライブデータにコピーされます。ローカルデータベースからリモートデータベースへのデータコピー
このデータをあるデータベースから他のデータベースに送信する最適な方法は何ですか。現時点では、私はいくつかの可能性があるオプションを見ることができますが、それらのどれもが主要な候補者として際立っていません。
- レプリケーションは理想的ではありませんが、ホストされた環境で使用するバージョンのSQLではサポートされていません。我々はXMLとして必要とし、大量にインポートするサーバーに転送するデータのエクスポートデータ
- を送信するために遅いと多少安全でない方法
- ウェブサービス - サーバ、直接データをコピーするリンク
- 。
コピーされたデータは、IDフィールドなしでテーブルのコピーに格納されるため、その点で違反のないデータの挿入/更新が可能です。このデータ転送は、データベースレベルで行う必要はありません.netやその他の施設から行うことができます。
詳しい情報
更新の頻度は、レコードが更新される頻度に完全に変化します。しかし基本的な考え方は、レコードが変更された場合、ユーザーはそれをライブデータベースに公開できるということです。あるいは、変更を記録し、構成可能な周波数でバッチで送信します。
現時点では、コアテーブル(製品カタログ)のテーブルあたり約4000行ですが、これはそれぞれ独自の製品を持つクライアントに依存していますカタログには、100から1000までの製品があります。明確にするために、各クライアントは個別のローカル/ホストデータベースの組み合わせにあり、1つのシステムに結合されていません。
個々のアイテムを公開するだけでなく、必要に応じてデータを完全に再同期する必要があります。
ローカルサーバーからコピーされるデータの一部はセカンダリデータベースに格納されるため、2つのデータベースのデータを1つのライブデータベースに効率的にマージします。
開始時に 'SET IDENTITY INSERT ON'コマンドを発行することで、IDフィールドを保持して他のデータベースに挿入することができます。あなたが終わったらそれをオフにすることを忘れないでください。 – tomfanning