Exadata一开始是以一个存储系统形式诞生的,叫做SAGE(Storage Appliance for Grid Environ ments,网格环境存储设备)
 
Exadata原本设计用来解决超大型数据库所存在的普遍性能瓶颈(也就是无法在可接受的时间范围内从磁盘存储系统向数据库服务器传输足够大的数据)

Oracle Exadata解决超大型数据库性能问题的两个主要方式:
  • 让传输管道更大(Infin iband)
  • 减少需要传输的数据量(Smart Scan)

在了解Exadata的其它方面之前,最应该先了解的是存储节点卸载(offload)处理,所有其它的技术都只是为了支持存储节点的卸载处理。
 
存储节点卸载处理(Cell Offload Processing):该工作由存储服务器完成,否则就必须在数据库服务器上执行
  • 智能扫描(Smart Scan)
  • 混合列式存储压缩(hybrid columnar compression)
  • 数据文件初始化
  • RMAN offload
智能扫描(Smart Scan):这是存储节点卸载处理中与提高数据仓库/商业智能查询性能最有关的操作
  • 数据文件的初始化
  • 字段投影
  • 存储索引消减
  • HCC解压缩
全表扫描或者全索引快速扫描(Full Scan or Index Fast Scan):为了触发智能扫描,查询优化器选择的必要的访问方式
 

Exadata的组件(整体架构)
 
可以将Exadata划分为两部分,即存储层和数据库层,两层使用infiniband网络来连接
 
infiniband:提供低延时、高宽带的管钱通信链路,也提供链路上的冗余和联结(bonding)
 
数据库层:多个sun服务器组成,运行Oracle 11g R2软件,RAC不是必须的,当通常会配置成一个或者多个RAC集群,使用ASM来管理存储(ASM是必须的)
 
存储层:也是多个sun服务器构成,每个存储服务器12块磁盘,运行Oracle存储服务器软件(cellsrv)
 
数据库层与存储层使用infiniband网络连接,使用iDB协议进行通信
 
iDB协议:iDB用来将请求和请求的元数据(比如查询谓词where)传到存储服务器软件cellsrv中,通过cellsrv软件在存储中进行智能扫描到需要的数据,然后将最终的结果返回给数据库层,所以将大大减少传输到数据库层的数据量
 
当不能进行智能扫描时,cellsrv会返回整个Oracle数据块
 
iDB使用的是RDS协议,这是一种低延时的协议,跳过了内核调用
 
 

Exadata历史
 
V0:SAGE(网格环境存储设备)--HP的硬件和Oracle软件
 
V1:2008年第一款正式Exadata--HP的硬件和Oracle软件---主要为数据仓库平台
 
V2:2009年,4核,Sun的硬件,Oracle的软件(Oracle此时已经尝试收购Sun公司),采用大容量固态存储
 
X2:X2-2:升级到8台双CPU服务器,6核。  X2-8:8*8核CPU,1T内存,定位为大型OLTP系统 
 

Exadata可选的配置(X2-2)
  • 四分之一机柜:2个数据库服务器,3个存储服务器
  • 半机柜:4个数据库服务器,7个存储服务器
  • 全机柜:8个数据库服务器,14个存储服务器
Exadata可选配置(X2-8)
  • 2个大型数据库服务器,14个存储服务器
 
半机柜和全机柜配置可以连接到额外的机柜(多机柜配置模式)最多可连接8个机柜,这种配置需要额外的infiniband交换机,称作‘spine switch’(用来连接额外的机柜)
 

Exadata硬件(机柜为42U)
 
  1. 最底下为连接多个机柜的spine switch交换机
  2. 上下为对称的存储服务器
  3. 中间两个对称的为数据库服务器
  4. 机柜正中间为一台以太网交换机(思科),两台infiniband交换机
其中的以太网交换机是整套设备中唯一能允许客户自行替换的设备

Exadata的操作系统
  • 基于Intel芯片的Sun服务器
  • Oracle Linux 操作系统(可安装solaris操作系统,但一般很少见)
  • Oracle不允许在系统上安装任何其他的软件

Infiniband(Exadata中最重要的硬件组件之一)
 
用来在数据库层与存储层进行数据传输和通信,
可以在RAC环境下作为数据库节点间的互联(interconnect)网络
课用来连接外部系统,如备份系统
 
磁盘(两种可选)
  • 高容量(high-capacity):单盘2TB 7200RPM
  • 高性能(high-performance):单盘600G 15000RPM的SAS盘
Oracle不允许混合这两种磁盘使用
 

11g R2发行版数据库内默认已经有对于Exadata的代码,可以检测到软件是不是再访问Exadata存储,这种感知能力可以让数据库在访问Exadata存储时使用到为Exadata设计的特有优化手段。
 
存储层对于数据库层是是不可见的,需要ASM存储管理。ASM可提供普通冗余(两份copy),高度冗余(三份copy)
 
Exadata存储服务器上没有任何形式的硬件或者软件实现的RAID来保护数据,镜像保护功能完全通过ASM来提供
 
功能运输(function shipping):iDB将正在执行的SQL语句信息传到存储节点上,存储节点将计算过的数据而并非数据块直接返回给请求的进程。iDB可以返回给数据块服务器的数据仅仅限制在那些满足查询的行和列,这种模式仅仅在执行全表扫描的时候才可用
 
 

Exadata软件架构
 
 
上半部分是标准的Oracle 11g架构,显示了缓冲区和共享池的全局区(SGA),也显示了一些主要的进程
 
