【问题标题】:Using microsoft sync framework 2.1 for SQL Server 2000为 SQL Server 2000 使用 Microsoft 同步框架 2.1
【发布时间】:2011-07-05 10:48:33
【问题描述】:

我们需要在两台服务器之间同步数据库和图像文件。源服务器有sql server 2000,目的服务器有sql server 2008。我们需要在sql server 2000中同步一些表中的数据,以便每隔一段时间更新数据到sql server 2008。存储图像的文件夹也是如此。

我尝试使用 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. 如果没有,我是否可以实施其他可能的架构来实现目标?

【问题讨论】:

    标签: sql-server microsoft-sync-framework


    【解决方案1】:

    您在上面使用的示例中同步提供程序的最低 Sql Server 版本是 Sql Server 2005 SP2(其中引入了 min_active_version()。)

    尝试使用此链接中的步骤,以便您可以覆盖命令并使它们对 Sql 2000 起作用:Synchronizing Other ADO.NET Compatible Databases

    【讨论】:

    • 感谢您的链接。如链接所示,我试图使该项目针对 SQL Server 2000 工作。我在其中一个存储过程中操纵了 min_active_version() ,这样它就不会出错。一切正常,除了代码 sampleSyncAgent.Synchronize() 触发时,我得到异常“快照隔离事务访问数据库'DBName'失败,因为此数据库中不允许快照隔离。使用 ALTER DATABASE 允许快照隔离。”如您所知,我不能在 sql server 2000 中使用快照隔离(ALTER DATABASE [数据库名称] SET ALLOW_SNAPSHOT_ISOLATION ON)。
    • 我认为你可以不设置快照隔离。在此处查看 Oracle 提供程序示例:code.msdn.microsoft.com/Database-Sync-Oracle-and-037fb083。您可以像这样对待您的自定义提供程序。
    • 您好 JuneT,我已经研究了 Oracle 提供程序示例并在 SQL Server 2000 版本中进行了转换。将所有 pl/sql 脚本转换为 sql server 版本并更改代码以使其与 sql server 2000 兼容是很痛苦的,最后,同样的错误来了。 SynchronizationHelper.cs 的第 47 行中的错误相同(即在:SyncOperationStatistics stats = orchestrator.Synchronize();)。您自己尝试过吗?如果是的话,如果你能和我分享一些知识,那就太好了。
    • 您是否已将您使用的示例中的 SqlSyncProvider 替换为您的自定义 DbSyncProvider?
    • 该示例使用自定义 Oracle 提供程序“OracleDbSyncProvider”,我已将其替换为 DbsyncProvider。代码一直运行,直到我按下触发 orchestrator.Synchronize() 的“同步”按钮,我收到此错误“SQL Server 7.0 或 SQL Server 2000 不支持 System.Data.IsolationLevel 枚举值快照。”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多