Oracle數(shù)據(jù)庫并行處理的技術(shù)詳解
我們都知道Oracle數(shù)據(jù)庫的處理作為數(shù)據(jù)庫中相對比較核心的技術(shù),它會使組織以高效的管理,訪問TB級的相關(guān)比較實(shí)用的數(shù)據(jù)。如果你不能提供比較高效的Oracle數(shù)據(jù)庫并行處理技術(shù),這些大型數(shù)據(jù)庫(通常用于數(shù)據(jù)倉庫但也越來越多地出現(xiàn)在業(yè)務(wù)系統(tǒng)中)將不會存在。
簡而言之,并行處理就是利用多個CPU和I/O資源來執(zhí)行單個數(shù)據(jù)庫操作。盡管現(xiàn)在每個主要的數(shù)據(jù)庫供應(yīng)商都聲稱可以提供并行處理能力,但每個供應(yīng)商所提供的體系結(jié)構(gòu)其實(shí)存在關(guān)鍵的差異。
本文討論Oracle 9i并行處理的體系結(jié)構(gòu),并說明于在實(shí)際應(yīng)用中其相對于其它體系結(jié)構(gòu)的優(yōu)越性。需要著重指出的是,Oracle9i并行處理體系結(jié)構(gòu)的主要優(yōu)點(diǎn)在于它能在任何情況下完全利用底層硬件基礎(chǔ)架構(gòu)——每個處理器單元、每個內(nèi)存字節(jié)以及所有可用的I/O帶寬。本白皮書還講述Oracle 并行處理組件與其它關(guān)鍵業(yè)務(wù)組件(例如:Oracle RealApplication Cluster)的無縫集成。
Oracle數(shù)據(jù)庫并行處理技術(shù)簡介
現(xiàn)在的數(shù)據(jù)庫,無論是用于數(shù)據(jù)倉庫、操作數(shù)據(jù)存儲(ODS)或OLTP 系統(tǒng),都包含豐富的信息。然而,由于其中涉及海量數(shù)據(jù),及時查找和展示信息是一個巨大的挑戰(zhàn)。Oracle數(shù)據(jù)庫并行處理技術(shù)能夠解決這一挑戰(zhàn)。使用Oracle數(shù)據(jù)庫并行處理技術(shù),數(shù)分種內(nèi)(而非數(shù)小時或數(shù)天)就可以處理數(shù)TB級的數(shù)據(jù)。
Oracle數(shù)據(jù)庫并行處理技術(shù)通過利用所有可用的硬件資源取得這樣的高性能:多個CPU、多個I/O通道、多個存儲陣列和磁盤驅(qū)動器,以及大量的內(nèi)存。數(shù)據(jù)庫軟件越能有效地利用所有這些資源,處理查詢和其它數(shù)據(jù)庫操作就越有效。
此外,現(xiàn)在的數(shù)據(jù)庫應(yīng)用的復(fù)雜性大大都增強(qiáng)了,不僅需要支持大量并發(fā)用戶,而且需要管理不同類型的用戶。因此,一個并行查詢體系結(jié)構(gòu)不僅應(yīng)該確保底層硬件平臺的所有資源都得到充分利用,而且應(yīng)該更進(jìn)一步,將這些資源適當(dāng)?shù)胤峙浣o多個并發(fā)請求。
很顯然,支持CEO的戰(zhàn)略決策的請求比執(zhí)行批處理報表更加重要,并行查詢體系結(jié)構(gòu)應(yīng)該能夠處理這些商務(wù)要求:不僅基于請求自身,而且應(yīng)該基于發(fā)出請求的人以及當(dāng)前可用的系統(tǒng)資源的數(shù)量來做出動態(tài)的分配。
Oracle9i 的并行處理體系結(jié)構(gòu)能夠全面滿足這些要求,Oracle9i的體系結(jié)構(gòu)不僅提供業(yè)界領(lǐng)先的高性能,而且是唯一可以自適應(yīng)和動態(tài)調(diào)整的。
Oracle9i 的并行處理體系結(jié)構(gòu)充分利用每種硬件投資――SMP、群集或MPP的優(yōu)勢——在任何時間保證最佳的吞吐量和連續(xù)的、優(yōu)化的系統(tǒng)使用量。
Oracle9i 數(shù)據(jù)庫根據(jù)可用資源、請求優(yōu)先級和實(shí)際系統(tǒng)負(fù)載控制來平衡所有并行操作。
Oracle數(shù)據(jù)庫并行處理技術(shù)并行化設(shè)計(jì)策略——靜態(tài)與動態(tài)
并行處理的思想就是將單個任務(wù)分解為多個更小的單元。不是通過一個進(jìn)程完成所有工作,而是將任務(wù)并行化而使多個進(jìn)程同時在更小的單元上運(yùn)行。這可以極大地提高性能和最佳地利用系統(tǒng)。然而,并行處理的最關(guān)鍵部分是如何作出將單個任務(wù)分成更小的工作單元的正確決策。
典型地,有兩種方法用于實(shí)現(xiàn)數(shù)據(jù)庫系統(tǒng)的并行處理。主要區(qū)別在于是否需要進(jìn)行物理數(shù)據(jù)布局,將靜態(tài)的數(shù)據(jù)分區(qū)作為并行處理的前提。
Oracle數(shù)據(jù)庫并行處理技術(shù)之通過物理數(shù)據(jù)分區(qū)的靜態(tài)并行——不共享
在純不共享數(shù)據(jù)庫體系結(jié)構(gòu)中必須將數(shù)據(jù)庫文件在多計(jì)算機(jī)系統(tǒng)的節(jié)點(diǎn)上進(jìn)行分區(qū)才能進(jìn)行并行處理。每個節(jié)點(diǎn)擁有一個數(shù)據(jù)子集,擁有節(jié)點(diǎn)使用單一進(jìn)程或線程,以獨(dú)占方式執(zhí)行對此數(shù)據(jù)子集的所有訪問。數(shù)據(jù)訪問不能在分區(qū)內(nèi)并行。(有時,也用術(shù)語“虛擬處理器”來代替節(jié)點(diǎn)。“虛擬處理器”是在SMP計(jì)算機(jī)上模擬不共享節(jié)點(diǎn)的一種機(jī)制。
為了簡單,在討論不共享體系結(jié)構(gòu)時,我們將統(tǒng)一使用“節(jié)點(diǎn)”作為術(shù)語)。換句話說,純不共享系統(tǒng)使用分區(qū)或受限訪問方法在多個處理節(jié)點(diǎn)間劃分工作。節(jié)點(diǎn)對數(shù)據(jù)所有權(quán)的改變相對少見——為了適應(yīng)業(yè)務(wù)需求的改變而進(jìn)行的數(shù)據(jù)庫重組、添加或刪除節(jié)點(diǎn)以及節(jié)點(diǎn)故障是所有權(quán)更改的典型原因。這種數(shù)據(jù)所有權(quán)的改變對純不共享系統(tǒng)而言總是意味著要進(jìn)行人工管理。
從概念上看,可以認(rèn)為純不共享系統(tǒng)與分布式數(shù)據(jù)庫非常相似。為了在某個節(jié)點(diǎn)上執(zhí)行要求的讀/寫操作,該節(jié)點(diǎn)上的事務(wù)必須將消息發(fā)送給擁有需要被訪問的數(shù)據(jù)的其它節(jié)點(diǎn),并協(xié)調(diào)在其它節(jié)點(diǎn)上完成的工作。將消息傳遞給其它節(jié)點(diǎn),在它們擁有的數(shù)據(jù)集上請求執(zhí)行特定操作(功能)稱為功能傳送。
另一方面,如果從遠(yuǎn)程節(jié)點(diǎn)請求簡單數(shù)據(jù),則必須訪問完整的數(shù)據(jù)集并將它從擁有節(jié)點(diǎn)返回至請求節(jié)點(diǎn)(數(shù)據(jù)傳送)。
【編輯推薦】
- Oracle JOB間隔時間參考解析
- Oracle常用的命令如何查看表的結(jié)構(gòu)
- Oracle常用命令的列舉
- Oracle用戶密碼的修改
- Oracle客戶關(guān)系管理論壇的內(nèi)容簡介