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)

- 最底下為連接多個機櫃的spine switch交換機
- 上下為對稱的存儲服務器
- 中間兩個對稱的為數據庫服務器
- 機櫃正中間為一台以太網交換機(思科),兩台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的硬件本身沒有什么神奇的地方,大多數的性能優勢來自於整合的組件以及在存儲層上實現的軟件。