浅谈两个数据库间同步问题

我要说的两个数据库指ORACLE和MYSQL间的数据同步。

应用场景如下:

一个公司下有很多地市都有业务,每个地市有很多销售店面,公司内部有一套自己的系统,使用ORACLE,公司和地市都是用这个ORACLE系统,而每个店面也有一套自己的销售系统,每个门店都使用各自的MYSQL数据库,因此产生了ORACLE和MYSQL间的数据同步问题。公司负责生产资料维护,店面组织管理,人员管理,物流配货,采购,财务统计,库存管理等,而店面主要是销售和自己的库存管理,店面需要从ORACLE获取最新基本资料,同时上传最新销售信息,本店库存变化和调货申请等。

基本资料只能由公司和地市录入,各个店面只需下载自己店面的资料或者店面所在地市的资料即可;

销售资料,有时店面会将票价直接给公司或地市,由公司或地市录入,这种情况主要是些特殊情况,因此销售数据会在两端都被修改;以店面的为准;

库存资料,每个门店用一个自己的仓库,地市由多个仓库,地市和门店间通过物流配货,调货等流程形成出入库,一般都是门店自己管理,然后上传店面库存,特殊情况下地市也会帮门店申请调货,配货等,因此库存也在两端都会修改,也是以店面为准。

有个别资料是两端都修改的,但是以公司的为准;

上面的“以XX为准”也就是如果有数据冲突就以XX的数据覆盖另外一方的数据。

数据同步在互联网环境下进行。

由于互联网环境下运行,因此不考虑用RMI,对web service的效率不满意,直接使用SOCKET开发的工作量比较大,因此也不考虑用web service,我们选定用hessian+tomcat,以HTTP协议通信,当然也可以以HTTPS协议通信。

由于业务还在不断变化,因此考虑整个同步过程不以业务为单位,而是以表为单位,极个别的需要以业务为单位的额外处理,因此我们将表间的数据都采用MAP存储。

猜你喜欢

转载自newslxw.iteye.com/blog/1288737