0

在我们公司,我们在不同城市使用许多数据库服务器。有时,一台服务器中的数据应该与另一台服务器同步。例如,在“监视器”表中,“状态”和“日期”值可能会经常更新。我的问题是当这些值在服务器 A 中更新时,它们也应该在服务器 B 中更新:

  • Update Monitor set(date='2013-06-13') 进而
  • '更新监视器集(状态 = 4)'

    在服务器 A 中,两个值的更新都是成功的,但在服务器 B(通常负载最高)中,有时大约是。0.03% 的案例仅更新了价值date并且status仍然是旧的。谁能解释一下,在高负载的数据库服务器中是否可能?

4

1 回答 1

1

如果不查看每个框、日志和工作量,就很难解释;有一千种情况会导致服务器“B”丢失数据,包括表和行锁、网络丢弃的请求、未完成的事务等。要准确找出,您必须打开日志记录并比较“A”与“B”上的请求。然而,我要做的第一件事是在 SQL 日志中查找错误。

但总的来说,使用 MS 和 Oracle 中可用的现有技术保持数据库跨区域同步是可行的。一种情况涉及使用主数据库来接收所有请求。然后,它使用 SSIS 或通过 WAN 的常规数据库连接将插入、更新、删除和查询分发到区域数据库。

这是 SQL Server 中可用的技术解决方案的高级指南。

http://msdn.microsoft.com/en-us/library/hh868047.aspx

您可能正在寻找一个简单的答案,但我认为没有。

于 2013-06-13T07:18:28.227 回答