阿里云数字新基建系列:云数据库架构
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第1章
关系型云数据库技术特点

随着云计算技术的兴起和数据库技术的多年积累,越来越多的数据库种类和产品扑面而来,关系型、非关系型、分布式、NewSQL、HTAP等越来越多的概念与名词,仿佛在诉说着新时代的到来。

要理解数据库,首先要理解数据库的本质。在Oracle 10g的时代,Oracle的经典结构可以说是大为成功,网上搜索数据库结构,得到的基本都是Oracle的结构图。按照这个结构,再进行一次抽象——通过指定的数据库语言访问通信接口,由一个或多个进程进行响应,进程占用一段专用内存来读/写数据库文件。逻辑层,往往被称为数据库实例(DB Instance);物理层,往往被称为数据库(DB)。所以说是实例加载数据库,有的实例只有一个数据库,有的实例可以有多个数据库。集群则是多个实例,有的是多个实例加载一个数据库,有的则是多个实例加载多个数据库。我们在分析时,要着重注意这里的差异。

经典数据库抽象模型如图1-1所示。传统数据库大多在这个模型上略有不同。比如在进程设计上,Oracle数据库有多组进程提供服务,而SQL Server只有一个主进程sqlservr.exe。再比如在文件交互上,关系型数据库会通过Checkpoint机制及时从内存刷脏到物理文件,而缓存型数据库往往不会有这么强的数据文件交互,如Redis就没有所谓的数据文件,只有RDB镜像文件和AOF日志文件。

图1-1 经典数据库抽象模型

正如前面所提到的,实例和数据库往往也不是一对一的关系,比如Oracle一个实例往往只有一个数据库,RAC技术则允许多个实例访问一个数据库。MySQL、SQL Server则不同,一个实例会有多个数据库,还包括系统数据库。

新一代数据库重点在扩展性上进行了各种探索,其中首先要提到的两个思路是计算和存储节点的拆分,以及计算和存储性能的突破。关于这两个思路的实现,我们会在后续章节中陆续展示阿里云的实践。本章主要介绍关系型数据库。

关系型数据库作为数据库家族中最普及和显赫的一族,基本支撑起以OLTP业务为主的数据库需求,算来已有二三十年。随着时代的发展与变化,逐渐出现了一些OLAP的场景,但在迁移到其他新型数据库之前,依然是关系型数据库在支撑这些业务。所以说关系型数据库无疑是目前适应性最强、性能和稳定性兼顾的数据库。

常见的关系型数据库有MySQL系列、SQL Server、Oracle、DB2、PostgreSQL(以下简称PGSQL),其中Oracle数据库的影响力最为深远,曾经占据数据库领域的绝对统治地位。经过近十年的发展,我们看到MySQL数据库在市场流行度上逐步超过Oracle数据库,成为当今最流行的数据库系列。但MySQL远没有达到一家独大的程度。因为众多开源数据库的变种层出不穷,各个云厂商又在此基础上做了优化和封装,如果单纯统计Oracle MySQL社区版本的市场使用量,则会发现其很小。这也正是开源数据库能够流行的原因。阿里云作为国内领先的云计算供应商,2020年阿里云数据库首次进入Gartner魔力象限:领导者(Leader)象限。

云数据库在关系型数据库领域主要有RDS系列,支持MySQL、MariaDB、SQL Server、PostgreSQL和PPAS多种引擎。当然,还有一些新型数据库,其本质也是关系型数据库,将在第2章中展开介绍。