Exadata DB Server的軟件構(gòu)成:
(1) 標準版數(shù)據(jù)庫
(2) ASM:卷管理和冗余(2元鏡像/3元鏡像),所以說Exadata的存儲服務(wù)器不需要任何存儲保護的功能,僅僅是用內(nèi)置盤提供容量而已。在傳統(tǒng)主機+存儲的方式下,不需要ASM的冗余功能
(3) RAC:DB服務(wù)器節(jié)點的橫向擴展
(4) iDB:把SQL訪問請求發(fā)送給存儲服務(wù)器,返回所要求的數(shù)據(jù)(跟傳統(tǒng)數(shù)據(jù)庫相比的重大區(qū)別:返回的是經(jīng)過篩選的數(shù)據(jù),而不是裸的data blocks)。當然iDB可以選擇則返回裸數(shù)據(jù)塊給SGA
Exadata Storage Server的軟件構(gòu)成:
(1) cell services(cellsrv):多線程IO服務(wù)程序
(2) management server(MS):基于jave的,在cellsrv和cellcli之間的接口程序
(3) restart server(RS):用于監(jiān)控和重啟服務(wù)
(4) OSWatch:歷史數(shù)據(jù)收集vmstat和netstat
Exadata軟件架構(gòu):
上半部分是標準數(shù)據(jù)庫包括SGA、log writer和db writer等。
下半部分是存儲服務(wù)器:實際上只有一個cellsrv進程負責處理和DB服務(wù)器的連接;cellinit.ora是cellsrv的靜態(tài)參數(shù);alert.log存放顯著事件;automatic diagnostic repositpry抓取和保存診斷信息;dsikmon負責監(jiān)控cell和網(wǎng)絡(luò)的“活性”,并且把DBRMS的計劃傳播到所有存儲服務(wù)器上;每個 diakmon有一個從屬的進程,負責ASM和DB之間的通訊。
其次,分析一下Exadata的幾大技術(shù)亮點:
(1) 最最核心的技術(shù)是叫做smart scan,其它重要技術(shù)如HCC和Storage Index都必須依賴它才能運行:其核心目的是把部分工作從DB服務(wù)器offload到存儲服務(wù)器上,利用存儲服務(wù)器的CPU參與SQL的處理。 Offload之所以重要是因為在大容量數(shù)據(jù)庫DW應(yīng)用中傳統(tǒng)的瓶頸就在于大量數(shù)據(jù)的傳輸,而且傳統(tǒng)數(shù)據(jù)庫必須將所有的裸數(shù)據(jù)塊裝載到數(shù)據(jù)庫里面。 Smart scan減少DB服務(wù)器的CPU占用、減少數(shù)據(jù)傳輸量(只傳輸符合條件的數(shù)據(jù))、減少磁盤訪問的時間。所以比如在執(zhí)行單純的全表掃描的時候,smart scan對于訪問速度的提升確實有所幫助。相對而言,減少DB服務(wù)器CPU占用對于性能提升所起到的幫助最小,主要的“收益”來自于DB服務(wù)器和存儲服務(wù)器之間數(shù)據(jù)傳輸量的減少。
a. Column Projection:只返回所需要的“列”,減少數(shù)據(jù)傳輸
b. Predicate Filtering,:只返回所需要的“行”,減少數(shù)據(jù)傳輸
c. Storage Indexes:每一列的數(shù)據(jù)以1MB為分割單位,建立“分區(qū)”索引,每個index entry記錄一段數(shù)據(jù)區(qū)間的最大值、最小值和它們的物理位置。它的作用不是為了返回少量的數(shù)據(jù)給DB服務(wù)器,而是為了縮短存儲服務(wù)器訪問磁盤的時間??梢园阉醋瞿撤N形式上的“分區(qū)”機制。從這里可以看到Exadata的存儲和訪問形式,其本質(zhì)是一個典型的列式數(shù)據(jù)庫。
d. Simple Joins (Bloom Filters):把bloom filter也offload到存儲服務(wù)器上去做,減少DB服務(wù)器CPU占用。“事實上, Smart Scan 只能處理Join filtering,而真正Join的工作必須在DB Server上完成,而且Smart Scan 僅適合于處理 DSS 環(huán)境的復(fù)雜Join,對于 OLTP 類型的簡單Join,Smart Scan 并不能發(fā)揮其優(yōu)勢。~ 馮大輝《深入Oracle數(shù)據(jù)庫機:Oracle Exadata五大技術(shù)亮點淺析》”
e. Function Offloading:部分內(nèi)建的SQL函數(shù)可以offload到存儲服務(wù)器上做,減少DB服務(wù)器CPU占用。
f. Hybrid Columnar Compression (HCC) :假如使用smart scan,解壓縮的工作在存儲服務(wù)器上完成。但是它的作用與smart scan減少傳輸量的初衷相反。所以需要權(quán)衡減少CPU占用和介紹傳輸量之間誰帶來的好處大,比如在cellsrv version 11.2.2.3.1中,在存儲服務(wù)器忙的時候,cell server可以返回未解壓的數(shù)據(jù)給DB服務(wù)器。
g. Encryption/Decryption:跟HCC類似,可以在cell server上運行解密的工作,在ORALCE特定版本和相應(yīng)CPU的配合之下,解密可以得到硬件加速的幫助。
h. Virtual column運算可以offload
i. data model scoring function運算可以offload
j. Non-Smart Scan Offloading:與查詢無關(guān)的offload
i. Smart File Creation:數(shù)據(jù)塊初始化加速,由cell server執(zhí)行數(shù)據(jù)塊的格式化
ii. RMAN Incremental Backups:提高tracking的顆粒度~每一個block,而不是一組blocks
iii. RMAN Restores:在cell server上恢復(fù)
k. 觸發(fā)smart scan的前提(以下三條都滿足):
i. “全段落”掃描:Full Table Scan 或是 Fast Full Index Scan。TABLE ACCESS FULL= TABLE ACCESS STORAGE FULL,INDEX FAST FULL SCAN= INDEX STORAGE FAST FULL SCAN,MAT_VIEW ACCESS STORAGE FULL
ii. Direct Path Reads:并發(fā)讀取數(shù)據(jù)到program global area(PGA)。即使對于non-parallel scans ,ORACLE也可以根據(jù)情況自動的選擇Direct Path Reads。
iii. 數(shù)據(jù)保存在exadata storage上。假如ASM管理之下的存儲空間全部或者部分的不存放在cell server上,則不可以使用smart scan offloading。
(2) 第二大技術(shù):HCC。只有當數(shù)據(jù)被用direct path loads的方式訪問的時候,可以做HCC壓縮。傳統(tǒng)的訪問仍然使用OLTP的壓縮方式。
a. HCC有四種壓縮方式
i. QUERY LOW(WAREHOUSE LOW):LZO compression algorithm,壓縮率最低
ii. QUERY HIGH(WAREHOUSE HIGH):ZLIB (gzip) compression algorithm,壓縮率中等
iii. ARCHIVE LOW:ZLIB (gzip) compression algorithm,但是壓縮率比QUERY HIGH高得多
iv. ARCHIVE HIGH:Bzip2 compression,壓縮率最高
b. CU=多個blocks(32/64KB),CU內(nèi)部數(shù)據(jù)的組織形式是按“列”而不是按“行”。優(yōu)點是由于列的數(shù)據(jù)類型相同,壓縮比率會很高,其作用在于提高壓縮比例,而不是提高訪問性能,“Here’s an example of running a CPU-intensive procedure:The compression slowed down the processing enough to outweigh the gains from the reduced number of data blocks that needed to be read。From 《Expert ORACLE Exadata》”。缺點是讀取任意一行的數(shù)據(jù)都需要裝載多個block組成的CU,所以特別不適合于需要做很多單行操作的訪問。
c. 當現(xiàn)存記錄被更改時,數(shù)據(jù)會被轉(zhuǎn)存到新的block中,而這個block是OLTP壓縮的。所以當HCC表被頻繁update時,所占空間會像“氣球”一樣膨脹。
d. Locking的機制使得單行操作會鎖住整個CU,這對于絕大多數(shù)OLTP環(huán)境來說是致命的。
(3) 第三大技術(shù):Storage Index,按照列字段值的索引。其設(shè)計目的是eliminate disk I/O,凡是不符合條件的區(qū)段都被跳過了。
(4) Smart Flash Cache
a. Sun recommends that the ESM modules be replaced every two years as the stored energy degrades over time (like a battery)
b. the Oracle Exadata Storage Software User’s Guide recommends powering down the storage servers before replacing one of these cards
c. 可按照任意比例劃分為ESFC和SSD盤(由ASM管理)使用,如果用于ASM管理的SSD盤,那么必須有足夠的redundancy,就降低了實際可用容量。
d. ESFC的獨特二叉讀取功能:在系統(tǒng)忙的時候,可以有選擇的從flash cache或者盤上讀取數(shù)據(jù)
e. Smart Scan通常讀盤而非讀取ESFC,但是可以通過開關(guān)指定Smart Scan去讀ESFC
f. 也可以用開關(guān)把特定的數(shù)據(jù)對象pin在ESFC里面
(5) Resource Management:DBRM和IORM
a. IORM only manages I/O for physical disks. I/O requests for objects in the flash cache or on flash-based grid disks are not managed by IORM.