欢迎参与讨论一个分布式数据同步的问题!

还不单单是个数据库的问题,还有文件同步的问题。

背景是:一个分布式系统中,一个主站和多个子站,现在要把子站的数据同步到主站中,子站的数据包括数据库记录和大量的文件。

主站和子站都存在2个表A和表B,A和B是一对多的关系。

现在出现的问题是:由于该系统设计当初设计时未考虑到分布式设计,所以对于子站的编码也没做出规定,所以存在子站的数据id和主站的数据id相同的情况。
如果现在主站没有子站的数据,这样我们通过遍历子站导出的数据,就可以方便的把子站的数据插入到主站中,
但是如果子站对数据进行的编辑,这样主站的数据就没法更新。比如子站删除了B表中的一条数据,而这条数据曾经被导入到主站中,现在主要无法判断.因为我们是这样操作的,从子站中遍历每一条数据,如果主站没有,则插入.


目前我们系统中,由于先前没有考虑为分布式系统,所以好多表中,都没有为记录添加设备标识id。

我的思路如下:
在主站和子站数据库中,添加一个记录的id,为唯一标识的id,和子站的编码。子站中添加log表,记录每个表中数据添加、删除、更新情况,这样每次数据同步只需要从log表中导出即可。这样我们就会很方便的实现增量导出。

不知道这样思考有没问题?

posted @ 2006-07-17 17:31  吴建明  阅读(1443)  评论(6编辑  收藏  举报