2009-06-24 16 views
0

私はSQLiteデータベースにデータを記録するデータロギングアプリケーション(c#/ .net)を持っています。このデータベースは、アプリケーションの実行中は常に書き込まれます。 SQLiteデータベースのサイズがあらかじめ定義されたサイズに達すると、データベースをアーカイブし、新しいデータベースを作成することもできます。クライアントデータベースをサーバデータベースと同期させる最も良い方法

私はデータの報告のためのWebアプリケーションを作成しています。私のWebセットアップはSQL ServerとのC#/ .Netです。クライアントは自分のアプリケーションのインスタンスからオンラインで収集した自分のデータを見ることができます。

テスト用のデータをアップロードするには、基本的にSQLite DBから読み込み、SQLを使用してSQL Serverにデータを注入する、大まかで汚れたアプリケーションを作成しました。 SQL Serverデータベースをオンラインにします。

私のアプリケーションはc#で書かれており、モジュール化されているので、定期的にSQLite DBをチェックして、新しいデータをバッチでSQL Serverに転送するプロセスを追加できます。

私の質問は、クライアント側のSQLLiteデータベースを自分のサーバーと同期させたいのですが、アプリケーションがデータロギングをしているので、これについての最良の方法は何でしょうか?

私はここで採用する必要がある技術/戦略はありますか?どのような推奨テクニックですか?

答えて

0

Sync Frameworkをご覧ください。 &を同期させようとしているスキーマは、一方向であるか、データを元に戻す必要がありますか?

単純な解決策として、私はいくつかの区切り形式でデータをエクスポートしてから、bcp/BULK INSERTを使用して中央サーバーにデータを取り込みます。

+0

ありがとうございます。データ転送は一方通行です。私はbcpのようなものを使い、より長期的な解決策としてsyncフレームワークを調べます。 – Mattl

0

ログ配布のコンセプトを調べることがあります。

+0

私はSQLiteデータベースからSQL Serverに作業しているのでこれが実現可能かどうかは確かではありません。また、SQL Server側をリアルタイムで更新したいと思います。 食べることができますが、それは私が持っている別の問題を解決する方法について考えています。 – Mattl

1

いくつかのオプションが考えられます。コピー元の各テーブルにタイムスタンプを追加し、最後の更新後に書き込まれた行を選択することができます。これは高速で、データベースをアーカイブして空のデータベースから開始すると機能します。

各テーブルの更新を、変更を記述するXML文字列にジャーナリングして、キューとして扱われる新しいテーブルに格納することもできます。

0

Nugetでも利用可能なGithubのオープンソースプロジェクトが存在します。これはSyncWinRと呼ばれ、WinRTまたはWindows Phone 8とSQLiteとの同期を有​​効にするためにSync Framework Toolkitを実装します。 https://github.com/Mimetis/SyncWinRTからプロジェクトにアクセスできます。

関連する問題