下半部分显示一台存储服务器的组件,只有一个进程cellsrv来处理与数据库服务器之间的通信,还拥有一些少数的辅助进程和监控环境
 
cellsrv使用init.ora以及alert.log文件,以及ADR(自动诊断信息库)
 
 
 

概念总结
Exadata的硬件本身没有什么神奇的地方,大多数的性能优势来自于整合的组件以及在存储层上实现的软件。
 

Oracle Exadata体系笔记的更多相关文章

  1. Oracle Exadata 学习笔记之核心特性Part1

    近年来,国内众多厂商都有一体机的产品,不过更多都是围绕硬件本身的堆砌和优化,那么这些产品和Oracle一体机最大的区别在哪里呢?最近读了李亚的<Oracle Exadata技术详解>,系统 ...

  2. Oracle 10g体系机构及安全管理《思维导图》

    通过学习Oracle数据库后,我对数据库又有了进一步的了解,Oracle数据库 10g体系机构分为 物理和逻辑存储结构. 下面是我对Oracle数据库做的思维导图和笔记 (全屏查看:<思维导图& ...

  3. EntityFramework CodeFirst SQLServer转Oracle踩坑笔记

    接着在Oracle中使用Entity Framework 6 CodeFirst这篇博文,正在将项目从SQLServer 2012转至Oracle 11g,目前为止遇到的问题在此记录下. SQL Se ...

  4. Oracle RAC学习笔记:基本概念及入门

    Oracle RAC学习笔记:基本概念及入门 2010年04月19日 10:39 来源:书童的博客 作者:书童 编辑:晓熊 [技术开发 技术文章]    oracle 10g real applica ...

  5. Oracle RAC学习笔记01-集群理论

    Oracle RAC学习笔记01-集群理论 1.集群相关理论概述 2.Oracle Clusterware 3.Oracle RAC 原理 写在前面: 最近一直在看张晓明的大话Oracle RAC,真 ...

  6. Oracle RAC学习笔记02-RAC维护工具集

    Oracle RAC学习笔记02-RAC维护工具集 RAC维护工具集 1.节点层 2.网络层 3.集群层 4.应用层 本文实验环境: 10.2.0.5 Clusterware + RAC 11.2.0 ...

  7. [转帖]Oracle 补丁体系(PSR/PSU/CPU) 及 opatch 工具 介绍

    Oracle 补丁体系(PSR/PSU/CPU) 及 opatch 工具 介绍 原文:http://blog.csdn.net/tianlesoftware/article/details/58095 ...

  8. [Oracle]OWI学习笔记--001

    [Oracle]OWI学习笔记--001 在 OWI 的概念里面,最为重要的是 等待事件 和 等待时间. 等待事件发生时,需要通过 P1,P2,P3 查看具体的资源. 可以通过 v$session_w ...

  9. oracle exadata一体机虚拟机

    14年参加partner培训的时候,拿了份oracle exadata一体机虚拟机,有兴趣的可以试试,不过比较大,压缩后10GB,解压后50GB,启动后直接可用,2RAC节点+1存储节点,环境最好内存 ...

随机推荐

  1. poj 3228(二分+最大流)

    题目链接:http://poj.org/problem?id=3228 思路:增设一个超级源点和一个超级汇点,源点与每一个gold相连,容量为gold数量,汇点与仓库相连,容量为仓库的容量,然后就是二 ...

  2. js&html5实现消星星游戏

    前段时间看见园子里有同学用js+jquery实现了消星星游戏,自己也早有这个想法,于是就利用业余时间用js+html5实现了一下消星星游戏. 主要是想实现效果,运用了css3中的动画属性.游戏积分算法 ...

  3. 可任意自定义的 UITableViewCell

    可任意自定义的 UITableViewCell UITableView的强大更多程度上来自于可以任意自定义UITableViewCell单元格.通常,UITableView中的Cell是动态的,在使用 ...

  4. CentOS安装Chrome

    问题 在CentOS安装Chrome会遇到 libstdc++.so.6(GLIBCXX_3.4.15)(64bit) 依赖失败的问题, 即使下载了最新的libstdc++.so.6(包含GLIBCX ...

  5. 阿里巴巴fastJson进行json数据解析

    1.生成JsonObject:将Java bean转换成易于处理和传输的strig的key value形式. 2.解析JsonObject:将收到的字符串转换成JsonObejct这种对象形式,Jso ...

  6. Swift 使用CollectionView 实现图片轮播封装就是这样简单

    前言: 这篇你可以学会自定义视图,创建collectionView,协议的使用,定时器; 自制图片 先上Demo:Github上封装好的下载即用, 好用请Star Thanks首先新建一个继承于UIV ...

  7. QT 读取文件夹下所有文件(超级简单的方法,不需要QDirIterator)

    之前,用标准C++写过读取文件夹.现在用QT重写代码,顺便看了下QT如何实现,还是相当简单的.主要用到QDir,详细文档可见这里 A program that lists all the files ...

  8. Head First HTML5 Programming笔记--chapter1 认识HTML5

    升级到HTML5 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 //EN" "http://www.w3.org/TR/ ...

  9. JAVASCRIPT和JQUERY判断浏览器信息总汇(备忘)

    <script type="text/javascript">        //jquery判断浏览器信息        $(function(){          ...

  10. 存根类STUB

    当我们创建一个指定各种方法集合的接口时,我们可以考虑使用"存根”STUB,“存根”就是用空方法体实现该接口中所有方法的类,这样我们就可以通过继承该“存根”创建一个实现该接口的类,这样一来,该 ...