编辑推荐:

本文是主要介绍Oracle

数据库服务的四种部署模式的优势、劣势以及部署定位,希望对您的学习有所帮助。

本文来自嘉为科技,由火龙果软件Alice编辑、推荐。

由于云计算技术已向专业领域发展,除了使用虚拟软件化Hypervisor技术实现基础设施云化外,基于容器的虚拟化技术在操作系统、数据库平台云化等领域也得到了很大的发展与应用。数据库即服务

(DBaaS)也在这样的技术背景下应运而生。

数据库即服务Database As Services

数据库即服务 (DBaaS) 是一种数据库平台建设架构和数据管理运营方法,在云计算的框架下,能够将数据库功能作为服务提供给一个或多个应用使用。所以数据库即服务必须支持以下功能:

1.不同应用租户共享数据库平台的计算、存储、网络资源;并且支持这些资源的灵活调配及资源隔离。

2.以按需、自助式方式供应数据库服务,包括数据实例分配、存储空间分配等能力的供应和管理。

3.基于数据库云平台,提供不同等级的服务保障。结合已有的定级标准,对不同的IT系统实施差异化的等级服务保障体系。

4.以细粒度方式计量不同数据库服务租户的使用情况,可为各独立数据库租户提供计量、计费功能。

在技术实现上可以有两种技术选择实现数据库即服务:

1.基于IaaS层提供的基础设施,在不同的虚拟机中部署相关数据库平台软件服务。

2.直接通过数据库软件平台的容器技术来实现数据库软件、硬件(服务器、存储)的统一管理、部署、资源分配和回收。

目前,第一种方式在实际应用中会存在管理的复杂性、兼容性问题,甚至还可能存在严重的性能瓶颈和整体运行风险的问题。例如,某业务系统在基于X86服务器上通过VM虚拟化技术来实现IaaS层资源池,再部署Oracle数据库和业务应用,通过实际测试发现,

性能损耗超过40%以上;而且还存在Oracle RAC数据库没有在VMWare平台得到厂商官方支持的问题,一旦遇到系统问题,诊断、问题解决都存在很大的潜在运行风险。

所以,通过数据库平台自身容器技术形成数据库PaaS层服务,是目前核心数据库系统、特别是Oracle数据库用户进行数据库云建设的主要技术选择。通过Oracle数据库软件平台结合相关的硬件基础设施,形成数据库共享资源池,然后按照各个应用需求在数据库资源池中申请硬件资源、获得数据库服务,而且支持不断部署不同的业务应用在云平台中,实现系统的集中化整合。

这样可以有效的节省计算和存储资源、机房空间、耗电和配套、人力维护,提高系统的可靠性、扩展能力、计算能力,避免出现业务要求和的系统支撑能力不匹配问题。

Oracle 数据库服务的四种部署模式

kuboard部署MySQL数据库 数据库部署方式_kuboard部署MySQL数据库

▲ Oracle数据库服务的四种部署架构

1. 基于虚拟机部署数据库(IaaS模式)

第一种方式是在虚拟机上部署Oracle数据库,这种模式共享的是物理服务器,在物理服务器上增加了hypervisor虚拟化层,虚拟化层之上的每个虚拟机都会运行单独的操作系统,之上再部署独立的数据库实例。

kuboard部署MySQL数据库 数据库部署方式_查看oracle部署模式_02

优势:

资源隔离性好,操作系统级别的隔离。

服务器虚拟化技术较成熟。

劣势:

只共享物理服务器,资源共享度不高,且服务器虚拟化的CPU和IO损耗很大。

IaaS层服务器虚拟化只能实现计算资源“大分小” 。

只支持数据库单实例运行,性能扩展能力差,高可用切换慢。

虚拟化软件需要共享单台存储盘阵,导致I/O性能不佳。

部署定位:

这种方式适合提供对可用性、性能要求不高的小型数据库服务 。

2. 基于共享服务器集群部署多个数据库实例(PaaS模式)

在一组共享的物理服务器集群上部署Oracle数据库,这样的一组物理服务器需要采用同构的服务器和同版本的操作系统,部署运行Oracle的Grid

Infrastructure集群软件,在此集群之上可以部署一个或多个数据库实例(可以是单节点/实例的数据库,也可以是多节点RAC数据库),这种模式共享的是物理服务器和操作系统,但每个应用还是有独立的数据库实例,从而有各自独立的SGA内存管理、后台进程等等。

