银行互联网金融业务系统,MySQL能否替代Oracle,或是其他数据库替代Oracle的方案?

求助金融行业MySQL替代Oracle的方案或者其它替代Oracle的方案数据量大,达到单表数十亿记录级别性能要求高,7x24小时服务安全要求高,互联网业务求推荐业界成本低的成熟的方案同时上层应用架构不需要发生大的调整,运维方便请业内大神不吝赐教

(本问题来自社区会员)


@某银行数据库专家:

如果要成本低,业务不用做大的调整的话,几个条件都满足的话,没有方案就像软件工程学里,没有银弹一样。

如果想使用MySQL替换,是需要对业务做调整的,因为Oracle和MySQL的用法都不一样。Oracle基本上能用数据库做的,就不要用程序去做;MySQL刚好相反,能用程序做的,就不用数据库做。所以面临调整是思想的调整,更不必说要调整业务了。

数据量大和性能方面,需要基于业务逻辑做表的拆分。

安全是另外一个维度的问题。


@墨者阳 hotpu 数据库管理员:

1.去O到M核心的需求需要明确;

2.应用服务对应数据库层一定要合理过渡,禁忌“牵一发而动全身”;

3.高效的发挥出M的性能特点,同时满足O的日常场景;

4.去不去O不是“冲动”,一定合乎“规则”;

5.具体问题具体分析。


@ACDante STARSINO 技术经理:

去O和不去O,不是拍脑袋决定的,是需要根据业务和实际应用场景做分析。Oracle就像一个全能管家,MySQL就像一个需要帮助的大小孩,是极其需要依赖其他组件和外部工具协同的。架构和应用层面的需求才是出发点。还需要有相对应的技术支撑和运维能力去匹配和支持。

当然,现在开源的很多i架构也能够满足高并发和大数据量的业务需求,比如MySQL+grode+voltdb的架构,把MySQL彻底释放。只作为存储功能,也能够达到上百万的QPS。


@baochengchen 华际 系统工程师:

看你应用情况吧, 不过在金融行业来说, 数据基本上都是Oracle、Db2 吧;除非数据量很小,或者应用很分布式规划;可以考虑MySQL;不过不要幻想奥拓达到奥迪的效果就行了。


@匿名 某银行数据库专家:

说说银行业实践:

1)MySQL 到底可不可以用?可以!工行等银行都有大量MySQL 使用经验,不论从生态圈、同业案例、技术支持、产品成熟度等各角度考虑,答案都是肯定的。

2)试图同一款数据库解决所有问题?不可能!应用系统不一样,数据特点不一样,不可能一个万能的数据库。

3)可不可以不改造就使用?不太可能。一方面 MySQL的数据处理能力在数据达到一定量后会产生下降,这个经验值有的银行是 500G,有的银行事 1000G,另一方面,题目的需求是说性能要求高,数据量大,这样只能通过分库分表去使用,应用层必然要进行改造。不论什么数据库迁移,肯定有一些改造工作量,而想要用好数据库,肯定需要数据层配合。


@Switcher 某银行 数据库管理员:

MYSQL能否替代Oracle?能。

银行互联网金融业务系统,MySQL能否替代Oracle?技术上能,但真正的关键在于领导的开放态度。

上层应用架构不需要发生大的调整,MySQL能否替代Oracle?如果是已有的应用,将面临程序的大量改造工作,这部分工作想开展起来不易;如果是新上应用,倒是完全可以根据MySQL数据库来做。

成本低?即使使用主流开源分布式MySQL+MYCAT,成本也不低,免费的东西不一定便宜。如果是使用国产分布式数据库,那么开销也不会小。

还是要评估近一两年的业务压力,如果到了必须使用分布式提升性能的阶段,那么用么还是得用。


@韩成亮 某金融 数据库架构师:

除非自上而下否则不予轻言去什么。

银行互联网金融业务不仅仅是说底层使用哪个数据库就是一劳永逸的。要针对特定的场景,举个例子,关于你说的 “数据量大,达到单表数十亿记录级别”,片面的说 无论哪个数据库都吃不消,聚合查询运算加加上dml、ddl等,这个是属于OLAP层面的,正常的日活数据,远远达不到,还有的你说的性能要求高,总体而言,缓存,分布式可以解决百分之七八十,7*24的业务始终是有业务的低谷期,你需要的是评估你的峰值。

所以笼统的寻找替代方案,不如深入研究你的业务。


@kyl123 系统运维工程师:

您这表数十亿级别,使用MySQL或者Oracle都一样,都必须进行分区,分片等方法,目前业内比较成熟的做法有:

1、通过MySQL+mycat的方案,该方案完全开源免费,缺点是自己的MySQL运维能力要比较牛;

2、通过购买商业的分布式数据库,比如action,hotdb,tdsql等分布式。


@hfboss  技术总监:

运维成本是一个很大的考量。