【问题标题】:What is the best way to sync multiple SqlServers to one SQL Server 2005?将多个 SqlServer 同步到一个 SQL Server 2005 的最佳方法是什么?
【发布时间】:2011-02-06 06:10:43
【问题描述】:

我有几个使用我的 Windows 应用程序的客户端数据库。

我想为在线网站发送此数据。

客户端数据库和服务器数据库结构不同,因为我们需要在服务器数据库的一些表中添加客户端ID列。

我用这种方式来同步数据库;使用另一个应用程序并使用带有事务的 C# 大容量复制来同步数据库。

我的服务器数据库 sql server 太忙,无法运行并行任务。

我正在研究这个解决方案: 我在更新、删除、插入后使用触发器将更改保存在一个表中,并创建 sql 查询以发送 Web 服务以同步数据。

但我必须先发送所有数据!庞大的数据集(大于 16mg)

我认为不能使用复制,因为结构和主键不同。

【问题讨论】:

标签: c# database sql-server-2005 synchronization replication


【解决方案1】:

您是否考虑过使用SSIS 进行定时数据同步?您可以相当轻松地进行数据转换和批量插入。

【讨论】:

  • @drachenstern,可能有办法,但在这种情况下,我认为它不会比你目前正在做的更快。它旨在通过标准连接字符串连接到数据库,因为它在底层使用 ADO .NET。
  • 公平地说,这不是 我在 做的,因为我不是 OP。但我明白你的意思。
  • @dranchestern,抱歉,深夜。
【解决方案2】:

据我了解,您希望允许多个客户端应用程序将其数据同步到服务器,以使服务器拥有来自所有站点的所有数据,但每条记录也有一个客户端标识符,因此您可以保持对源的可追溯性。

为什么必须在设置其他信息之前将所有数据发送到服务器?您应该能够同时构建所有这些东西。此外,您不必一次上传所有数据。每天将它们分阶段进行(假设您有少量客户数据库),这样您就可以依次专注于每个数据库并确保准确地完成流程。

在将所有数据合并到一张表后,您是否会将数据复制回客户端?您的大小信息传达错误,您是说每个数据库都大于 16GB?那么 5 个站点将有 80GB 的累积大小来复制回各个站点?

否则,您概述的使用单独的应用程序专门处理数据上传的方法将是最合适的。

您是否要在更新主数据库后升级各个模式?您可能想要 ALTER TABLE 并向每条记录添加一个 bool 列,并将它们标记为“已发送”或“未发送”,以跟踪任何“延迟”更新/插入的记录。我有一种感觉,您将进行滚动部署/升级,并且您正在尝试弄清楚如何在不丢失任何内容的情况下保持所有“同步”。

【讨论】:

    【解决方案3】:
    猜你喜欢
    • 2011-08-08
    • 2020-05-13
    • 1970-01-01
    • 2020-09-27
    • 2010-09-18
    • 1970-01-01
    • 2018-02-16
    • 2010-10-16
    • 1970-01-01
    相关资源
    最近更新 更多