首页 理论教育分布式数据库技术DBaaS

分布式数据库技术DBaaS

【摘要】:DBaaS可以提供弹性和资源池。使用DBaaS,用户可以在建立和维护基础体系结构时节约成本,减少延迟。DBaaS对支持的业务类别无限制要求,业务大小也无限制。1)安全的数据库环境DBaaS有助于保护数据库,防止数据被盗,保证可信性和完整性,阻止非授权或非故意的活动、黑客攻击,或者滥用非授权用户。目前绝大多数DBaaS都能自动调节参数,以保证提供良好的性能。让他们就地实现全球范围内的协同工作是对DBaaS的要求。

除了前面介绍的三种云服务模型IaaS、PaaS和SaaS外,还出现了许多新的“as-a-service”词汇,因此被称为XaaS。这里,X是指任何东西。

DBaaS(Database as a Service),数据库即服务,就像其名称一样,它提供数据库服务,如数据库服务器,数据库和模式作为服务。

数据库即服务(DBaaS)既可在公有云上实现,也可在私有云上实现。

在公有云上,DBaaS可以作为IaaS(基础设施即服务)提供,也可以作为PaaS(平台即服务)提供。Oracle提供三种数据库相关的云服务。

●模式即服务(Schema as a Service)。

●数据库即服务(Database as a Service)。

●Oracle数据库云Exadata服务(Oracle Database Cloud Exadata Service)。

1.模式即服务

用户可以获得一个模式[6],大小为5 GB、20 GB或50 GB。该模式是加密的,是在Oracle 11g上创建的数据库。该模式完全由Oracle管理。DBA无需再做任何管理工作。用户可以通过APEX[7]、RESTful Web Services或SQL Developer存取这个模式。

2.数据库即服务

数据库即服务包括两个级别的服务。

●Oracle数据库云服务:虚拟映像。用户可以获得预装在Oracle云虚拟机里的软件。用户可以很简单地创建数据库。数据库的维护由用户自己负责。

●Oracle数据库云服务。用户可以获取Oracle数据库及相关软件。数据库按用户提供的规格创建,用户也可以获得工具,如备份、恢复、监视等。

那么,究竟什么是数据库即服务?

DBaaS是一种服务,是一种以有效的方式提供强大数据库的按需平台,满足组织的所有需要。

DBaaS可以让DBA作为服务向客户提供数据库的功能。这类服务省略了在预定硬件和软件栈上部署、管理和维护数据库所要达到的要求。允许业务聚焦在应用上,无需担心数据库管理的复杂性。

DBaaS简化了用户开发和测试阶段的开发和测试环境的部署。

DBaaS可以提供弹性和资源池。使用DBaaS,用户可以在建立和维护基础体系结构时节约成本,减少延迟。DBaaS的弹性使得用户无需事先在容量和资源上进行投入。DBaaS可以让用户在升级资源和容量时很方便。DBaaS对支持的业务类别无限制要求,业务大小也无限制。DBaaS可以让用户只关注其应用,无需担心数据库管理的复杂性。

机构对这种平台的要求是什么呢?简单来说,主要包括以下几个方面。

●安全的数据库环境(secured database environment)。

●快速的高性能数据库(fast-performing database)。

●数据库的可靠性、冗余度和持续性。

●地理分布和独立(geographically distributed and independent)。

●无单点故障(no single point of failures)。

●与现存系统集成

●有助于分布式环境下的工作组更有效地工作与协作。

1)安全的数据库环境

DBaaS有助于保护数据库,防止数据被盗,保证可信性和完整性,阻止非授权或非故意的活动、黑客攻击,或者滥用非授权用户。

DBaaS帮助管理员创建用户,给予其某种(些)限制,赋予某种(些)角色。维护安全数据库环境所采取的措施是加密。DBaaS帮助使用各种解决方案,如SSL(Secure Socket Layer)通信和加密存储。

2)快速的高性能数据库

性能是客户十分关心的因素。目前绝大多数DBaaS都能自动调节参数,以保证提供良好的性能。

3)数据库的可靠性、冗余度和持续性

数据库的可靠性是用户关注的一个重要需求。例如,PostgreSQL或其他数据库软件解决方案是部署在可靠的硬件上,因为像RAM的故障或磁盘的缺陷等硬件问题都十分危险,需要保证硬件的可靠性。在云上部署,提供DBaaS,可以免除用户对硬件的监管。DBaaS供应商会提供有效的方法在云上备份数据库、创建副本和备份事务日志。

4)地理分布和独立

