方案主题:
    
异构数据库异构数据表数据同步系统方案内容:实现多个数据库到多个数据库数据同步,数据库可能是Oracle,MSSQL等。具体例子:一台Oracle 的数据库,同时向两台MSSQL的数据库同步数据,同时一台MSSQL的数据库也同时在某些数据放生变化的时候更新Oracle。要求数据同步的数据库是三个不同的人力资源系统的后台数据库,当制定的数据库数据系统发生变化的时候,更新到其他两个数据库。但是具体说明的是,三个数据库的表结构不同,需要和业务逻辑结合,说白了就是实现业务的同步。但是这个必须对三个系统业务非常熟悉(此问题先不管)。用户可以在WEB页面上灵活设置两个数据源数据表字段的对应,同时保证数据同步信息的安全。请问:如何利用一台中间件服务器,实现以上的数据同步管理和操作。此项目如果可以实现,那么具体应用到的技术可能会是那些?如果可以实现,那么从长远的角度来讲,其通用性设计应注意和提交保证什么?其性能和容灾恢复如何设计保证系统整体性能?如果不可以实现的话,请说明你的理由!如果你说得有道理,不管是或否,加分!

解决方案 »

  1.   

    为什么没有人回答?难道现在的程序员们都只对Struts,Hib,Spring...感兴趣么?
    仔细想一想,那些到底是J2ee的先进技术还是“工具”。我先回答一下我的看法:我认为不是不可完全实现,但是实现起来会非常的麻烦。首先,在不同数据库数据表字段配置或者说业务映射的地方会非常的困难。在程序里面实现业务逻辑就很麻烦,转换到web页面来实现业务逻辑更加困难。即使实现了,在以后的web页面的配置也对操作人员要求很高。
    其次,高并发和大数据量,也会影响服务器和数据库速度。现在的模型系统中用到的是触发器,临时表的方式,这种方式对于数据库的速度影响现在还没测试,但以后肯定是问题之一。还有数据传输如果出现问题的话,日志恢复系统应该如何考虑,现在还不得知!所以,我觉得凭我们现在的实力的话,这个系统不可能实现。
    (我的水平不高,如果说得有失得当的地方,请高手指教)
      

  2.   

    to:kindani(kindani) 谢谢你的答复,但是DB数据自带的那些功能可能还不够。具体就是最终要实现的“业务逻辑”的数据同步。更详细点说:A系统删除一条数据信息,B系统要更新一条数据信息并且还要添加一条信息。他们操作的表和表结构都不一样,这就是要在web页面上实现的功能。除了这种方式,其他还没有想到。(对于如何实现业务逻辑的数据同步)
      

  3.   

    to:tiaoci(我挑刺,我快乐) 使用日志操作和恢复的方式很好,对于传输,是否基于JMS的方式会更好些?但是现在的模型系统是通过数据库连接的方式做操作,利用监听器和定时器做临时表数据侦测。有更好的方法么?谢谢。
      

  4.   

    to:fiele(半导体) 数据库版的人气更少,而且这个也是java程序员要了解的,所以像我这样的java程序员希望和大家讨论。
      

  5.   

    如果跟sql server通讯,oracle9i的透明网关技术可以解决web程序控制数据库间的操作,却是比较困难,是否有并发的问题?
      

  6.   

    to: bzszp(SongZip) 并发现在用程序控制,不过所有触发器对临时表的操作也只好交给数据库来排队管理了,倒是程序那部分,不敢用多线程控制。因为同步的时间没有要求十分严格,现在初期先用单线程处理。后期可能考虑,但是oracle9i的透明网关技术我不是十分了解,我先到网上查查。
      

  7.   

    to: nebulaly(极高明而道中庸) 我查了下资料,确实是这样。
    透明网关可以将异构的数据库联接起来,但是做到业务逻辑同布(目标数据同布),还是没有什么直接的帮助。现在这个方案的重点是业务逻辑的同步(目标数据同布),如何灵活性最大,通用性更强,并且用户可以自己设置。现在似乎没什么好的方法,即使凑乎的做出来,后期的配置维护和系统安全、同步性能等等都不能保证。