kuboard部署MySQL数据库 数据库部署方式_数据库_03

优势:

资源共享度、整合密度高于虚拟机模式。

每个应用系统有自己独立的数据库实例,很好的资源隔离性。

良好的性能,支持服务器计算能力和存储容量及IO能力的横向扩展。

劣势:

共享了物理服务器和操作系统,但每个数据库实例仍独享自己的内存、后台进程,当整合数据库数量较多时,这些重复的基础功能造成CPU和内存重复开销,资源共享度、整合密度仍有待改善。

部署定位:

这种方式适合提供整合数据库数量不是特别多、或是规模较大的数据库服务。

3. 共享一个数据库实例部署多个Schema(PaaS模式)

在共享的一个数据库实例内,通过开通多个schema及其关联对象提供数据库服务,数据库实例和其后的操作系统、服务器硬件平台均为共享的。

kuboard部署MySQL数据库 数据库部署方式_资源共享_04

优势:

资源共享比例高,CPU内存使用更高效,性价比好。

数据库服务开通速度快。

良好的性能,支持服务器计算能力和存储容量及IO能力的横向扩展。

非常适合不同用户间需要大量数据共享的场景。

劣势:

隔离程度低,只能做到数据库用户Schema级别隔离,访问不同Schema的对象只需要授权就可以。

每个数据库用户不能独立进行数据库管理,只能一起进行数据库备份和恢复。

部署定位:

这种方式适合对数据库隔离性要求不高、或是用户间需要大量数据共享的场景。

4. 使用DB 12C多租户功能,通过可插拔数据库提供数据库服务(PaaS模式,12C新特性)

Oracle 数据库12c版本,新增多租户功能,使用这个特性,可以将Oracle数据库按照一个统一的容器数据库CDB

+ 多个可插拔数据库PDB的方式进行部署。

容器数据库层统一包含了SGA内存管理、后台进程、数据库启动参数文件/redo log/Undo 等公用功能(之前的独立数据库实例,每个数据库有独立的SGA区、后台进程,现在不再需要了),可插拔数据库PDB则管理自己的一组表空间,其中包括

SYSTEM 和 SYSAUX、以及用户业务表空间。

kuboard部署MySQL数据库 数据库部署方式_数据库_05

采用Oracle 数据库12c部署数据库云,用户的数据库可以采用可插拔数据库PDB进行供应,这些PDB部署在统一的容器数据库CDB之上,共享一个数据库实例,也共享了后台的物理服务器和操作系统,资源共享程度很高。

同时用户的PDB之间还保持了很好的隔离性,从用户的使用来看,PDB和传统独立实例的数据库是没有区别的,应用无需改造。相对于独立的数据库实例,12c的多租户模式架构的资源共享程度很高,节约了重复的数据库系统开销。

优势:

资源共享比例最高,CPU和内存使用更高效,整合密度和投资性价比最佳。

数据库服务开通速度最快。

良好的性能,支持服务器计算能力和存储容量及IO能力的横向扩展。

资源隔离性好(用户使用感受和独立实例数据库一致)。

额外工作:

数据库升级/迁移到12c版本,原有应用功能需要进行测试验证。

部署定位:

适用于灵活提供各种规模、可用性、安全等级的数据库服务。

部署模式推荐

在条件允许的情况下,将数据库升级到Oracle 12C以上或者直接部署Oracle 12C以上版本,采用DB

12C部署数据库,DB 12C的多租户特性可以很好的和RAC集群进行结合,12C的容器数据库CDB能够部署在一台或多台物理服务器节点构成的集群上,可以灵活控制每个PDB的服务运行在集群一个或多个节点上。

同时集群伸缩性(可扩展性)也非常好,当整个集群的负荷较高时,可以在线为集群增加物理服务器节点,并方便的调整各个PDB服务的运行节点,进行负载均衡,降低整个集群的负荷。

数据库云的所有PDB的数据可以均匀打散分布在数据库存储资源池的所有存储设备上,并且支持跨存储设备的镜像。当添加/删除新存储设备时、或是硬件出故障时(单块磁盘损坏/单台存储设备损坏),可以进行在线数据自动重分布,使负载均衡和跨存储设备的数据镜像保护仍然得以保持,重分布的过程中数据可正常读写访问,对上层的数据库和应用透明。

通过添加新存储设备、在线数据自动重分布,可以使数据库存储集群整体容量和IO能力线性的横向扩展。