ASM文件系統


1.確認數據庫版本

 

2.個人理解的存儲解決方案的發展趨勢

2.1圖示說明

2.2圖示描述

如上圖我們描述了在不同時期的IT行業(數據庫)出現的存儲文件系統,下面我們將分別說明:

ü  裸設備:所謂裸設備是指那些沒有安裝文件系統的一些存儲設備,像比較老一點的IDE磁盤,到現在常用到的SCSI磁盤等,只要沒有安裝文件系統就屬於裸設備;我們在使用裸設備的時候或者說數據庫在使用裸設備的時候,必須為每一個文件單獨創建一個裸設備,這種情況下對於數據的復制和備份很不方便,所以這種存儲方案大多不被人們所接受。

ü  文件系統:自從計算機操作系統出現以后,就出現了用於管理存儲的文件系統,如微軟的FAT16\FAT32\NTFS,LINUX下的EXT2\EXT3等,不同文件系統的管理存儲能力各不相同,像FAT16只能存儲單個文件的大小為2G的文件,而后來發展的FAT32能夠存儲的單個文件的大小為4G,大大提高了文件儲存管理的能力。在早期的ORACLE7&8版本上都是可以把數據文件存儲在操作系統提供的文件系統和裸設備上。

ü  共享文件系統:隨着IT系統的發展,簡單的裸設備存儲和操作系統的提供的文件系統存儲已不能滿足業務發展的需要,為了提高系統的運算能力,ORACLE數據庫開發出了多種高可用的架構,相對應的ORACLE也開發出了自己的一套文件系統ASM/OCFS。我們主要來說一下ASM,ASM俗稱自動存儲管理系統,可以通過ASMCMD工具來管理,它繞開過底層操作系統的存儲管理,不受操作系統層參數的影響直接處理磁盤上的數據,效率要比操作系統層高。

ü  分布式文件系統:近年來隨着雲計算和大數據時代的到來,數據的大小以幾何級增長,這時期數據存儲的特點是存儲數據量大並且要求運算能力快,在這種情況下以前的文件系統存儲方案都會受限於IO瓶頸而達不到要求,而分布式文件系統就是為解決這種情況而開發的一種文件存儲方案,現成的產品有HADOOP下的HDFS分布式文件系統等,分布式文件系統的原理的把數據進行切割分成不同的數據塊,分別存放在不同的機器下,運算時通過MapReduce算發進行分發聚合任務,達到存儲量運算能力快的要求,分布式文件系統很少存在IO瓶頸的問題。

3.說明ASM實例同數據庫實例協同工作的原理圖

 

3.1圖示說明

3.2圖示描述

ü  圖示中一共包括了2個ORACLE實例、1個ASM實例、3個磁盤組,他們之間的關系是1個ASM實例服務於2個ORACLE實例,且ASM實例掛載了3個磁盤組(+DATA1、+DATA2、+DATA3)。

ü  圖中1個ASM實例為2個ORACLE實例提供服務,同時這1個ASM實例又管理了3個磁盤組,可以根據業務類型對不同磁盤組進行規划,例如存放數據文件和日志文件分別放在+DATA1和+DATA2,將一些備份數據放在+DATA3,ASM磁盤組類似於操作系統的邏輯卷。

ü  ASM將數據文件或其他數據結構分成區間,將區間分配到磁盤組中所有磁盤上來提高性能和可靠性,並非是鏡像整個磁盤卷,ASM會鏡像數據庫對象以提供類型鏡像和條帶化數據庫對象的靈活性。

ü  ASM要求使用特殊類型的ORACLE實例來提供傳統ORACLE實例和文件系統之間的接口。在ORACLE10G中,對於使用ASM磁盤的數據庫引入了三個新的后台進程支持ASM實例RBAL(rebalance,重新平衡程序)、ARBn、ASMB,其中RBAL協調磁盤組的磁盤活動,在添加或卸下磁盤時執行重新平衡操作;ARBn進程主要用於磁盤組中的磁盤之間執行實際區間移動,n可以是數字0到9。ASMB進程主要執行數據庫與ASM實例間的通信。

