在我们公司,我们在不同的城市使用许多数据库服务器。有时,一台服务器中的数据应与另一台服例如,在表“监视”值中,“状态”和“日期”可以经常更新。我的问题是当服务器A中的theese值更新时,它们也应该在服务器B中更新:
Update Monitor set(date='2013-06-13')
然后'更新监视器设置(状态= 4)'
服务器中的两个值的更新都是成功的,但在服务器B中(通常具有最高负载)somtimes,大约是。 0.03%的案例仅更新了值date
,而status
仍然是旧的。任何人都可以解释一下,在高负载的DB服务器中是否可能?
答案 0 :(得分:1)
如果不查看每个人正在进行的方框,日志和工作量,就很难解释;有一千件事会导致服务器“B”错过数据,包括表和行锁,网络丢弃的请求,未完成的事务等。要准确找到答案,您必须打开日志记录并比较“A”与“B”的请求。但是,我要做的第一件事就是在SQL日志中查找错误。
但总的来说,使用MS和Oracle中现有的技术可以保持跨区域同步的数据库。一种情况涉及使用主中央数据库来接收所有请求。然后,它使用SSIS或通过WAN的常规数据库连接将插入,更新,删除和查询分发到区域DB。
以下是SQL Server中提供的技术解决方案的高级指南。
http://msdn.microsoft.com/en-us/library/hh868047.aspx
你可能正在寻找一个简单的答案,但我认为没有答案。