⼤型互联⽹应⽤去Oracle改造经验总结
为什么要去Oracle
现在好像是个互联⽹公司好像都在谈去IOE,也有⼈问过我们,去IOE到底有什么受益?我们公司为什么要去IOE呢?当然实际情况是因为我们上层领导决定的,所以我们都热⽕朝天的⼲起来了,就跟我们当时为什么将已经开发的系统从MySQL数据库改成Oralce⼀样,都是上层领导决定的。对此我只能哈哈哈了。
但是我有⾃⼰的思考,为什么我们要去Oracle呢?对我们到底会带来什么受益呢?我个⼈觉得对于⼤型互联⽹公司⽤MySQL替代Oracle的原因有这样⼀些。
⼤规模部署成本可⼤幅度降低
因为⼤型互联⽹公司往往存储⾮常⼤规模的数据,数据库的读写流量也往往巨⼤,有数以千计的各种应⽤都需要⽤到数据库,这样购买硬件、软件license的成本巨⼤,随着业务不断发展,部署规模不断增加,我们的成本也将持续增加,这个帐应该很简单,不必细算。因此从成本考量我们是动⼒去做这个改造的。
但是我觉得规模可控范围之内的企业级应⽤,并且数据价值极⾼的业务,⽐如典型的银⾏,他们还依旧会选择使⽤Oracle更加合适。
有财⼒养MySQL专家团队可以搞定⼀切
由于互联⽹的集中化部署和维护的特点,使得我们开发和运维团队的价值较⾼,因此⼤规模互联⽹公司有财⼒聘请专门的MySQL专家技术团队,这些专家可以把MySQL的使⽤、部署、运维、原理源码都搞得⾮常透彻,他们有能⼒搞定MySQL出现的⼀切问题,他们可以针对⾃⼰公司的需求对MySQL做各种类型的定制和扩展,让数据库更加符合⾃⼰的需求,使⽤起来更加顺⼿,与系统内部的技术体系结合得更加机密,⽐如云平台、⾃动化运维系统等等。
当然这还因为MySQL是开源的,结构简单,代码量相对少,这样专家团队能够更容易的驾驭MySQL。
那为什么很多中⼩企互联⽹公司也使⽤MySQL呢?那是因为MySQL的简单、开源免费、开放,这符合⼩公司的很多特点,对于⼀些价值不⾼的数据存储来说也没有多⼤问题,⽽且中⼩互联⽹公司的数据刚开始的价值都不太⾼,所以他们会选择他。
所以,对于从可⾏性⾓度考虑我们是可以使⽤MySQL作为⾃⼰的主要数据存储服务器的。
改造前的架构
我们要改造的系统是⼀个核⼼的业务系统,它是提供实时⽣成的业务系统,对于系统的稳定性要求⾼,每天产⽣的数据量也较⼤。⽬前Oracle数据库服务器的情况是这样的架构。
当天系统数据架构存在的问题有这些:
共享的Oracle数据库集,多个⼤型互联⽹系统之间的耦合性⾮常重。⼀损俱损,⼀荣俱荣。
业务发展迅速,要求⽀持单⽇数据量1亿,当前数据架构可扩展性受限。
公司整体技术战略迁移到MySQL。MySQL的运维⼒量⼤⼤增加。
Oracle的⼩型机⽆法迁移到新的机房。
因此诸多重要因素决定了我们必须迁移到基于MySQL的分布式数据架构上。
为什么oracle网站进不去改造后的架构
从图中可以看出,过渡期Oracle和MySQL两个库是同时共存的,两个库是⼀个互为准备的关系,主库的数据写⼊会异步写⼊到从库上去。
上述为改造后的数据架构的全貌,主要由这些要点。
业务操作⽇志类数据迁移到Canssandra中。
mysql分库按照冷热库分开。
热库分为256⽚,分布在多个MySQL实例上。
改造之后的好处有这些。
核⼼业务库的压⼒⼤幅度下降,可以承担更多的业务量。
核⼼业务库具备了较强的可扩展性,能够⽀持更多的业务量。
冷库压⼒不⼤可以共享,冷热分离可以分开优化。
架构改造的挑战
1.物流核⼼的业务系统,系统的可⽤性不能有任何影响。
2.共有81张业务表有待迁移,⼯程量巨⼤。
3.有1张表4亿数据,4张1多条数据,这些核⼼业务数据迁移到MySQL后需要做分库。
4.分库后的跨库join,跨库事务⽆法实现的问题需要解决。
5.下游的监控报表平台、⼤数据平台的数据接⼊需要调整。
架构改造设计和实现
选择分库实现⽅案
分库策略设计
全局id⽣成
跨库join解决⽅案
跨库事务解决⽅案
平滑切换⽅案
数据同步⽅案
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论