日期:2014-05-17  浏览次数:20493 次

子系统数据上传到总服务器的方法
所有数据库均是MSSQL2008

现有一个中心数据服务器,N多子数据服务器,想实现通过网络把N子数据服务器内个别表内容上传到中心数据服务器内,寻求好的解放方案!

1、通过子系统运行上传程序定时(10秒一次(可以定义))扫描子数据库表内容,发现未上传数据进行数据上传(可以定义每次上传数据量),这样中心数据服务器接收N个上传程序上传的数据。

1:N N套上传程序(做差时上传)

2、中心数据服务器,运行一个下拉程序,定时扫描各子数据库表内容,下拉数据写入中心数据服务器。

1:N 1套下拉程序

3、通过中心数据服务器MSSQL2008做订阅服务和子数据库程序通信上传数据或下拉数据。

4、还是做在子系统上通过程序定时扫描新数据把新数据生成TXT后者XML等文件压缩后通过FTP等上传到中心服务器,中心服务器运行程序解压缩上传文件并插入到数据库内。

寻求更加优化的解决方案!!


------解决方案--------------------
第一种实现较好,第二种,你要保证总服务器上的程序能够连上所有子服务器,对网络要求高,出错概率大,效率也低。

第三种,取决于sqlserver的订阅和分发的稳定性,2008我不是很熟悉,但是sql server2000这方面做得挺差的。

第四种,最不可取。
------解决方案--------------------
还没碰到到这第复杂的事务,了解下
------解决方案--------------------
合并同步可以搞定.
------解决方案--------------------
用sql自带的合并同步,做成单向同步,应该没有问题,以前做过一个类似的项目,就是这样解决的
------解决方案--------------------
第二种可以.便于控制.
------解决方案--------------------
首先,你的业务有没有分时段的高低峰,有的话,可以考虑在业务低峰期做定时的上传,当然如果你的数据中心数据库数据如果要实时(相对来说)跟子数据库服务器同步的话,那就不能做定时的上传。那就用发布和订阅或者用方案二,但是方案二要考虑,频繁的扫描数据库表内容会不会影响个子服务器数据库的性能。