90分给1人,其他大家分求,ORACLE同步到MYSQL方案。

masterjames 2012-03-29 11:31:54
如题:求ORACLE同步到MYSQL方案。毫秒级的。
...全文
133 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
我心飞翔 2012-03-30
  • 打赏
  • 举报
回复
使用Oracle网关,实现数据复制。
masterjames 2012-03-30
  • 打赏
  • 举报
回复
如果有现成的产品最好,就直接购买好了。
masterjames 2012-03-30
  • 打赏
  • 举报
回复
大家的想法,我也想过,在应用层解决,但数据校验存在较大难度。一旦某台机器故障就很麻烦。
iqlife 2012-03-30
  • 打赏
  • 举报
回复
godengate
laokaizzz 2012-03-29
  • 打赏
  • 举报
回复
毫秒级。。。一堆数据,你能毫秒级,1万毫秒能算毫秒么
kenshu 2012-03-29
  • 打赏
  • 举报
回复

如果你要简单,并且网络总是可以保证两边同时连得到的话,当然同进同退,这边INSERT一条,那边就INSERT一条.

----------------------------------------

但,如果你的网络并非总是通的,比如互联网上多个点的不同数据库(而且你还是不同的DBMS),就要想办法。当然外面有现成的解决方案,都很贵。

多个数据库双向同步的话,也就是多个数据库各自可以INSERT/UPDATE/DELETE 最后再同步(方便起见,DELETE一般处理成UPDATE,做个DELETE的标记),一般我是手工写同步程序(当然有自动生成代码的工具,自己写一个)

要同步的表,全部在原有的基础上建两个字段,数据库标识,最后更新时间.

前台程序,每个数据库只能更新它自己的,更新或INSERT时,修改"最后更新时间".

部份重要字段,可能要单独建一个关于这个字段的最后更新时间.下面再说明,比如用户密码,以最后更改这个字段实际更改的为准.

----------------------------------------


数据库A INSERT/UPDATE当时可能无法连到B/C/D......,以后再做。

当A的一张表要向B同步时,找到B中关于A的最后记录的时间,超过这个时间的,全部INSERT或UPDATE过去.

----------------------------------------

大致会有两种数据,一种是基本资料,一种是流水帐.

我们做个简单的例子,一个连锁店的多个分店,它们的数据库不一定可以永运互相连到.

基本资料比如,

客户资料,数据库ID+会员卡号形成主键.前台程序查找会员资料时,同一个会员号可能会有多条记录(多个数据库不同时INSERT形成的),以最后更新的为准.
部份字段非常重要,比如黑名单和白名单,以单独建的关于这个字段的最后更新时间那一个为准.又比如会员自己设的密码,要以最后一个更新为准.

流水帐的那些数据,比如消费记录,基本上不需要UPDATE,那边有的,这边没有就INSERT进去.

还有一些可能要算合计数,比如在各个店的充值总数和刷卡总数,或算最大值(或最小值),比如某个店延长他的会员级别一年.

这些东西,如果业务程序写之前就规划好,基本上很好写.

如果没规划好,也不会很麻烦,全部东西做成视图,原来的表名换一个,再用原来的表名建一个视图

当然啦,这只能是大致的思路,而且你要近乎同步的,要完全的解决方案,一般都是几百万几百万地卖.

看你数据量和实际要求和预算.但你是单向的,其中一个数据库基本上只是备份或查询专用的,会容易很多。
youqi1984 2012-03-29
  • 打赏
  • 举报
回复
只有通过数据链两段式提交,才能保证事务一致性。
异构数据库数据链配置比较繁琐。
http://topic.csdn.net/u/20100728/15/219af6d6-8784-47b0-b169-5e5d139778c2.html?88610
  • 打赏
  • 举报
回复
看来难度不小了 好多大牛也只能看看 顶下吧
  • 打赏
  • 举报
回复
还真不会,是我就只能用开发语言来实现了,先插oracle再插mysql..
masterjames 2012-03-29
  • 打赏
  • 举报
回复
你理解错了,是ORACLE保存1跳,MYSQL同样一条,只有增量

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