前面的篇幅主要研究的是oracle軟體本身的一些功能特性以及一些管理方法。oracle是一套很大的系統軟體,現在要論述的是oracle安裝、布署的問題。先不細述如何進行布署配置,這因這涉及很多的技術和內容。本篇只是來瞭解一下oracle他的可配置架構,是單機布署還是網路布署,是用冗餘磁碟陣列(RAID)還是普通的磁碟儲存。這裡就按外掛式主控件和網路主機的分類方法,對oracle的一些常用的硬體設定架構進行一個說明。
一、概述
一個O r a c l e資料庫由物理檔案、記憶體區和進程組成。這些組件的分布隨著資料庫體繫結構的不同而不同。
資料庫中的資料存放區在磁碟上的物理檔案(稱為資料檔案)中;資料被使用時,則調入記憶體。O r a c l e利用記憶體區來改進效能並系統管理使用者間資料的共用。資料庫中的主記憶體區又稱為S y s t e m Global Area(SGA,系統全域區)。為了在S G A與資料檔案之間讀寫資料, O r a c l e採用所有使用者共用的一組後台進程來實現。
資料庫伺服器(也叫做執行個體)由一組記憶體結構和訪問資料庫檔案的後台進程組成。:
二、外掛式主控件結構
1.最簡單的結構
資料庫最簡單的概念上的配置是一個伺服器訪問一個獨立的、單磁碟主機上的資料庫。所有的檔案都儲存在伺服器的專用裝置上,並且伺服器上只有一個S G A和一組O r a c l e後台進程。
所示的結構是一種最小化的配置。其他所有的資料庫配置都是對此基本結構的修改。在此資料庫中存在兩個主要介面點:
a. 後台進程與資料庫檔案之間。
b. 後台進程與S G A之間。
調整的重點主要是對這兩個介面點的效能進行改善。如果指定給資料庫的記憶體地區足夠大,則很少對此資料庫檔案反覆進行讀操作。由於在這個配置中,所有檔案都儲存在專用磁碟裝置上,所以要最小化資料檔案的訪問次數。
2.多磁碟外掛式主控件
如果有多個磁碟,資料庫檔案便可以分開儲存。這樣可以減輕磁碟的io負荷,提高資料庫的效能。在資料庫操作期間,處理一個事務或查詢需要多個檔案的資訊是非常普遍的。如果不通過多個磁碟分配檔案,系統就需要同時從同一個磁碟中讀取多個檔案。展示了檔案在多個磁碟間的分配。
這樣的話,就可以對資料庫的檔案進行鏡像以提高效能,並能提高可用性,包括以下類型的檔案:
a.控制檔案
b.重做記錄檔
c.歸檔重做記錄檔
以上幾類檔案的鏡像方法在之前的篇幅中已經有介紹。
3.磁碟陣列(RAID)外掛式主控件
許多作業系統都提供了檔案備份的維護及檔案拷貝的同步,這些服務通過磁碟映像( d i s k s h a d o w )或磁碟區映像(volume shadow)進程來實現這種操作(也稱作鏡像)。
磁碟映像有兩個好處。首先,磁碟映像可以作為磁碟失效時的備份來使用。在大多數作業系統中,磁碟失效會自動引發相應的映像磁碟來取代失效的磁碟。第二個好處是可以改進系統的效能。支援磁碟區映像的大多數作業系統都能引導檔案的I / O請求使用映像的檔案而不是主檔案集,藉助檔案映像實現對檔案的I / O裝載。這樣就減輕了對主要磁碟的I / O負載,增加了I / O的能力。以下是對RAID的一個介紹,摘自internet,作者未知。
--------------------------
RAID是英文Redundant Array of Inexpensive Disks的縮寫,中文簡稱為廉價磁碟冗餘陣列。RAID就是一種由多塊硬碟構成的冗餘陣列。雖然RAID包含多塊硬碟,但是在作業系統下是作為一個獨立的大型存放裝置出現。利用RAID技術於儲存系統的好處主要有以下三種:
通過把多個磁碟組織在一起作為一個邏輯卷提供磁碟跨越功能
通過把資料分成多個資料區塊(Block)並行寫入/讀出多個磁碟以提高訪問磁碟的速度
通過鏡像或校正操作提供容錯能力
最初開發RAID的主要目的是節省成本,當時幾塊小容量硬碟的價格總和要低於大容量的硬碟。目前來看RAID在節省成本方面的作用並不明顯,但是RAID可以充分發揮出多塊硬碟的優勢,實現遠遠超出任何一塊單獨硬碟的速度和輸送量。除了效能上的提高之外,RAID還可以提供良好的容錯能力,在任何一塊硬碟出現問題的情況下都可以繼續工作,不會受到損壞硬碟的影響。
RAID技術分為幾種不同的等級,分別可以提供不同的速度,安全性和性價比。根據實際情況選擇適當的RAID層級可以滿足使用者對儲存系統可用性、效能和容量的要求。常用的RAID層級有以下幾種:NRAID,JBOD,RAID0,RAID1,RAID0+1,RAID3,RAID5等。目前經常使用的是RAID5和RAID(0+1)。
NRAID
NRAID即Non-RAID,所有磁碟的容量組合成一個邏輯盤,沒有資料區塊分條(no block stripping)。NRAID不提供資料冗餘。要求至少一個磁碟。
JBOD
JBOD代表Just a Bunch of Drives,磁碟控制卡把每個物理磁碟看作獨立的磁碟,因此每個磁碟都是獨立的邏輯盤。JBOD也不提供資料冗餘。要求至少一個磁碟。
RAID 0
RAID 0即Data Stripping(資料分條技術)。整個邏輯盤的資料是被分條(stripped)分布在多個物理磁碟上,可以並行讀/寫,提供最快的速度,但沒有冗餘能力。要求至少兩個磁碟。我們通過RAID 0可以獲得更大的單個邏輯盤的容量,且通過對多個磁碟的同時讀取獲得更高的存取速度。RAID 0首先考慮的是磁碟的速度和容量,忽略了安全,只要其中一個磁碟出了問題,那麼整個陣列的資料都會不保了。
RAID 1
RAID 1,又稱鏡像方式,也就是資料的冗餘。在整個鏡像過程中,只有一半的磁碟容量是有效(另一半磁碟容量用來存放同樣的資料)。同RAID 0相比,RAID 1首先考慮的是安全性,容量減半、速度不變。
RAID 0+1
為了達到既高速又安全,出現了RAID 10(或者叫RAID 0+1),可以把RAID 10簡單地理解成由多個磁碟組成的RAID 0陣列再進行鏡像。
RAID 3和RAID 5
RAID 3和RAID 5都是校正方式。RAID 3的工作方式是用一塊磁碟存放校正資料。由於任何資料的改變都要修改相應的資料校正資訊,存放資料的磁碟有好幾個且並行工作,而存放校正資料的磁碟只有一個,這就帶來了校正資料存放時的瓶頸。RAID 5的工作方式是將各個磁碟產生的資料校正切成塊,分別存放到組成陣列的各個磁碟中去,這樣就緩解了校正資料存放時所產生的瓶頸問題,但是分割資料及控制存放都要付出速度上的代價。
按照硬碟介面的不同,RAID分為SCSI RAID,IDE RAID和SATA RAID。其中,SCSI RAID主要用於要求高效能和高可靠性的伺服器/工作站,而台式機中主要採用IDE RAID和SATA RAID。
以前RAID功能主要依靠在主板上插接RAID控制卡實現,而現在越來越多的主板都添加了板載RAID晶片直接實現RAID功能,目前主流的RAID晶片有HighPoint的HTP372和Promise的PDC20265R,而英特爾更進一步,直接在主板晶片集中支援RAID,其ICH5R南橋晶片中就內建了SATA RAID功能,這也代表著未來板載RAID的發展方向---晶片集整合RAID。
Matrix RAID:
Matrix RAID即所謂的“矩陣RAID”,是ICH6R南橋所支援的一種廉價的磁碟冗餘技術,是一種經濟性高的新穎RAID解決方案。Matrix RAID技術的原理相當簡單,只需要兩塊硬碟就能實現了RAID 0和RAID 1磁碟陣列,並且不需要添加額外的RAID控制器,這正是我們普通使用者所期望的。Matrix RAID需要硬體層和軟體層同時支援才能實現,硬體方面目前就是ICH6R南橋以及更高階的ICH6RW南橋,而Intel Application Acclerator軟體和Windows作業系統均對軟體層提供了支援。
Matrix RAID的原理就是將每個硬碟容量各分成兩部分(即:將一個硬碟虛擬成兩個子硬碟,這時子硬碟總數為4個),其中用兩個虛擬子硬碟來建立RAID0模式以提高效能,而其它兩個虛擬子硬碟則透過鏡像備份組成RAID 1用來備份資料。在Matrix RAID模式中資料存放區模式如下:兩個磁碟機的第一部分被用來建立RAID 0陣列,主要用來儲存作業系統、應用程式和分頁檔,這是因為磁碟開始的地區擁有較高的存取速度,Matrix RAID將RAID 0邏輯分割區置於硬碟前端(外圈)的主因,是可以讓需要效能的模組得到最好的效能表現;而兩個磁碟機的第二部分用來建立RAID1模式,主要用來儲存使用者個人的檔案和資料。
例如,使用兩塊120GB的硬碟,可以將兩塊硬碟的前60GB組成120GB的邏輯分割區,然後剩下兩個60GB區塊組成一個60GB的資料備份分割區。像需要高效能、卻不需要安全性的應用,就可以安裝在RAID 0分割區,而需要安全性備分的資料,則可安裝在RAID 1分割區。換言之,使用者得到的總硬碟空間是180GB,和傳統的RAID 0+1相比,容量使用的效益非常的高,而且在容量配置上有著更高的彈性。如果發生硬碟損毀,RAID 0分割區資料自然無法複原,但是RAID 1分割區的資料卻會得到保全。
可以說,利用Matrix RAID技術,我們只需要2個硬碟就可以在擷取高效資料存取的同時又能確保資料安全性。這意味著普通使用者也可以低成本享受到RAID 0+1應用模式。
NV RAID:
NV RAID是nVidia自行開發的RAID技術,隨著nForce各系列晶片集的發展也不斷推陳出新。相對於其它RAID技術而言,目前最新的nForce4系列晶片集的NV RAID具有自己的鮮明特點,主要是以下幾點:
(1)交錯式RAID(Cross-Controller RAID):交錯式RAID即俗稱的混合式RAID,也就是將SATA介面的硬碟與IDE介面的硬碟聯合起來組成一個RAID模式。交錯式RAID在nForce3 250系列晶片集中便已經出現,在nForce 4系列晶片集身上該功能得到延續和增強。
(2)熱冗餘備份功能:在nForce 4系列晶片集中,因支援Serial ATA 2.0的熱插拔功能,使用者可以在使用過程中更換損壞的硬碟,並在運行狀態下重建立立一個新的鏡像,確保重要資料的安全性。更為可喜的是,nForce 4的nVIDIA RAID控制器還允許使用者為運行中的RAID系統增加一個冗餘備份特性,而不必理會系統採用哪一種RAID模式,使用者可以在驅動程式提供的“管理工具”中指派任何一個多餘的硬碟用作RAID系統的熱備份。該熱冗餘硬碟可以讓多個RAID系統(如一個RAID 0和一個RAID1)共用,也可以為其中一個RAID系統所獨自佔有,功能類似於時下的高端RAID系統。
(3)簡易的RAID模式遷移:nForce 4系列晶片集的NV RAID模組新增了一個名為“Morphing”的新功能,使用者只需要選擇轉換之後的RAID模式,而後執行“Morphing”操作,RAID刪除和模式重設的工作可以自動完成,無需人為幹預,易用性明顯提高。
-------------------------------------------
3.多資料庫外掛式主控件
在一個主機中,可以建立多個資料庫。每一個資料庫擁有自己的檔案,並且被不同的伺服器訪問。展示了支援兩個資料庫的一個主機。由於每一個伺服器要求一個S G A和一組後台進
程,所以主機必須能夠支援這種配置的記憶體和進程要求。
請注意,儘管這兩個資料庫擁有同一個主機,但它們彼此並不交流。第一個資料庫中的伺服器,不能訪問第二個資料庫中的資料檔案。
雖然oracle提供了在同一主機上安裝兩個資料庫的功能,但本人認為,這種配置結構其實是沒有必要的。