2011-07-05 11 views
0

2台のサーバー間でデータベースとイメージファイルを同期させる必要があります。ソースサーバーにはsql server 2000があり、移行先サーバーにはsql server 2008があります。更新されたデータが毎回SQL Server 2008に送られるように、SQL Server 2000の一部のテーブルでデータを同期する必要があります。画像が保存されているフォルダの場合も同様です。Microsoft Sync Framework 2.1をSQL Server 2000用に使用する

私は目標を達成するためにMicrosoft Syncフレームワーク(http://msdn.microsoft.com/sync)をWCFで実装しようとしました。私は、SQL Server 2008で二つのデータベースのために成功し、次のプロジェクトを実行しました:

http://code.msdn.microsoft.com/Database-SyncSQL-Server-e97d1208/sourcecode?fileId=19017&pathId=519811259

しかし、私は、データベース間でデータを同期しようとしたときには、SQL Server 2000およびSQL Server 2008の内の1つの、そして私は、データを同期させることができませんでした。

質問:

  1. は、SQL Server 2000およびSQL Server 2008との間でデータを同期させるためにとにかくありますか?

  2. もしそうでなければ、目的を達成するために実装できる他の可能なアーキテクチャはありますか?

答えて

0

あなたは上記の使用サンプル中の同期プロバイダーのための最小限のSQL Serverのバージョンでは、SQL Server 2005のSP2です(min_active_version()が導入されました。)

することができますので、このリンクの手順を使用してみてくださいコマンドをオーバーライドしてSql 2000に対して動作させます。Synchronizing Other ADO.NET Compatible Databases

+0

ありがとうございました。リンクに表示されているように、SQL Server 2000に対してプロジェクトを動作させようとしました。ストアドプロシージャの1つでmin_active_version()を操作してエラーが発生しないようにしました。すべての動作は、sampleSyncAgent.Synchronize()というコードが実行された場合を除き、「このデータベースではスナップショット分離が許可されていないため、データベース 'DBName'にアクセスできませんでした。ご存じのように、私はSQL Server 2000でスナップショットアイソレーションを使用することはできません(ALTER DATABASE [データベース名] SET ALLOW_SNAPSHOT_ISOLATION ON)。 – Bikee

+0

私はあなたが離れてスナップショットの分離を設定しないで得​​ることができると思います。 http://code.msdn.microsoft.com/Database-Sync-Oracle-and-037fb083から、Oracleプロバイダのサンプルをご覧ください。カスタムプロバイダをこのように扱うことができます。 – JuneT

+0

こんにちはJuneT、私はすでにOracleプロバイダの例を見て、SQL Server 2000のバージョンに変換しました。すべてのpl/sqlスクリプトをSQL Serverバージョンに変換して、最終的に同じエラーが発生したときにSQL Server 2000と互換性を持たせるようにコードを変更するのは面倒でした。エラーはSynchronizationHelper.csの47行目と同じです(SyncOperationStatistics stats = orchestrator.Synchronize();)。自分で試しましたか?もしそうなら、私はいくつかの知識を共有していれば素晴らしいだろう。 – Bikee

関連する問題