C# 如何将数据实时更新到主仓库

C# 如何将数据实时更新到主仓库,c#,sql-server,real-time,C#,Sql Server,Real Time,全部,, 需要一些信息 我们在多个地点都有商店,并使用为销售活动安装的客户端服务器应用程序。 销售数据存储在数据库中,该数据库设置在所有商店中。。。 @一天结束-一批从所有门店提取数据并更新主仓库数据库 我们希望有实时实现,这样无论何时有任何存储的Transaction。。。数据将立即更新到主仓库存储库 我们如何实现数据到主仓库的实时更新 提前感谢…一种方法称为复制。在SQLServer中有几种方法可以实现这一点。您可能正在寻找事务复制或合并复制 在SQL Server 2012文档中。 这可能

全部,, 需要一些信息

我们在多个地点都有商店,并使用为销售活动安装的客户端服务器应用程序。 销售数据存储在数据库中,该数据库设置在所有商店中。。。 @一天结束-一批从所有门店提取数据并更新主仓库数据库

我们希望有实时实现,这样无论何时有任何存储的Transaction。。。数据将立即更新到主仓库存储库

我们如何实现数据到主仓库的实时更新


提前感谢…

一种方法称为复制。在SQLServer中有几种方法可以实现这一点。您可能正在寻找事务复制或合并复制

在SQL Server 2012文档中。
这可能会有所帮助。

您应该确保了解实时的含义,以及您真正需要的实时性。如果您没有预先聚合数据,然后将其存储在WH中,那么您应该能够在数据库服务器之间设置复制(如果它们可以相互通信)。如果您正在加载一个聚合,那么它会变得很棘手,因为您必须将度量事实合并到现有度量中,这很困难。如果你不需要真正的实时,只是一个缓慢的涓涓细流,那么简单地考虑在SQL代理程序中运行你当前的进程。

首先-为什么不一天运行这个批。它不会真正是实时的,但可能会产生足够好的真实结果

一种选择是实现由正在使用的SQL引擎提供的主复制。尽管这可能意味着需要采取一些措施来防止重复ID、自动增量不匹配等。例如,我们设置了一个主系统,以便一个生成具有奇数ID的条目,另一个生成具有偶数ID的条目

另一种方法是对本地数据库执行所有读取,并将所有写入操作执行到单个远程主机中。数据将作为主从设置进行复制。这将提供最佳的数据一致性,但较慢的网络速度会使任何写入速度变慢。我们在主复制之上实现了这种设置,因为大多数交互都是读取

我实际遇到的一个类似商店/仓库设置的真实用例是基于Firebird SQL的。每个表都实现了触发器,将本地数据库上的每个操作存储在所谓的日志表中。还有一个复制应用程序一直在运行,定期检查这些日志表,将数据更新到远程数据库,并从拥有自己日志表的远程数据库中提取新数据。但另一个缺点是,当数据库设置发生更改时,触发器需要更新,复制应用程序有时会失败/挂起,因此维护触发器是一件非常可怕的事情。但数据一致性得到了很好的维护,并通过对本地数据库使用负ID和对主/远程数据库使用正ID来解决。但最终它并没有真正提供实时性


最后,没有一个“一刀切”的答案,可能会有关于这个主题的书籍。Research和Google是您的朋友。

对于sql server 2005-2008版,您可以使用,如果您有sql server 2012,则是您的选择。另一个选项将是,但不建议使用,因为它在sql server 2014中被弃用。感谢您的评论。不过我有一个疑问。比方说,如果某些事务正在进行,并且此时发生了事务复制。。如何自动处理这种情况,或者我们需要从我们的终端采取任何措施?我得到了我上面提出的问题的答案,谢谢。