2011-07-05 83 views
0

我们需要在两台服务器之间同步数据库和映像文件。源服务器有sql server 2000,目标服务器有sql server 2008.我们需要同步sql server 2000中某些表中的数据,以便更新后的数据每隔一段时间进入sql server 2008。与存储图像的文件夹类似。使用Microsoft SQL Server 2000的同步框架2.1

我试图用WCF实现Microsoft同步框架(http://msdn.microsoft.com/sync)以实现目标。我成功地运行下面的项目在SQL Server 2008中的两个数据库:

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

然而,当我试图数据的数据库之间的一个在SQL Server 2000和SQL Server 2008同步,那么我无法同步数据。

问题:

  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工作,如链接所示。我在其中一个存储过程中操作了min_active_version(),这样它就不会出错。除了代码sampleSyncAgent.Synchronize()触发时,所有东西都可以工作,但我得到了“快照隔离事务失败访问数据库'DBName'”的异常,因为此数据库中不允许快照隔离,使用ALTER DATABASE允许快照隔离。如你所知,我不能在sql server 2000中使用快照隔离(ALTER DATABASE [数据库名称] SET ALLOW_SNAPSHOT_ISOLATION ON)。 – Bikee

+0

我认为你不能设置快照隔离。在此查看Oracle提供程序示例:http://code.msdn.microsoft.com/Database-Sync-Oracle-and-037fb083。您可以将您的自定义提供程序与此类似处理。 – JuneT

+0

嗨JuneT,我已经看过Oracle提供程序示例并在SQL Server 2000版本中进行了转换。将所有pl/sql脚本转换为sql server版本并更改代码以使其与sql server 2000兼容,最后出现相同的错误时非常痛苦。这个错误在SynchronizationHelper.cs的第47行中是一样的(即:SyncOperationStatistics stats = orchestrator.Synchronize();)。你自己试过了吗?如果是的话,如果你和我分享一些知识,那会很棒。 – Bikee

相关问题