由于公司发展的需要,要在地球的另一边放一台服务器。
把公司现有的网站(asp.net做的)和数据库(sqlserver)拷贝一份过去。
要求两边的数据库数据能及时同步更新。
由于所跨越的地域很大,两边的互访速度非常缓慢,我们尝试了,做数据库分发同步和做触发器同步均因访问速度过慢而告败。
现在我们想尝试另外一个方案来实现这个同步问题,做一个数据库修改记录表,把每次数据库更改记录到一个表里,然后根据这个表的状态来对另一边的数据库进行相同的更改。但是这个有遇到了一个问题,由于我们的表主键用的都是自增长的标识符。这样一来两边的表主键就会产生误差
现在思考很久仍然找不到比较好的方法来解决这个跨国大区域的数据同步问题了。
请有这方面经验的高手支支招,谢谢!!!
把公司现有的网站(asp.net做的)和数据库(sqlserver)拷贝一份过去。
要求两边的数据库数据能及时同步更新。
由于所跨越的地域很大,两边的互访速度非常缓慢,我们尝试了,做数据库分发同步和做触发器同步均因访问速度过慢而告败。
现在我们想尝试另外一个方案来实现这个同步问题,做一个数据库修改记录表,把每次数据库更改记录到一个表里,然后根据这个表的状态来对另一边的数据库进行相同的更改。但是这个有遇到了一个问题,由于我们的表主键用的都是自增长的标识符。这样一来两边的表主键就会产生误差
现在思考很久仍然找不到比较好的方法来解决这个跨国大区域的数据同步问题了。
请有这方面经验的高手支支招,谢谢!!!
解决方案 »
- 在图片热点中 弹出新窗口 求思路 标题要长 因为HTML 人很少 所以发这边
- 页面控件执行问题,求助!
- 请问,我动态加载的WebUserControl ,如何清理和释放?
- 在ASP.NET中,在aspx页面中,如何显示一个对话框?
- 有没有做过网络硬盘?
- 求个位大虾,帮我解释一下代码,谢谢了
- 请问一个比较白痴弱智的问题 请帮忙!
- “客户编号”可以重复,怎么统计客户总数?
- 安装 Crystal Report 9.2 后,Crystal Report Viewe 创建及复制时,VS.NET 时产生问题解疑(作者:海波.NET,更新:2003-10-19)
- 如何能从服务器端的cs文件中,接收到客户端的变量值!
- 翻页效果!
- 知道阳历的日期如何转换为农历呢?
同步的问题,现在我还只会通过ssis,或者是订阅数据库.
这样的方案还真没有用做过...帮你顶.呵呵
{
public 订单明细[] _Items;
.....
}调用这个服务方法将一组聚合了明细对象的订单对象发送到对方,对方自己在放入数据库。基于对象实体进行编程,忽略“自增长字段”这种东西。实际上,订单保存到对方服务器上其“自增长字段”可以跟在本地是不一样的。这就要求你们不要用“自增长字段”作为业务逻辑对象的有意义的值,而仅仅是作为一个没有任何业务逻辑意义的随机数来设计。
:
找个第三方,把数据通过第三方周转,第三方必须满足一个条件:A和B访问C的速度都非常快。
SOA方面我了解还是很多。
这就要求你们不要用“自增长字段”作为业务逻辑对象的有意义的值,而仅仅是作为一个没有任何业务逻辑意义的随机数来设计。
---------------------------------------------------------------------------------
程序里大范围用了 “自增长字段” ,要取消作为业务逻辑对象的有意义的值,貌似很不值得。。
---------------------------------------------------------------------------------
SOA方面我了解还“不”是很多。
嗯,应该说,这种设计bug犯了一次不应该再犯第二次。一个业务逻辑值,怎么可能使用编程技术来决定呢。例如发票的流水号,也许认为它真好契合所谓“自增长字段”的概念(暂不考虑所谓自增张字段其实在多用户情况下是不连续的,会留下空号)。然而,实际业务中,难道不可能为一张发票重新编写流水号?这有实际的业务意义,结果程序设计造成业务需求(修改编号)根本不能实现,此时就可以看出最初的设计思路是本末倒置了。这种设计问题第一次开发复杂业务系统的人会犯,但是不应该犯第二次。这种系统的设计问题实在是出在关键环节上,轻易躲不过去,还不如早点重新设计软件。
时代太久远,我忘记了SQL Server的具体写法。自己google相关做法吧。参考:http://www.google.cn/search?hl=zh-CN&newwindow=1&rls=com.microsoft%3A*%3AIE-SearchBox&rlz=1I7GGIJ&q=sql+server+IDENTITY_INSERT&btnG=Google+%E6%90%9C%E7%B4%A2&meta=lr%3Dlang_zh-CN%7Clang_zh-TW&aq=f&oq=
长点见识.
不过我觉得用web service倒是可以尝试看.数据库同步速度按你们的情况是达到那样的效果.
如果自己设计数据同步机制,肯定是要有检查机制的。只要保证“事务”是完整的(ACID我就不重复了),那么这种检查只要比较“粗”的粒度就可以,例如只要调用对方的api来取得某段时间内传递到对方的所有发票号的一个(CRC、MD5之类的)验证码,最终定位到一小段时间的数据重新传递。“2M带宽”这是指对终端而言。就好像说ADSL速度不快,是指单个ADSL路由器而言(实际上上行速度低很多),而你可以另外装一个ADSL。