应用往往要求将数据切片(slicing)或切块(dicing),将之存放在多个机器上,可以自由扩展。这样,用户可能分布在全球各地,用户可以从不同地方的存取数据。所以基础环境可能分布在不同的地区。DBaaS可以让用户方便地跨区域部署自己的数据库。

5)无单点故障

DBaaS的基础体系结构、网络拓扑等可以让数据库应用不存在单点故障。

6)与现存系统集成

是否能让现存系统与云上系统集成是用户十分关心的主题。云服务供应商提供了相应的支持,让DBaaS与企业/组织现存系统集成起来。

7)有助于分布式环境下的工作组更有效地工作与协作

开发者、管理员、业务人员和测试人员很可能分布在全球不同的地点。让他们就地实现全球范围内的协同工作是对DBaaS的要求。(www.chuimin.cn)

当然,使用DBaaS时还会经常遇到其他问题,需要供应商进行说明,主要包括以下几方面。

●服务安全吗?

●DBaaS供应商能提供哪个级别的可用性

●数据库可扩展吗?

3.Oracle数据库云Exadata服务

在这类服务里,用户的数据库存放在Oracle云的Exadata一体机里。这种服务有以下三种配置。

●Quarter RAC[8]:2个计算节点和3个存储单元(storage cells)。

●Half rac:4个计算机点和6个存储单元。

●Full rac:8个计算节点和12个存储单元。

4.启动DBaaS

如何启动DBaaS呢?主要包含以下几步。

1)服务开通

大多数服务供应商提供的DBaaS有简单的部署机制,可以让DBA和开发者这样的用户使用。

服务开通一般会执行以下操作。

●分配一个服务器,按需求指定CPU、内存和硬盘。

●安装操作系统。

●按需添加硬盘。

●给硬盘分区。

●安装数据库软件和其他所需的软件。

●配置数据库实例。

●基于访问控制管理(managing host based access control)。

●管理硬盘加密(managing encryption of hard disks)。

●在多个硬盘上分布数据目录和事务日志(distributing the data directory and the transaction logs to multiple hard disks)。

●按合适的授权模式创建用户。

第一阶段,DBaaS允许用户选择合适的CPU、内存和硬盘创建数据库服务。此后,可以按需升级或降级。

2)管理

从用户角度看,不需要掌握复杂的知识就能实现DBaaS。云服务供应商不仅提供API用于部署数据库环境,而且让用户能够方便地监视、警戒,仅需要点击鼠标。云服务供应商会提供可视仪表板,向用户展示性能,以便诊断。

DBA的日常活动是复制、优化和刷新数据库,进行功能和性能测试,借助鼠标点击就能实现。有些维护操作可以自动实现。DBaaS能提供很好的管理功能。

3)监视

数据库环境使用的监视工具要求DBA对此付出很大努力。管理中会构建监控服务器,用于对所有的数据库环境配置监控参数,以及管理监控服务器。如果监控服务器宕机,就无法持续监控数据库环境。DBaaS中无需DBA去构建监控服务器,用户会获得DBaaS供应商提供的监控和警戒机制。

4)高性能(high availability)

DBaaS可以帮助用户获得高性能,可以避免由于灾难而导致的宕机和损失。

5)可伸缩性(scalability)

可伸缩性也是用户极其关注的,因用户无法预先确定数据库的规模。DBaaS可以很好地提供灵活的可伸缩性。

6)安全(security)

在安全性上,DBaaS也采取了很好的措施,云服务供应商允许用于配置防火墙策略、数据的传输加密与存储加密。

那么云计算与本地部署计算哪个好呢?

(1)云计算。可以使用DBaaS和IaaS两种方式在云上部署数据库。使用DBaaS,对云服务供应商而言,用户无需再选择操作系统。相反,使用IaaS时,用户要订购某个操作系统,安装和配置操作系统及相关工具。在云上部署数据库,用户无需花费人力管理硬件,硬件出现故障时进行替换也无需额外开销。绝大多数软件升级,尤其是DBaaS的升级,完全由云服务供应商管理,监控也由云服务供应商提供。

(2)本地部署计算。此时,用户可以自主安装任何软件,软件许可开销由用户自己管理。用户需要自己管理硬件,需要额外的人力。为了实现灾难时的恢复能力,用户必须在异地数据中心构建相同的备份硬件。用户需要自己管理软件更新,完全控制自己的数据,要估算出灾难时解决问题所需的时间,自己管理数据备份和恢复,自己监控攻击,而且会有其他开销。