1

データを収集し、Microsoft SQL Server Compact を使用してローカルの WinXP PC に保存するアプリケーションがあります。レポートとアーカイブのために、そのデータを単一の本格的な SQL Server に集約したいと考えています。多少の遅延は許容されますが (最大 1 ~ 2 分)、データ転送はかなり連続的である必要があります (つまり、バッチ処理ではありません)。

データは、コレクターからサーバーへの一方向のプッシュです。コレクターは、他のコレクターが何をしているかを知る必要がなく、プライマリ サーバーがコレクターのデータを更新することはありません。現在の計画では 5 つのコレクターを対象としていますが、基本的にスケーラビリティーに制限はありません。

「ほとんど接続されている」と想定する必要がありますが、コレクターからサーバーへの接続を保証することはできません。サーバーまたはネットワークがダウンしても、データは引き続き収集され、サーバーが再び到達可能になったときにデータがプッシュされます。

理想的には、インフラストラクチャの作業が完了したら、プログラミング以外のエンジニアがセットアップできるソリューションが必要です。したがって、コードとウィザードを作成することは問題ありませんが、エンド ユーザーはコードの作成について何も知らないとは想定できません。

現在、これには 2 つの技術候補があります。

  1. SQL レプリケーション
  2. Microsoft 同期サービス

最初のものについてはほとんど経験がありませんが、SQL Server でサブスクリプションなどを設定するのは面倒であり、それらをデバッグするのは楽しくないことを知っているので、代替手段を見つけようとしています.

#2 についてはほとんど何もわかっていませんが、デバイス データをサーバーに送信するための代替手段として提案されていることだけです。

このタイプのシナリオ、またはこれらのテクノロジのいずれか/両方、または共有できるとは考えられていないものを使用した経験のある人はいますか? コレクターの SQL Compact は固定要件です。サーバー上の SQL Server は必須ではありませんが、顧客が既に持っているため望ましいものです。

4

4 に答える 4

1

完全にリリースされる前に、Microsoft Sync Services を使用しました。私はそれが好きで、あなたのアプリケーションにぴったりのようです.

自分の生活を楽にしたい場合は、メインサーバーと同期するすべてのテーブルの主キーとして GUID (SQL Server uniqueidentifier) を使用することをお勧めします。これにより、衝突や多くの余分なコーディングが回避されます。

1 つの注意点: 最初のバージョンのリリース後に Sync Services が大幅に変更されたと聞いたので、私の情報はおそらく古くなっています。

于 2008-11-29T01:01:25.330 に答える
0

私は最終的にオプション 3 を選択しました。どちらでもありません。代わりに、定期的に (ユーザーが調整できますが、デフォルトは 5 秒です)、SqlBulkCopy クラスを使用してレコードをコピーします。これは、IDataReader を渡すことができるため、うまく機能するため、TableDirect を使用してローカルでテーブルを開き、リモート テーブルから最大の RowID を探し、リーダーを WriteToServer クラスに渡します。

于 2008-12-31T15:55:10.620 に答える
0

レプリケーションの問題は、スキーマが変更されたときに、レプリケーションを再び開始して実行するために、各クライアントで手作業を行う必要があることです。私は Sync Services の経験がありませんが、同じ質問をします。スキーマが変更されるとどうなりますか? すべてのクライアントに触れなければならない場合、それは問題になる可能性があります。

于 2008-11-29T00:54:47.947 に答える
0

同期を試してみて、どうなるか教えてください :) 私は MSFT イベントを見ました。

私に行く方法のように聞こえます。

于 2008-11-19T20:51:22.073 に答える