› MySQL 5.5 Community Server
› MySQL 5.6 Community Server
› Percona Configuration Wizard
› XtraBackup 搭建主从复制
Great Sites on MySQL
› Percona
› MySQL Performance Blog
› Severalnines
推荐管理工具
› Sequel Pro
› phpMyAdmin
推荐书目
› MySQL Cookbook
MySQL 相关项目
› MariaDB
› Drizzle
参考文档
› http://mysql-python.sourceforge.net/MySQLdb.html
gancl
V2EX  ›  MySQL

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

  •  1
     
  •   gancl · Jul 4, 2019 · 6457 views
    This topic created in 2674 days ago, the information mentioned may be changed or developed.

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

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

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

    另外我还没想明白一个事情,既然是商业软件,而且目标是替代原系统,那绝大多数模块应该是开发完的,完全可以先开发甲方要求的定制模块,完了建立测试系统从 oracle 导出数据做测试,测试好了直接一晚上割接解决。
    gancl
        9
    gancl  
    OP
       Jul 4, 2019
    @laozhoubuluo 系统太大了,没办法一晚上全切换,忘一切换失败,现场用户影响了会后果很严重. 也没信心这么多功能全做完了再一起切换.
    看样子只能用回 oracle 了, 听领导的话, 少操这方面的心了.
    laozhoubuluo
        10
    laozhoubuluo  
       Jul 5, 2019
    @gancl 如果要是能做到新模块和旧模块不并行运行,也可以考虑首先切换用户中心,完了新用户中心用户数据和老系统间加入接口,完了新模块数据在 MySQL,旧模块数据在 oracle,割接根据模块关系按批次走。
    问题就是还需要改造老软件,特大企业这么搞没问题,商业软件这么搞老系统那边真的不一定能改。
    laozhoubuluo
        11
    laozhoubuluo  
       Jul 5, 2019
    @gancl 总之保证多数一个模块同时只有一个生效的(除了用户中心这种特殊模块两段运行),这样压力会小很多。
    hanxiaomeng
        12
    hanxiaomeng  
       Jul 5, 2019
    oracle 按 CPU 付费的话一个十几万吧,按 User License(并发连接)一个 License 几千吧
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1297 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 21:04 · PVG 05:04 · LAX 14:04 · JFK 17:04
    ♥ Do have faith in what you're doing.