ü  在ASM中CSS集群同步服務服務負責ASM實例與數據庫實例的相互通信。他們之間的啟動順序是首先啟動ASM實例然后再啟動數據庫實例,關閉的時候首先關閉數據庫實例然后再關閉ASM實例。

ü  ASM數據分為元數據和真正數據,其中元數據用於描述對象的字典信息,也就是物理磁盤信息,例如塊大小、AU大小、條帶寬度、數據分布情況、冗余情況,在數據再平衡的時候元數據和真正的數據都會發生移動。

4.視圖方式和asmcmd方式,分別計算出你所用ASM管理的存儲大小,使用空間和剩余空間數

 

4.1查看ASM后台進程

可以看到當前環境ASM實例已經啟動。

4.2視圖方式計算ASM存儲大小

 

 

 

4.3 ASMCMD方式計算ASM存儲大小

備注:在ORACLE實例中可以利用select table_name from dictionary wheretable_name like '%ASM%';查詢出ASM相關的視圖。

 

5.查詢asm實例正常情況下的運行狀態(nomount,mount或者open)

5.1啟動ASM實例

5.2查看ASM實例狀態

 

5.3解釋說明

從5.1ASM實例的啟動過程中我們可以看到在ASM實例啟動的時候,它不像ORACLE實例那樣有NOMOUNT\MOUNT\OPEN三個狀態,而是直接分配內存直接把磁盤組加載到ASM實例中就可以了,此時查詢5.2看到ASM實例的狀態為STARTED,總的來說ASM實例是沒有控制文件的,其只有一個參數文件,參數文件里面只是指定了需要加載的磁盤、ASM需要的內存空間、實例的類型等,這主要是因為ASM只是管理磁盤組的分配和數據的平衡,不需要關注數據的一致性和數據庫結構,其邏輯上只做數據的查詢與抽取工作,所以ASM不需要自己單獨的控制文件,只需要給ASM分配內存區及相應的后台進程就可以了。

6.比較ASM實例和數據庫實例在監聽器中注冊的狀態

 

6.1啟動監聽

正常情況下PMON進程會1分鍾后把ORACLE實例和ASM實例注冊到監聽中,我們等1分鍾后再查詢監聽狀態。

6.2再次查看監聽狀態

6.3服務狀態說明

通過上面的圖中可以看到在監聽器里ASM實例服務和數據庫實例服務都已經注冊到了監聽器里(如圖中的紅線處),其中服務+ASM下面有1個實例+ASM,服務ORCL下有一個實例ORCL,數據庫實例服務下實例的狀態為READY,表示此實例可以對外提供服務,可以接受外部用戶TNS的連接。而+ASM服務的狀態為BLOCKED,這是+ASM實例服務的正常狀態,表示PMON監聽進程這個實例不能經由監聽對外提供服務,也就是通過TNS是訪問不了這個服務的。

7.ASM的后台進程包含哪些,分別說說它們的用途。

 

7.1查看ASM后台進程

7.2后台進程說明

 

ü  PMON:進程監控進程,用於監控ASM實例進程,對異常進程進行報警保護。

 

ü  PSPn:啟動其他ASM實例進程,一旦有問題將導致ASM實例故障。

 

ü  MMAN:負責ASM內存動態管理。

 

ü  DBWn:與數據庫實例的DBWn進程類似,將ASM CACHE中的臟數據寫到磁盤。

 

ü  LGWR:寫REDO日志進程,凡事更改就會觸發此進程寫redo日志。

 

ü  CKPT:檢查點進程,觸發ASM檢查點寫臟數據。

 

ü  SMON:系統監控進程,監控ASM實例的狀態,一個ASM實例只能有一個。

 

ü  RBLA:磁盤組走再平衡的后台進程,該進程有故障將導致ASM實例宕機。

 

ü  GMON:磁盤組監控進程,用於磁盤組狀態監控和狀態表維護。

 

ü  ASMB:負責ASM進程與數據庫進程的通信。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM