Thursday, December 29, 2011

Hello ~ Oracle Database

Oracle Database 雖然賣的不錯,但不是有用的人就了解如何能充分使用Oracle Database。所以想就分享個人過去學習的經驗,能夠對想要進入學習Oracle DB的人有一些些的幫助。
要了解Oracle Database運作的最重要的一張圖(個人認為)如下:
只要了解這張圖,Oracle DB在做什麼事,執行效能上出問題,怎麼解決,解決的方向大概就不會偏離太多了。
說明待續

自從Oracle Database 10g開始,Oracle創新一項Oracle DB專屬的資料儲存磁碟管理系統--Automatic Storage Management (ASM)。ASM的確讓 Oracle DB充分發揮磁碟輸出與輸入能力,讓DB在I/O上效能調校變的更容易了。
讓初接觸的人來說,還蠻困惑的,什麼是ASM Instance。看簡單一點,把ASM Instance視為檔案管理系統的背景程式就行了。只不過以前呢,檔案系統的背景程式都是作業系統附贈的,沒人去理會,而且習以為常。現在Oracle提供了一種新的檔案系統(資料庫專屬的檔案系統) -- ASM,DBA也就開始又要學習了。

Real Application Cluster
如上圖,為3個節點的RAC資料庫,共同讀取同一(單一)資料庫。
在架構上Heartbeat 至為重要。Heartbeat除了是確認各個節點是否存活的重要溝通管道之外,Oracle DB也用Heartbeat來傳送資料,因為資料從Memory經過Heartbeat傳送到另一個節點的Memory遠遠要比資料從磁碟中讀取再放到Memory要來的快的很多;同時也提升了增加節點數量時可以穩定地提升處理能量。
可以看到每個節點上,各自有獨立的Database Instance,在Instance外有資料庫的"Service"。圖上顯示有三個Service:HR、Sales、Call Center。而從Application/Web Servers所提出的DB Service連線要求(同時提出HR、Sales、Call Center DB Service),則會分別各自落到各個節點所分配的服務上。當然也可以設定某DB Service由兩個以上的節點來提供服務。

如果有架設Oracle Real Application Cluster,必定要了解Grid Infrastructure(GI)。講簡單一點,GI是屬於作業系統層面的軟體,這對原來只懂DB的DBA的的確確是一大挑戰(Oracle 把DBA看成是無所不會的超人了)。沒有架設RAC的人可以暫時先跳過,如果想要了解的人就不能不看懂下面這一張圖:

No comments: