新系统 oracle 转 mysql, 切换时怎么平稳过渡而不影响用户使用?

2019-07-04 10:09:13 +08:00
 gancl

1.新的系统按模块一个个开发出来,不能一下子全部切换,那数据怎么打通:旧的系统还在用 oracle,新的系统某个模块已经在使用了,并且用的是 mysql. 2.如果切换困难,想问下 oracle 做商业软件成本有多高? 我们的系统是打算做成商业软件卖给别人的,私服搭建或放在云上都可以.

5615 次点击
所在节点    MySQL
12 条回复
moodasmood
2019-07-04 13:00:41 +08:00
我记得 oracle 按服务器处理器核心数收费吧,一个核心多少万
linbiaye
2019-07-04 13:13:34 +08:00
双写,读 mysql,mysql 找不到读 oracle,同时后台把 oracle 数据导入 mysql, 导入完毕丢弃 oracle
7654
2019-07-04 13:30:18 +08:00
@moodasmood #1 56 核心,溜了,去问问系管花了多少钱。。
leonardyang
2019-07-04 14:22:47 +08:00
旧系统用 Oracle,新服务用 mysql,既然是按模块划分的,模块间数据访问完全从模块接口走就行了,前后端分离情况下前端也只是改访问接口,有啥问题
peyppicp
2019-07-04 14:41:47 +08:00
1.双读双写,以老库数据为准,然后更新新库数据。
2.定时任务定时扫两边的某个表,肯定会扫出两边数据不同的记录,还是以老库为准,更新新库
3.定时任务爆出的数据不同的条数逐渐减少到 0 为止,再运行一段时间
4.双写单读,读新库,等定时任务完全无条数且稳定后,单读单写新库,此时数据库切换完成

建议以上步骤以表维度进行
hasdream
2019-07-04 16:59:08 +08:00
国内有几个用 oracle 数据库买授权的。
reus
2019-07-04 22:23:36 +08:00
建议用 PostgreSQL,和 Oracle 更接近。MySQL 太弱。
laozhoubuluo
2019-07-04 23:24:45 +08:00
有接口的肯定最省事,前置一个平台决定某个接口是给到老系统还是新系统。
如果没有的话,双读双写 MySQL 事务又弱,系统改造弄套中间件处理太重,临时解决方案是上锁( O 库锁行,M 库锁行,O 库执行,M 库执行,O 库解行锁,M 库解行锁),除非是小系统否则并发受不了,而且还需要改造老软件,可行性很小。
鉴于不是啥系统都是按接口设计的,尤其是老 oracle 系统基本都是操作关联页面,很难做到同时运行。

另外我还没想明白一个事情,既然是商业软件,而且目标是替代原系统,那绝大多数模块应该是开发完的,完全可以先开发甲方要求的定制模块,完了建立测试系统从 oracle 导出数据做测试,测试好了直接一晚上割接解决。
gancl
2019-07-04 23:44:03 +08:00
@laozhoubuluo 系统太大了,没办法一晚上全切换,忘一切换失败,现场用户影响了会后果很严重. 也没信心这么多功能全做完了再一起切换.
看样子只能用回 oracle 了, 听领导的话, 少操这方面的心了.
laozhoubuluo
2019-07-05 08:07:34 +08:00
@gancl 如果要是能做到新模块和旧模块不并行运行,也可以考虑首先切换用户中心,完了新用户中心用户数据和老系统间加入接口,完了新模块数据在 MySQL,旧模块数据在 oracle,割接根据模块关系按批次走。
问题就是还需要改造老软件,特大企业这么搞没问题,商业软件这么搞老系统那边真的不一定能改。
laozhoubuluo
2019-07-05 08:12:57 +08:00
@gancl 总之保证多数一个模块同时只有一个生效的(除了用户中心这种特殊模块两段运行),这样压力会小很多。
hanxiaomeng
2019-07-05 11:30:44 +08:00
oracle 按 CPU 付费的话一个十几万吧,按 User License(并发连接)一个 License 几千吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/579874

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX