第十六章 ASM 管理
--- 基礎知識
1. 常見普通檔案系統型別瞭解
ext2
ext2檔案系統是為解決ext檔案系統的缺陷而設計的可擴充套件、高效能的檔案系統,稱為
二級擴充套件檔案系統,是Linux系統中標準的檔案系統,支援256個位元組的長檔名,檔案
存取效能比ext有很大的提高。
ext3
ext3檔案系統是ext2的升級版本,相容ext2。與ext2檔案系統相比,ext3增加了檔案
系統日誌記錄功能,稱為日誌式檔案系統,是目前Linux預設採用的檔案系統。由於具
有了日誌功能,當因斷電或其他異常事件而非正常關機時,重啟系統後作業系統會根據
檔案系統的日誌,快速檢測並恢復檔案系統到正常的狀態,提高資料的安全性。
MS-DOS
這是DOS、Windows和一些OS/2計算機使用的檔案系統。對於MS-DOS檔案系統,檔名
長度不能超過8個字元,副檔名不能超過3個字元。
備註: OS/2 allows computers to handle several tasks at once, making them
faster and more efficient than ever.
VFAT
這是Windows 9x、Windows XP使用的擴充套件的DOS檔案系統,增加對長檔名的支援。
ISO9660
這是一種針對ISO9660標準的CD-ROM檔案系統,允許使用者在PC、Mac和其他主要計算機
平臺上讀取CD-ROM檔案。幾乎所有帶有CD-ROM的計算機都可以從ISO9660檔案系統讀取檔案。
NFS
網路檔案系統,這是用於存取遠端計算機硬碟的檔案系統。
SWAP
這是一種特殊的分割槽,用於在記憶體和硬碟間交換資料的檔案系統。
NTFS
這是Windows NT檔案系統,Windows 2000/XP及以後的作業系統都支援該檔案系統。
2. 常見叢集檔案系統型別瞭解
GFS:全域性檔案系統
GFS是應用最廣泛的叢集檔案系統。它是由紅帽公司開發出來的,允許所有叢集
節點並行訪問。後設資料通常會儲存在共享儲存裝置或複製儲存裝置的一個分割槽裡。
OCFS:甲骨文叢集檔案系統
從概念上來說,OCFS與GFS非常相似,現在OCFS2已經被應用於Linux系統之中。
VMFS:VMware的虛擬計算機檔案系統
VMFS是ESX伺服器用來允許多個伺服器訪問同一個共享儲存裝置的叢集檔案系統。
這樣就可以實現虛擬機器在不同伺服器之間的無縫遷移,因為源伺服器和目標伺服器
都可以訪問同一個儲存裝置。日誌是分散式的,ESX伺服器之間也不會出現單節點故障。
Lustre:Sun的叢集分散式檔案系統。
Lustre是專門用於包含數千個節點的大型叢集的分散式檔案系統。Lustre已經
支援Linux系統,但是高速計算環境之外的應用程式是有限的。
16.1 ASM的概念
ASM : Automatic Storage Management
ASM 是 Oracle 資料庫 10g 中一個非常出色的新特性,它以平臺無關的方式提供了文
件系統、邏輯卷管理器以及軟體 RAID 等服務。ASM 可以條帶化和映象磁碟,從而實現
了在資料庫被載入的情況下新增或移除磁碟以及自動平衡 I/O 以刪除“熱點”。
ASM 不是一個通用的檔案系統,並只能用於 Oracle 資料檔案、重做日誌以及控制檔案。
ASM 中的檔案既可以由資料庫自動建立和命名(透過使用 Oracle 管理檔案特性),也
可以由 DBA 手動建立和命名。由於作業系統無法訪問 ASM 中儲存的檔案,因此對使用
ASM 檔案的資料庫執行備份和恢復操作的唯一途徑就是透過恢復管理器 (RMAN)。
ASM 作為單獨的 Oracle 例項實施,只有它在執行時其他資料庫才能訪問它。在 Linux 上,
只有執行 OCSSD 服務(由 Oracle 通用安裝程式預設安裝)才能使用 ASM。ASM 需要的
記憶體不多:對大多數系統,只需 64 MB。
---------------------------------------------------------
1、UNIX 或者LINUX 作業系統上安裝邏輯卷管理器(LVM) 透過LVM將多個磁碟(PV)做成
卷組(VG), 在卷組上劃分邏輯卷(logical volume), 在邏輯捲上建立檔案系統 將檔案系
統掛載到某個目錄下面
2、windows 將磁碟劃分成不同的分割槽, 分割槽上建立檔案系統, 上面的都是透過檔案系統
對空間進行管理,軟體透過檔案系統來訪問儲存空間
3、裸裝置:不透過檔案系統,而是直接由Oracle 資料庫例項來讀寫磁碟,這個空間是
誰也不管理的,只有oracle 自己併發訪問,oracle 有併發機制,檔案系統就不能做到,
對檔案系統來說,管理檔案相對容易,檔案系統層次清晰,但不能支援併發,速度慢;
對裸裝置來說,管理檔案相對困難,效能好
ASM, 即自動儲存管理,它是自Oracle10g 這個版本Oracle 推出的新功能。這是Oracle
提供的一個卷管理器,用於替代作業系統所提供的LVM,它不僅支援單例項配置,也支援
RAC 這樣的多例項配置。將給Oracle 資料庫管理員帶來極大的方便,ASM 可以自動管理
磁碟組,並提供資料冗餘和最佳化。特別是對於企業極的大型資料庫管理員來說,可以使
管理員可以從管理成百上千個資料檔案這些瑣碎的日常事務中解脫開來,以便處理其它
更為重要的事務上去。
在Oracle 10g 這個版本之前,管理一個大型資料庫成百上千個的資料檔案對資料庫管
理員來說是一個既無技術含量又十分枯燥的工作,這要求資料庫管理員要熟悉一些系統
的LVM 的相關知識,做好磁碟規化,LV 的條帶等相關的系統方面的相關操作。而使用
自動儲存管理將大大減輕這方面的工作量,資料庫管理員只需要管理少數幾個磁碟組即可。
一個磁碟組(disk group)是ASM 管理的一個邏輯單元,由一組磁碟裝置組成。我們可以
定義一個磁碟組作為資料庫的預設磁碟組, Oracle 會自動管理儲存,包括建立、刪除
資料檔案等。Oracle 會自動將這些檔案與一個合適的資料庫物件做關聯,這樣我們在管
理這些物件時只需要提供物件的名稱,而無需像以前那樣提供詳細的檔名。 ASM 提供
了很多有用的儲存技術,如RAID 和LVM(邏輯卷管理)等。像這些技術一 樣,ASM 允許
你在一組獨立的磁碟上建立一個單獨的磁碟組。這樣就實現了單個磁碟組的I/O 均衡。
同時ASM 還實現了條帶化(Striping)和磁碟映象(Mirroring)以提高I/O 的效能和資料
可靠性。與RAID 或LVM 不同的是,ASM 是在檔案級實現的條帶化和映象,這樣的實現
方式給使用者帶了 很大選擇自由度,我們可以在同一個磁碟組中對不同的檔案配置不同
的儲存屬性,實現不同的儲存方式。 一個裸裝置只能放一個檔案,不能將所有檔案放
在一個裸裝置上。
而 ASM :裸裝置+裸裝置+......., 格式化裸裝置的頭部資訊,將這些磁碟組成一個
磁碟組,檔案存在磁碟中,實現了負載均衡和冗餘
ASM 是裸裝置,因為他只格式化了頭部資訊,asm mount 後,asm磁碟組就被開啟,
oracle 看到的就是裸裝置,ASM 就是把這些裸裝置組成一個磁碟組,而且asm中也有目錄,
有檔案,不建議對這些目錄進行管理,但他很像一個檔案系統。
ASM本身由兩大部分組成: ASM例項和ASM磁碟組
ASM磁碟組裡面只能存放Oracle檔案:資料檔案、聯機重做日誌檔案、控制檔案等
ASM儲存結構
ASM 並沒有替代現有的概念。 磁碟組是 oracle 預設的管理單元,一個磁碟組包括
若干塊磁碟,每塊磁碟就是一個 asm 磁碟
1、ASM磁碟組可以包含多個磁碟
2、ASM磁碟中可以包含多個檔案,多個檔案也可以打散以後放在多個磁碟上,
因此磁碟和檔案是多對多的關係
3、一個ASM磁碟被分成多個AU,每個AU 大小是1M,一個Oracle 資料塊一定放在一個 AU
中,不會跨多個AU,一個AU 則由多個物理磁碟塊組成,AU 是ASM進行擴張和收縮時的最
小單位 (一個windows 系統預設系統塊是4K)
ASM 例項的主要程式和普通的例項也不一樣。
對ASM磁碟組的管理,則由ASM例項來完成
ASM例項有3 個型別的後臺程式 RBAL 全稱為
Rebalancing Daemon。ASM相關的管理程式,負責執行ASM所管理磁碟資源的
rebalance 操作。這個程式用來確定何時需要執行重新平衡操作及估計該操
作花費的時間 ARBn 這些程式在RBAL 程式的管理下做實際的ASM所管理磁碟
資源的rebalance 操作,n 的多少由asm_power_limit 引數決定。 GMON diskgrou
p 監視器 每個使用了ASM儲存的資料庫例項也有2 個新的程式 1、RBAL:
用來開啟磁碟組裡的磁碟,然後透過DBWn 程式將資料寫入到這些開啟的磁碟裡去
2、ASMB:在第一次訪問ASM檔案時動態建立,他作為前臺程式連入到ASM例項,
從而使得資料庫例項和ASM例項之間建立了一個連線通道。透過該通道,定期在兩
個例項之間傳遞資料,負責向ASM例項提供I/O 統計資料。訪問Group Services,
從中獲取有關ASM 例項所管理的磁碟組的資訊。 資料庫例項只能與其所在的同
一臺主機上的ASM例項通訊,如果當前主機上存在多個資料庫,則這些資料庫可
以共享同一個ASM例項。
建立ASM例項
ASM例項與資料庫例項類似,也需要引數檔案spfile 可以使用dbca 完成spfile
的建立 也可以手工編輯pfile,然後建立spfile 。 ASM 例項同資料庫例項一樣,
也有自己的sga,spfile,等等 使用DBCA 建立的ASM 例項的名字是+ASM。
我們可以以後再建立ASM磁碟組。
C:\Documents and Settings\li>set ORACLE_SID=+asm
C:\Documents and Settings\li>sqlplus / as sysdba
SQL> show parameter instance_type
NAME TYPE ------------------------------------ -----------
----------- VALUE ----------------------------
-- instance_type string asm SQL> show parameter instance_name NAME TYPE -
----------------------------------- ---------------------- VALUE ---
-----
---------------------- instance_name string +asm SQL> create pfile='c:\init+asm.ora' from spfile; 檔案已建立。 Init+asm.ora 檔案內容如下 *.core_dump_dest='E:\oracle\product\10.2.0\admin\+ASM\cdump' *.instance_type='asm' *.large_pool_size=12M *.remote_login_passwordfile='SHARED' *.user_dump_dest='E:\oracle\product\10.2.0\admin\+ASM\udump' 預設sid 就是+asm large_pool_size 是asm程式空間 SQL> show parameter db_unique; NAME TYPE ------------------------------------ ---------------------- VALUE ------------------------------ db_unique_name string +ASM 資料庫名稱在多例項的rac 環境下會使用到,預設適合db_name 相同 SQL> show parameter asm_power NAME TYPE ------------------------------------ ---------------------- VALUE ------------------------------ asm_power_limit integer 1 SQL> show parameter asm_disk NAME TYPE ------------------------------------ ---------------------- VALUE ------------------------------ asm_diskgroups string asm_diskstring string SQL> show parameter large_pool NAME TYPE ------------------------------------ ---------------------- VALUE ------------------------------ large_pool_size big integer 12M
1、db_unique_name:ASM例項的名字
2、asm_power_limite:預設為1,表示ASM磁碟組在進行rebalance 時的速度。
取值從1 到 11,1 表示最小,對前臺的影響最小,11 表示最大,對前臺用
戶的影響也越大
3、asm_disk_string:表示在建立磁碟組時,在指定的路徑
下搜尋磁碟。如果要建立磁碟組,必須設定該引數,如果設定為/dev/raw/raw,
那麼表示磁碟組裡面的磁碟都位於/dev/raw 下面,以raw 開頭
4、asm_diskgroup:表示啟動例項時,自動mount 那些磁碟組,可以寫多個
磁碟組名。中間以逗號分開,不要在磁碟組名兩邊加引號diskgroupa,diskgroupb
5、large_pool_size,必須定義,至少為1MB 建立完成ASM以後,我們可以對ASM實
例進行啟動和關閉。
ASM例項的啟動分為以下兩個階段
1、nomount:該階段讀取spfile,根據其中的引數定義啟動ASM例項
2、mount:將初始化引數asm_diskgroup 所定義的磁碟組mount 起來
C:\Documents and Settings\li>sqlplus / as sysdba
SQL> startup ASM
例項已啟動
ORA-15110: ??????
這個錯誤只是說明我們沒有定義ASM例項啟動時預設要mount 起來的磁碟組而已,可以忽略。
SQL> startup nomount
ASM 例項已啟動
例項啟動起來以後,可以手工的mount 磁碟組
關閉ASM例項,也可以有四個引數:normal、transactional、immediate、abort
如果
沒有以abort 選項關閉ASM例項,且這個時侯資料庫例項正在使用ASM例項,則無法關閉
ASM例項; 如果以abort 關閉ASM 例項,首先會使用abort 選項關閉連線在ASM 上的數
據庫例項,然後關閉ASM例項
對ASM發出startup force 命令,這與資料庫例項一樣,
先以abort 選項關閉ASM例項,然後再startup,從而啟動ASM例項
對於單例項的ASM來說,
如果ASM例項異常中斷或發出shutdown abort、startup force 命令時,則當ASM例項啟
動的以後,會讀取磁碟組裡的日誌檔案,進行例項的恢復,如果是多ASM例項,也就是
配置了ASM叢集,如果其中一個例項崩潰,其他ASM例項會負責恢復該例項的資料。
SQL> shutdown immediate
ORA-15100: ?????????? ASM 例項已關閉
以transactional 方式關閉資料庫,當客戶端的事務完成後(commit 或 rollback),
客戶端就不能再次開始一個新的事務,但是可以進行查詢。當所有客戶端的事務
完成後,伺服器就會強制斷開所有連線,然後關閉資料庫。 管理ASM磁碟組 ASM
磁碟組就是將多塊磁碟組合在一起,在邏輯上作為一個整體,磁碟組裡的每塊物
理磁碟都有一個ASM的磁碟名稱,該名稱可以由ASM自動生成,也可以由我們指定。
磁碟本身的名稱在 ASM 磁碟組裡叫做路徑,例如一塊磁碟的物理路徑是 /dev/rdsk/c0b0t2d0s1,
我們可以給這個磁碟起一個名字disk1 ASM 磁碟組將每塊磁碟都分割成多個大小1MB
的單元,叫做分配單元(allocation unit),對於磁碟組裡的資料檔案來說,ASM會
將資料檔案分割成多個大小為1MB 的塊(chunk),並將這些 chunk 均勻的分佈在所
有的磁碟上,這叫做 coarse striping。對於聯機重做日誌檔案和控制檔案來說,因
為檔案較小,因此分割成 128KB 大小的 chunk,這叫做 fine-grained striping。
一個AU 裡面就存放多個128KB 的chunk。 控制檔案可以多個放在一個au 中
Asm想辦法將檔案放在多個au 中 透過將檔案分割成多個 chunk,平均分佈在 ASM 磁
盤組裡所有的磁碟上,並進行條帶化,我們應該確保 ASM 磁碟組裡面的磁碟尺寸應
該是一致的、轉速應該是一致的。
ASM 磁碟組的個數不應該過多,兩個就夠用了,一個用來存放資料、一個用來存放
flash recovery area。 透過將檔案分割成多個 chunk,平均分佈在 ASM 磁碟組裡
所有的磁碟上,並進行條帶化
故障組(failure group FG) 在磁碟組這麼一個邏輯組裡面,再次劃分成更小的邏
輯組,這個更小的邏輯組就叫做故障組。透過故障組將多塊磁碟組織起來。故障組主
要是為了映象。 ASM 例項不知道給定磁碟的硬體和軟體相關性。因此,除非專門將
一個磁碟賦給故障組,否則磁碟組中的每個磁碟都賦給它自己的故障組 在ASM磁碟
組裡面,映象是在AU 級別上完成的,而不是檔案級別上。
三種映象級別
1、外部映象(external redundancy)不在ASM磁碟組裡面提供映象功能,如果ASM本身
就建立在硬體冗餘的基礎上,或者容忍資料的丟失,可以配置成外部映象。
2、普通映象(normal redundancy)提供兩重映象功能,對於檔案裡面的每個AU,都會
存在該AU 的一份副本。
3、高映象(high redundancy)提供三重映象功能,對於檔案裡面的每個 AU,都會存
在該 AU 的兩份副本 單獨建一個磁碟做閃回,對映象必須是偶數 ASM在進行映象的時
候,有一條規則:永遠不會將AU(主AU)與他的副本放在同一個故障組裡面。假設我們
有一個資料檔案,由6 個AU 組成。其所在的磁碟組上定義了兩重映象。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-706504/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 教你如何成為Oracle 10g OCP - 第十六章 ASM管理Oracle 10gASM
- 第十六章:介面
- 第十六章 PHP 操作MySQLPHPMySql
- 達芬奇密碼 第十六章密碼
- ASM 翻譯系列第十彈:ASM Internal ASM DISK headerASMHeader
- 【Laravel-海賊王系列】第十六章,Builder 解析LaravelUI
- 【ASM學習】ASM 管理ASM
- ASM管理ASM
- [單刷 APUE 系列] 第十六章——網路 IPC:套接字
- Oracle ASM 管理OracleASM
- ASM 管理篇ASM
- asm 的管理ASM
- ASM 翻譯系列第十三彈:ASM 高階知識 - Forcing the issueASM
- 管理 ASM 例項ASM
- ASM簡單管理ASM
- asm磁碟管理篇ASM
- ASM管理手冊ASM
- ASM 管理歸檔ASM
- JS高階程式設計第十六章.個人學習筆記JS程式設計筆記
- ASM常用基礎管理命令[ASM基礎]ASM
- linux第六章-程式管理Linux
- ASM表空間管理ASM
- oracle asm 管理容量OracleASM
- ASM的配置與管理ASM
- 資料演算法 Hadoop/Spark大資料處理---第十六章演算法HadoopSpark大資料
- asm 相容性、asm instance 主要引數管理ASM
- Azure RBAC管理ASM資源ASM
- ASM條帶細粒度管理ASM
- ASM之磁碟建立及管理ASM
- 【asmcmd】使用asmcmd工具管理ASMASM
- ASM管理手冊總結ASM
- ASM 磁碟、目錄的管理ASM
- ASM管理的內部工具ASM
- OCP課程27:管理Ⅰ之管理ASM例項ASM
- 全面學習和應用ORACLE ASM特性--(2)管理asm磁碟OracleASM
- ASM管理 - 如何重新命名diskgroupASM
- Oracle 11.2.0.3 管理ASM例項OracleASM
- 有效管理 ASM 磁碟組空間ASM