今天聊下几类关系型数据库的数据解决方案,算是抛砖引玉,近期也要对技术方向上做一些扩展,也算是前期的小结吧。
1
3
Oracle
目前市面上的主流版本应该还是11gR2,记得很多年前有个网站做过一次调查,10g,11g的版本比例差不多是6:3,我想现在11gR2的版本比例应该能够占到90%以上,剩下的份额应该是12c的,现在用10g版本的数据库是少之又少,更早版本的除非业务足够稳定,实在是找不出什么理由不升级了。
来简单说说Oracle的方案。
从灾备的角度来说,那就是毫无悬念的Oracle Data Guard,从9i开始的基础功能,到了10g作为标准组件,11g的Active Data Guard,Snapshot Standby,12c的Far Sync和后期的更多定制,Data Guard已经表明备库不仅仅是备库,而是可以承载更多的业务操作。
从高可用的角度来看,Oracle RAC是目前的数据库高可用方案中的佼佼者了,因为经历了大量的生产实践,所以这个软件可谓是很多大型企业的标配,RAC是典型的share-everything架构。
当然Oracle支持sharding也是对原来架构的一种间接实现,所以在12c后期直接做了更大尺度的改进,基于RAC还可以做sharding。
还有两个方案也是在12c里面主推的,12c In-memory,CDB,这个在很多程度上能够对数据库做一定的资源整合和高效的数据计算,算是12c里面的标配特性。
从12c的特性来看,对于OLTP方向的改进就很有限了,开始在AP方向发力。Exadata也是其中之一,主要的方向是AP业务,但是因为硬件的极大优势,现在TP业务上也有的很普遍。
所以Oracle的架构模式是share-everything,所以数据库再大,也有个限度。毕竟共享导致的代价就是存储上有一定的局限性。包括AP业务,只能算是大中型数据,离海量数据还是有一定距离的,毕竟一个TP业务的百T数据库想想都有些担心,有种牵一发而动全身的感觉。
2
3
MySQL
MySQL的特点就是开源轻量,当然现在说轻量好像不是很严谨了,现在看看分支Percona,MariaDB和其他的分支,真是方案多多。
MHA是经典的高可用方案,到了现在依然很火,社区里面也有了很多的定制版本。
MySQL Proxy系列
这个版本是目前MySQL社区里发力点最多的一个方向,可见大家对于MySQL的单机承载从架构上就做了分离,尽可能动用集群的力量,而不是单兵作战。
所以市面上会看到很多的中间件产品,无论是商业的还是开源的,都有一定的适用场景。
MySQL Group Replication 和InnoDB Cluster算是官方的一个发力点,现在来看,Oracle也在不遗余力的做很大的改进,以前诟病的很多问题现在都在快马加鞭的修复,这在很大程度上会让原本的社区产品受到熬一定的压力和风险,同时也会相对让用户更加贴近官方版本。从我的角度来说,我是看好官方方案的,8.0版本发布后,会对MySQL的现状产生较为深远的影响。
AP方向上,有两个不错的方案,比如MySQL和NewSQL的透明切换,TiDB就是一个不错的选择,现在也就是主打的HTAP方案。TiDB作为分布式方案可以直接作为MySQL的Slave。
当然还有MariaDB ColumnStore,是以前的InfiniDB的后期演化版本,也值得一试。
3
3
PostgreSQL
PG是开源社区的一只小蜜蜂,产生了很多不错的方案。
对此我简单说两个,一个是对于PG的集群方案GP,基于MPP的架构模式可以承载更多的压力和负载。
GP的架构和其他略有不同。
还有很火的小强数据库,CockroachDB,也很值得关注。
领取专属 10元无门槛券
私享最新 技术干货