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. DB2对年份的处理Year()

    public DataSet GetCustomerAllocListByQC(CustomerAllocQueryDataContract aQC) { StringBuilder sql = ne ...

  2. CamShift算法

    拟采用的方法,CamShift算法,即"Continuously Apative Mean-Shift"算法,是一种运动跟踪算法.它主要通过视频图像中运动物体的颜色信息来达到跟踪的 ...

  3. sqlmap 使用举例

    详细的请见: http://drops.wooyun.org/tips/143 http://wenku.baidu.com/link?url=45xj6EVVWQjV8upwrBAMIqPP3xMc ...

  4. http://blog.csdn.net/xiamizy/article/details/40781939

    http://blog.csdn.net/xiamizy/article/details/40781939

  5. 281. Zigzag Iterator

    题目: Given two 1d vectors, implement an iterator to return their elements alternately. For example, g ...

  6. Java:异常的处理

    异常分两种大的异常类型,运行时异常和受检查异常. 用户既可以使用系统的异常类来处理异常信息,也可以创建系统的异常类的子类来自定义异常,这种方式比较灵活,虚拟机可以报出自己设置的异常信息,清楚明白. 1 ...

  7. Navicat

    create table <表名>(    <列名> <数据类型及长度> [not null],    <列名> <数据类型及长度>,   ...

  8. C# 将字符串转化成流,将流转换成字符串

    using System; using System.IO; using System.Text; namespace CSharpConvertString2Stream { class Progr ...

  9. linux中/etc/init.d [转]

    一.关于/etc/init.d 如果你使用过linux系统,那么你一定听说过init.d目录.这个目录到底是干嘛的呢?它归根结底只做了一件事情,但这件事情非同小可,是为整个系统做的,因此它非常重要.i ...

  10. Java —— 时区(夏令时)问题

    有没有遇到过这样的情况:数据库里的是时间是“1991-4-14”,但是Java取出来后就成了“1991-4-13”. 解决方法一: 先把时区设成GMT,把 根据夏时制自动调节时钟 的选项去掉. 再把时 ...