Oracle Exadata 技术浅析
- 格式:docx
- 大小:337.69 KB
- 文档页数:4
甲骨文数据库一体机Exadata X3详解相关专题:创业新闻时间:2013-01-03 09:18Exadata是甲骨文在业界最早推出的集成系统,并在甲骨文各大一体机中拥有最大的销售额和最广的大型用户群。
Larry Ellison在OOW 2012上宣布的第四代数据库一体机产品Exadata X3,不仅在硬件、软件等多个层面都进行了大幅升级,还首次针对推出了1/8配置的产品,以满足中型用户的需求。
一体机/集成系统通过标准化的架构集成了服务器、存储、网络、软件等配置减化了数据中心基础设施部署和运维管理的复杂性,成为企业级用户在云计算和大数据时代最受关注的产品之一。
IDC在其对亚太区ICT市场的十大预测中指出,到 2015 年,65%部署在私有云环境中的服务器将成为一体机用户通过一体机架构可通过预配置和优化处理多重工作负载、减少部署时间并增加不动产的投资回报。
目前一体机市场已经形成了供应商百花齐放的局面,甲骨文、IBM、Teradata、EMC以及与微软合作的惠普、戴尔都推出了一体机产品。
而甲骨文是一体机市场的最早倡导者,该公司已经推出了Exadata数据库一体机、Exalogic中间件一体机、Exalytics商务智能一体机、大数据一体机、SuperCluster一体机、ODA (数据库机)等六个系列的集成系统,其中Exadata是该公司最早推出的一体机,并在甲骨文各大集成系统中拥有最大的销售额和最广的大型用户群。
Larry Ellison在2012甲骨文全球大会(OOW2012)上宣布推出的Exadata X3是该公司Exadata最新的第四代产品,不仅在硬件、软件等多个层面都进行了大幅升级,还首次针对推出了1/8配置的产品,便于在中型用户得到更好的市场认可。
图注:甲骨文全球大会(OOW2012)上展出的Exadata X3(蒋湘辉摄)甲骨文自从在收购Sun以来,硬件系统的收入一直呈不断下滑的态势,但甲骨文的Exadata等一体机产品却获得了大幅增长,并提升了甲骨文的整体利润率。
Oracle Exadata Flash Cache是Oracle Exadata Database Machine上的一项功能,旨在提高数据库性能和响应速度。
它利用了固态硬盘(SSD)的高速读写性能,将其用作数据库缓存,以加快查询和数据访问速度。
具体来说,Oracle Exadata Flash Cache的工作原理如下:
1. 在Exadata Database Machine上,SSD硬盘被用作二级缓存,用于存储经常访问的数据和元数据。
2. 当数据库执行查询时,Exadata会首先检查L1和L2缓存是否包含所需的数据。
如果缓存中存在数据,则查询可以直接从缓存中读取,而不需要访问底层磁盘。
3. 如果缓存中没有所需的数据,则Exadata会使用闪存缓存来查找数据。
闪存缓存是一种快速的非易失性存储器,可以提供比传统磁盘更快的读写速度。
4. 当查询完成时,数据会被写入闪存缓存中,以便下一次查询时可以更快地访问。
总的来说,Oracle Exadata Flash Cache利用了固态硬盘的高速读写性能,将其用作二级缓存,以提高数据库性能和响应速度。
它是Oracle Exadata Database Machine的一个重要功能,可以帮助企业更好地管理和优化数据库性能。
oracle exadata flash 原理Oracle Exadata是一种专为Oracle 数据库设计的高性能硬件和软件解决方案,而 Exadata Flash 是其一部分,指的是采用固态闪存技术作为存储介质的一种存储层面的优化。
Exadata Flash 带来了更高的 I/O 性能和更低的存储延迟,提高了数据库系统的整体性能。
以下是 Oracle Exadata Flash 的一些基本原理:1. 智能存储技术: Exadata Flash 采用智能存储技术,其中存储服务器(Storage Servers)上的闪存设备直接与数据库服务器(Database Servers)通信。
这使得存储层能够更加智能地处理数据库请求,降低数据库服务器和存储服务器之间的数据传输负担。
2. 存储跨节点协调: Exadata 采用了存储服务器协调技术,允许存储服务器之间协同工作,共同处理查询和数据操作。
这种协调有助于减少数据传输和提高并行性,尤其是在多节点配置的 Exadata 系统中。
3. 智能存储索引和过滤:Exadata Flash 使用智能存储索引,可以在存储层面进行数据过滤和查询优化,减少了数据库服务器端的数据传输。
这有助于减轻数据库服务器的工作负担,提高查询性能。
4. 闪存写优化: Exadata Flash 采用了优化的写入算法,减少了写入操作对闪存的影响,提高了写入性能。
这对于OLTP(联机事务处理)等需要高度写入性能的工作负载尤其重要。
5. 存储压缩和列式存储: Exadata 采用了存储压缩和列式存储技术,可以显著减小存储占用空间,提高数据传输效率。
这对于处理大量数据的数据仓库工作负载非常有益。
总体而言,Oracle Exadata Flash 利用先进的存储技术,通过智能存储、存储协调、存储索引、优化的写入算法等手段,提高了Oracle 数据库系统在存储层面的性能和效率。
这些优化有助于满足不同工作负载的需求,包括 OLTP、数据仓库等。
一体化方案解决大数据处理的两个难题在大数据时代,客户需要一体化的解决方案吗?Oracle认为,用户需要软硬件集成的一体化解决方案,而Oracle Exadata数据库云服务器就是最好的例证。
Oracle大中华区产品战略部高级总监刘松介绍说:“Oracle Exadata数据库云服务器推出的时间虽然不长,但是其销售收入成倍增长。
它已经成为Oracle历史上销售收入增长最快的产品。
”Oracle首席执行官拉里?埃里森曾经表示:“通过提供构成体系的所有组件,从硅元素到应用程序,我们能为客户提供高速、容错、高安全性的系统。
这些系统在安全性、性能、成本效益和易用性方面远远高于以前那些由简单的组件构成的系统。
”在收购Sun公司之后,Oracle在硬件与软件集成方面变得更有底气。
对传统大型数据库来说,其性能瓶颈主要来自存储系统,比如存储阵列的性能、带宽以及磁盘本身的性能,还有SAN光纤通道带宽等方面的限制。
Oracle Exadata数据库云服务器能让硬件与软件以一种优化的方式协调一致地运行,不仅可以提升整体系统的性能,而且能降低系统的整体拥有成本和复杂度。
Oracle Exadata数据库云服务器由数据库软件、服务器、存储组成,同时融合Oracle数据库11g第二版、Oracle Exadata存储软件、Oracle Real Application Clusters和Sun FlashFire技术,并采用40Gb InfiniBand内部连接,因此更适合数据仓库和高速联机交易处理等应用。
大数据对数据存储和智能分析都提出了更高的要求。
Oracle Exadata数据库云服务器将存储的软硬件与数据仓库软件有机地结合在一起,通过预调试,优化了系统的整体性能,方便用户部署和使用。
刘松认为,Oracle Exadata数据库云服务器的出现也简化了数据中心架构。
现在,客户只要使用一台Oracle Exadata数据库云服务器加一台Exalogic Elastic Cloud(Oracle即将推出的中间件云服务器),就可以取代原来数量众多的应用服务器和数据库服务器。
EXADATA基础知识培训前言EXADATA是一款由Oracle公司开发的高性能数据库解决方案,其强大的处理能力和可靠性使其成为现代企业在数据管理方面的首选。
本次培训将介绍EXADATA的基础知识,包括其特点、架构以及使用方法,帮助您更好地理解和应用EXADATA。
第一章:EXADATA简介1.1 EXADATA的定义EXADATA是一种集成了硬件和软件的一体化数据库解决方案。
它将强大的存储和计算能力集中在一起,并通过高速网络进行连接,实现了高性能和可扩展性。
1.2 EXADATA的特点EXADATA具备以下几个显著特点:1)高性能:EXADATA通过优化的硬件设计和数据存储方式,实现了卓越的查询和分析性能,能够处理大规模的数据请求。
2)可靠性:EXADATA采用了多层次的数据备份和容错机制,确保数据的安全性和可恢复性。
它具备故障转移和自动恢复功能,能够最大程度地减少系统故障对业务的影响。
3)可扩展性:EXADATA支持弹性扩展,可以根据业务需求灵活地增加存储和计算资源,同时保持高性能和可用性。
1.3 EXADATA的应用场景EXADATA广泛应用于大型企业和数据库密集型应用中,特别适用于以下场景:1)大数据分析:由于其卓越的性能和可扩展性,EXADATA能够支持大数据分析任务,提供快速准确的查询结果。
2)在线事务处理(OLTP):EXADATA具备高并发处理能力,能够支持高速在线事务处理系统的运行,提供稳定可靠的服务。
3)云计算环境:EXADATA可以作为云计算平台的一部分,为不同业务提供高性能的数据存储和处理能力。
第二章:EXADATA架构2.1 EXADATA硬件架构EXADATA的硬件架构由数据库服务器和存储服务器组成。
数据库服务器负责运行数据库实例和处理查询请求,而存储服务器则负责存储数据并提供快速的读写操作。
2.2 EXADATA软件架构EXADATA的软件架构包括数据库软件、操作系统和EXADATA存储软件。
Oracle Exadata技术浅析
作者: Jacky | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明
网址: /database/oracle_exadata.html
自从 Oracle 和 HP 推出Exadata之后,我就很关注这个产品,之前也写了一篇Oracle Database Machine介绍它。
去年,Oracle和SUN合并后,推出了Oracle Exadata V2,相比较上一代产品有几个变化:第一,使用 SUN 的
硬件;第二,宣称支持 OLTP 应用;第三,Oracle 11g R2 提供了更多的新特性。
Exadata Smart Flash Cache
Exadata V2整体架构并没有太多改变,换用了 SUN 的硬件,除了采用 Intel 最新的 Nehalem CPU 以外,每台Storage Cell 更是配置了 384GB 的 Flash,这也是为什么 V2 可以支持 OLTP 应用的关键。
Flash Cache 完全是自动管理,Oracle 会根据数据的访问情况,决定哪些数据放在 Flash Cache 中。
所有的数据
都是先被写到普通磁盘上,再根据访问情况读入 Flash Cache 的,所以如果 Flash Card 发生故障,数据不会丢失。
当然,Oracle提供了方式,可以让用户手动将表或者索引 Pin 在 Flash Cache 中。
在自动管理的方式之外,Oracle还允许用户人工创建flash disks,和普通磁盘一样,这些 Flash Disks 通过 ASM
输出给数据库使用,用户可以把一些访问非常频繁的数据文件放在上面。
这些 Flash Disks 不仅仅是 Cache 了,
所以 ASM 会在Cell 和 Cell 之间做镜像。
如果某块卡发生故障,那么整个 Storage Cell 上的 Flash Disks 会offline,保证数据不会丢失。
Smart Scan
Smart Scan是Exadata最重要的一个功能,它的作用就是把 SQL 放在每个 Cell 上去运行,然后每个 Cell 只返回符合条件的数据给数据库,这样就极大的降低了数据库服务器的负载和网络流量,并充分利用了 Cell 的计算资源和 IO 资源。
传统方式:所有的数据都需要返回给数据库服务器,网络带宽要求高,所有的计算在数据库服务器上完成。
Smart scan:只返回符合条件的数据,减少网络带宽,并充分利用了 Cell 上的计算和 IO 资源。
这里有一点要注意,在使用 Smart Scan 时,每个 Cell 返回给 DB Server 的是结果集,而不再是传统的 Block,DB Server 完成结果集的处理,并返回给客户端。
Smart Scan 如何处理 Join ?
这是我一直想要搞清楚的问题。
事实上, Smart Scan 只能处理 Join filtering,而真正 Join 的工作必须在 DB Server上完成,而且Smart Scan 仅适合于处理 DSS 环境的复杂 Join,对于 OLTP 类型的简单 Join,Smart Scan 并不能发挥其优势。
设想下面的查询:
selecte.ename,d.dname from emp e, dept d where and e.ename='Jacky' and e.deptno=d.deptno;
假设采用 nested loops join,Smart Scan 只能完成e.ename='Jacky' 这个条件的过滤,然后将符合条件的emp表的数据返回到 DB server,然后由 DB Server 完成 join 的工作,逐条查询dept表 (e.deptno=d.deptno) 的数据。
所以 Smart Scan 并不适合nested loop join(我认为 Smart Scan 只有在适合的条件下才会启用),只有 DSS 环境的大数据量复杂join才会发挥出优势。
而且 Smart Scan 只能完成filtering的工作,而不能真正完成 Join 的
工作,这个与Greenplum数据库是不同的(有兴趣可以看我的文章,Greenplum技术浅析)。
设想下面的查询(emp和dept都是大表):
selecte.ename,d.dname from emp e, dept d where e.deptno=d.deptno;
假设采用 Hash Join ,由于没有任何过滤条件, Smart Scan 只能把两个表的数据全部返回到 DB Server 上进行join操作,不过 Smart Scan 也不是一点用都没有,至少还可以进行 column 的过滤,只返回需要的字段就可以了。
Oracle 的文档中,曾经提到对于一个大表和小表join时, Smart Scan 会采用bloom filter来快速定位(可以看
我以前的文章,有趣的 bloom filter )。
方法是把小表build成为bloom filter,然后在每个storage cell上对大表
做scan,利用bloom filter快速定位符合条件的结果,并返回给 DB Server 作 join。
Storage Index
存储索引,顾名思义是在存储级别建立的索引,简单的说就是为表中的每一列数据建立一个索引,每个index
entry记录一段数据区间的最大值,最小值以及它们的物理位置,文档上说1MB数据对应一条index entry,见下图:
如果我们查询B<2,或者B>8的数据,根据存储索引,我们就可以跳过这些不在min和max之间的数据块,极
大的提高了扫描的速度,这就是存储索引的意义。
Hybrid Columnar Compress
首先我们要搞清楚,什么是行压缩,什么叫列压缩。
我们熟悉的数据库,如Oracle、MySQL等都是基于行的数
据库,就是行的不同字段物理上存放在一起,还有一种是基于列的数据库,就是每个字段的不同行物理上存放在
一起。
他们的优缺点同样突出:
基于行的数据库,访问一行非常方便,但是由于同一列的数据是分开存放的,如果要针对某一列进行查询时,几乎要扫描整个表才能得到结果。
基于行数据库的压缩,称为行压缩。
基于列的数据库,因为同一列的数据物理上放在一起,所以访问一列非常方便,也就是说如果针对某一列进行查询时,不需要扫描整个表,只需要扫描这一列的数据就可以了,但是访问一行的全部字段非常不方便(又是废话)。
基于列数据库的压缩,称为列压缩。
Oracle 通常说的 compress 功能(包括11g R2的Advanced compress),都是行压缩,因为Oracle是个基于行的数据库。
大概的方法就是在block头部存放一个symbol table,然后将相同的值放在那里,每行上相同的数据指向symbol table,以此来达到压缩的目的。
行压缩的效果通常不好,因为我们知道行与行之间,其实相同的数据并不多。
但是列压缩则不同,因为相同列的数据类型相同,很容易达到很好的压缩效果。
行压缩和列压缩都有其优缺点,而Oracle的混合列压缩技术,实际上是融合了列压缩的高压缩比和行数据库的访问特性,将两者的优点结合起来。
Oracle提出了 CU 的概念(compress unit),在一个 CU 内,是一个基于列的存储方式,采用列压缩,但是一个 CU 内保存了行的所有字段信息,所以在CU与CU之间,Oracle还是一个基于行的数据库,访问某一行,总是只在一个 CU 内。
每个CU由一些连续的block组成,CU header中记录了每一行的各个列在CU中的分布情况,在混合列压缩模式下,一行通常是跨多个block的。
所以说混合列压缩,结合了列压缩和行访问的特点,即可以提供非常高的压缩率,又很好的保证了基于行类型的访问。
Exadata的另一个重要功能是 IO resource management,如果我们在一个Exadata上部署了很多个数据库,可以用它来管理 IO 资源,这里就不作阐述了。
目前,我还没有了解到在国内有Exadata的应用,而且资料也是比较少的。
希望有机会可以真实的测试一下它的性能,我不怀疑他在 DSS 环境下的表现,但是对于 OLTP 类型的应用,是否真的象 Oracle 说的那么强劲,还有待于验证。