Oracle ASM 11g新特性

來源:互聯網
上載者:User

一、什麼是ASM

ASM全稱為Automated Storage Management,即自動儲存管理,它是自Oracle10g這個版本Oracle推出的新功能。這是Oracle提供的一個卷管理器,用於替代操作作業系統所提供的LVM,它不僅支援單一實例配置,也支援RAC這樣的多執行個體配置。將給Oracle資料庫管理員帶來極大的方便,ASM可以自動管理磁碟組,並提供資料冗餘和最佳化。特別是對於企業極的大型資料庫管理員來說,可以使管理員可以從管理成百上千個資料檔案這些瑣碎的日常事務中解脫開來,以便處理其它更為重要的事務上去。

在Oracle 10g這個版本之前,管理一個大型資料庫成百上千個的資料檔案對資料庫管理員來說是一個既無技術含量又十分枯燥的工作,這要求資料庫管理員要熟悉一些系統的LVM的相關知識,做好磁碟規化,LV的條帶等相關的系統方面的相關操作。而使用自動儲存管理將大大減輕這方面的工作量,資料庫管理員只需要管理少數幾個磁碟組即可。一個磁碟組是ASM管理的一個邏輯單元,由一組磁碟裝置群組成。我們可以定義一個磁碟組作為資料庫的預設磁碟組,Oracle會自動管理儲存,包括建立、刪除資料檔案等。Oracle會自動將這些檔案與一個合適的資料庫物件做關聯,這樣我們在管理這些對象時只需要提供對象的名稱,而無需像以前那樣提供詳細的檔案名稱。

ASM提供了很多有用的儲存技術,如RAID和LVM邏輯卷管理)等。像這些技術一樣,ASM允許你在一組獨立的磁碟上建立一個單獨的磁碟組。這樣就實現了單個磁碟組的I/O均衡。同時ASM還實現了條帶化Striping)和磁碟鏡像Mirroring)以提高I/O的效能和資料可靠性。與RAID或LVM不同的是,ASM是在檔案級實現的條帶化和鏡像,這樣的實現方式給使用者帶了很大選擇自由度,我們可以在同一個磁碟組中對不同的檔案配置不同的儲存屬性,實現不同的儲存方式。


二、11g中ASM都有哪些新特徵

1、快速重新同步ASM Fast Mirror Resync)

短暫的磁碟路徑發生問題時,恢複ASM磁碟組DISK GROUP)的允餘性是很費時間的,特別是這種恢複操作需要重新布局整個磁碟組的情況下。ASM快速磁碟重新同步這個新特徵能顯著減少重新同步一塊壞磁碟時這種情況的時間,當你更換了壞磁碟,ASM能夠快速的同步ASM磁碟的extent。

任何使磁碟組臨時停用問題被認為是暫時的失效,這是ASM快速重新同步新特徵可以恢複的。磁碟路徑失效,例如介面線問題,主機介面卡問題,磁碟控制卡問題,或者是磁碟電源問題這些都能引起瞬時失效。預設的情況下,當一塊磁碟離線時,ASM會立刻移出該磁碟。ASM快速再同步功能夠記錄離線磁碟在離線期間該磁碟上區的所有的變化,當磁碟被修複或再次聯機時,這期間更改的extent能夠被快速的重新同步到剛才失效的這些磁碟中。

你可以設定DISK_REPAIR_TIME這個屬性使失效磁碟在被修複和再次聯機這段時間內重新整理這樣的操作不發生。這個時間可以以分鐘m或M)或者小時h或H)為單位,如果你不指定時間單位,預設的時間單位為小時。如果DISK_REPAIR_TIME這個屬性沒有設定,其預設值為3.6小時。需要注意的是,這個預設值適用於磁碟被設定為離線模式而動作陳述式沒有DROP AFTER子句這樣的情況。大部分來說環境,3.6個小時這個DISK_REPAIR_TIME預設屬性數值應該都是合適的。

注意:

使用這項新功能,ASM磁碟組的相容性需要設定至11.1或更高。

例:

CREATE DISKGROUP asmdskgrp1 DISK '/dev/raw/*'

SET ATTRIBUTE 'compatible.rdbms' = '11.1', 'compatible.asm' = '11.1';

只有當包含離線磁碟的磁碟組再次被掛上,消逝時間自磁碟被設定成離線模式後)都是增加的,V$ASM_DISK的REPAIR_TIME這列顯示的是離線磁碟在被刪除之前所剩餘的時間單位:秒),當指定的時間到達後,ASM刪除磁碟,可以用帶有DROP AFTER的ALTER DISKGROUP DISK OFFLINE語句來覆蓋這個屬性。

注意:

DROP AFTER也是11g的新特徵。

如果一條ALTER DISKGROUP SET ATTRIBUTE DISK_REPAIR_TIME操作的磁碟組含有離線的磁碟,這個屬性只對當前那些非離線模式的磁碟是生效的。

當一塊離線磁碟被第二次執行離線操作,消逝時間會被重設並重新開始計算。如果另一個時間這塊磁碟又被執行了DROP AFTER操作,上一個值會被覆蓋並且新值生效。不能用ALTER DISKGROUP DROP DISK語句刪除處於離線狀態的磁碟,這樣操作時會報錯。如果在某時情況,例如磁碟不能夠被修複,需要在DISK_REPAIR_TIME到達前把磁碟刪除時,可以再次執行帶有DROP AFTER子句的OFFLINE語句,DROP AFTER指定0H或0M,表示立刻刪除。

你可以用ALTER DISKGROUP來設定磁碟組的DISK_REPAIR_TIME屬性,可以是分鐘,也可以是小時,例如4.5小時或270分鐘,例如:

ALTER DISKGROUP dg01 SET ATTRIBUTE 'disk_repair_time' = '4.5h'

ALTER DISKGROUP dg01 SET ATTRIBUTE 'disk_repair_time' = '270m'

在你修複磁碟後,運行ALTER DISKGROUP DISK ONLINE這條SQL語句可以使磁碟組恢複到聯機狀態,新的讀寫操作都可以正常進行了,這條語句也觸發把磁碟維修期間內更改的extent從磁碟組冗餘的資料重新同步到剛才失效的這些磁碟中。


2、ASM滾動升級

在ORACLE11g及之後的版本,你可以把ASM的叢集置為"滾動升級"模式,充許不同版本的ASM結點共同工作。滾動升級"模式中的每個結點能夠獨立的升級或打補丁,而不會影響到資料庫的使用,因些其很大的提升資料庫的正常已耗用時間。需要注意的是你只可以對ORACLE11g及之後的版本進行"滾動升級",換句話說,你不能用這種功能把ORACLE10g的資料庫升級到11G的。

在進行滾動升級前,你的環境也一定要做一定的準備的。舉例來說,如果你使用了ORACLE Clusterware軟體,在你開如做滾動升級前,Clusterware也一定要完整的升級到下一個滿足要求的版本。當然,做Clusterware升級時也應當用滾動的方式,更大的確保高穩定性和最大的正常已耗用時間。

在對一個結點的ASM軟體打補丁或進行升級之前,必須把ASM叢集置為滾動升級模式,這允許開始升級和操作你的環境在多個軟體版本的模式,語句如下:

ALTER SYSTEM START ROLLING MIGRATION TO number;

number是由版本號碼、發行號、更新號、連接埠發行號和連接埠更新號這幾部分組成的,中間以逗號分開,例如11.2.0.0.0。

執行個體在運行這條語句時會檢查你指定的number與當前已安裝的軟體版本是不是相容。當升級開始後,ASM執行個體只有如下的一些操作才是充許的:

* 磁碟組掛載和卸載

* 資料庫檔案開啟,關閉,重新設定尺寸和刪除

* 限制訪問ORACLE內建的視圖和包,所有的全域視圖都是失效的

在滾動升級開始後,可以任意一個宕掉ASM執行個體來進行軟體升級,升級完的ASM執行個體在啟動後會自動重新加入ASM叢集。當叢集中的所有執行個體都完成升級到最新的軟體版本後,你就可以結束滾動升級模式了。

如果一塊磁碟在ASM執行個體進行滾動升級時是離線的,那麼直到升級結速這塊磁碟都會保持離線的狀態,而且直到ASM叢集回到正常模式觸發刪除磁碟的記時器也是停止的。

如果升級過級出現問題,可以用同樣的過程復原結點的軟體到之前的版本。叢集的任一地方有資料重整操作,升級會失敗,所以必須等資料重整操作完成才可以開始滾動升級。另外,只要叢集中有一個結點是活動的,滾動升級狀態是保留的。

如果一個叢集進行中滾動升級時一個新的ASM執行個體加進來,新的執行個體會被告知叢集正處在滾動升級模式,你可以用如下的SQL語句查詢ASM叢集環境的狀態:

SELECT SYS_CONTEXT'sys_cluster_properties', 'cluster_state') FROM DUAL;

如果ASM叢集所有的執行個體都停了,那麼當任何一個ASM執行個體重新啟動,這個執行個體都會脫離滾動升級模式。如要執行個體都重新啟動後 還要進行升級,必須重新開始滾動升級操作。

當滾動升級完成後,運行如下的SQL:

ALTER SYSTEM STOP ROLLING MIGRATION;

發出這條語句後,ORACLE做了如下的一些操作:

* 校正ASM叢集的所有成員的軟體版本是不是相同,如果一個或幾個執行個體運行在不同的軟體版本,這條語句會報錯,叢集繼續處在滾動升級模式。

* 使叢集的所有執行個體都脫離滾動升級模式,叢集開始全功能工作

* 如果設定ASM_POWER_LIMIT參數允許資料重整理,因滾動升級而被阻塞的資料重整理操作會重新開始。


3、為ASM管理員新增了SYSASM許可權和OSASM作業系統使用者組

在ORACLE10g這個版本,ORACLE沒有為ASM管理員定製相應的角色,ASM管理員以SYSDBA角色進行管理工作,在實際工作中ASM管理員與資料庫管理員可能是不同的兩個或幾個人完成的,相對來說許可權界定不清晰。11g這一新特徵引入SYSASM這一新許可權目的就是為了清晰ASM管理員與資料庫管理員的介面,防止越權操作的發生,使ASM管理員更好的進行ASM管理工作。

這一新特徵同時在作業系統中也為ASM新增了OSASM使用者組,OSASM這個組是專門為ASM設計的,可以通過作業系統授權,被授權的這個群組成員本地串連具有SYSASM許可權,能夠以SYSASM角色進行全許可權的ASM管理工作。最初,只有ASM的安裝使用者是這個組的成員,在後繼的工作,你可以添加新的使用者到OSASM這個使用者組,使新使用者有ASM管理的全部許可權。

需要注意的是,在ORACLE11g Release1的這個版本,系統OSDBA組的成員,連入資料庫據有SYSDBA的許可權,這樣的使用者仍然可以串連並管理ASM的執行個體,但相信在後續的版本中有SYSDBA許可權的使用者不會被授權有ASM執行個體的系統管理權限。


4、ASM 可擴充性和效能的增強

ASM檔案區管理在11g都有改進,體現在效能的提升和顯著的減少用於隱藏檔區的SGA記憶體方面。當ASM的檔案在大小上增加時,每一個區的大小也會自動的增加,因此,會有需要很少的指向區指標描述檔案。當訪問20GB至128TB大小的ASM檔案時11g的這個新特徵會提升效能。當然,這樣的檔案通常是大型資料庫VLDBs)所用的。

除此之外,當你建立新的磁碟組時,你現在有多個分配單位大小選項,例如1, 2, 4, 8,16, 32, 和64MB)。依據資料庫的負載和儲存系統的類型,選擇大的分配單位可能會獲得明顯的效能提升。

磁碟組儲存的ASM檔案的內容是由N個資料區組成的,資料區儲存在獨立的磁碟上。區包含一個或多個分配單位AU)。為適應逐漸增大的大檔案,ASM使用變化大小的區。

變化大小的區能夠支援更大的ASM檔案,減少大資料庫對SGA記憶體的使用,並且提升檔案建立和開啟操作的效能。一個ASM檔案開始的一個區是由一個分配單位組成的。當檔案大小增加時,如果大小超出預先定義的值,新的區大小也會增加到8分配單位,然後新的區大小增加到64個分配單位。對於新建立的檔案,這一特徵自動生效的。

分配單位的大小為多少在磁碟組建立的時侯確定,可以為1,2,4,8,16,32及64MB,當ASM檔案的大小範圍在1到20,000個區這個量級時,每個區的大小與分配單位的大小相等;ASM當檔案大小超出20,000個區,到20,001到40,000個區這個範圍,新的區的大小分自動增至8個分配單位大小;再有當ASM當檔案大小超出40,000個區,新的區的大小分自動增至64個分配單位大小。

圖一表示的是含自塊磁碟的磁碟組,檔案由每個區1AU增至8AU的變化狀況,在這個配置中,ASM沒有做檔案鏡像的。

圖一 磁碟組中ASM檔案區分配圖


5、新的ASM 命令列 ASMCMD)命令和選項。

ASMCMD有下列的四個新的命令: lsdsk、md_backup、md_restore 和remap。除此之外,你還能使用帶有新選項的ls和lsdg命令。下面描述一下這四個新的ASM命令:

lsdsk -不論是否有一個ASM的實列正在運行,這個命令都能列出ASM磁碟的資訊。當系統管理員或儲存管理員想查看一下ASM執行個體都用了哪些磁碟時這個命令是非常有用的。

md_backup和md_restore- 這兩個命令使能能夠用相同的磁碟路徑、磁碟名、失敗組、屬性、模板及目錄結構別名來重建立立已經存在的磁碟組。你可以使用md_backup備份磁碟組的環境,在出現問題的時侯用mk_restore來恢複相應的磁碟組。

Remap-你可以使用這個命令重新對應或者回複normal及high redundancy模式ASM磁碟組中的壞塊,ASM讀取ASM映像好的拷貝中相應的塊,並且把這些塊重新寫回到磁碟組中一個替代的位置。


6、磁碟組相容性方面新的屬性

1)磁碟組相容性概要

為使用一些ASM的新功能,你可以使用兩個磁碟組相容性方面的屬性,COMPATIBLE.RDBMS和COMPATIBLE.ASM。這些屬性指定據庫和ASM 各自使用磁碟組所需的最小的軟體版本。預設情況下,這兩個屬性都被設成10.1,如果你想利用新特徵必須推進這些屬性。

相容性屬性設定成早先發行的版本可以使用戶端訪問高版本的磁碟組,例如,Oracle 10g的用戶端能夠訪問Oracle11g的ASM磁碟組。

ASM 和Oracle 資料庫磁碟組相容性屬性設定決定了系統可使用的最小的ASM和Oracle資料庫軟體版本。例如, 如果ASM 相容性是11.1, 並且Oracle 資料庫相容性是10.1, 那麼ASM 軟體版本必須至少是11.1, 並且Oracle 資料庫客戶軟體版本必須是至少10.1 。二個屬性設定是compatible.asm 和compatible.rdbms。

ASM 的軟體版本決定最近建立的磁碟組的預設相容性,當你以CREATE DISKGROUP SQL語句創造磁碟組時,可以忽略磁碟組相容性設定。另外,可以使用ALTER DISKGROUP SQL語句為現有的磁碟組改變相容性設定。磁碟組相容性設定只能逐漸升高,你無法恢複回一個更低的相容性設定。


2)COMPATIBLE.ASM和COMPATIBLE.RDBMS

相容性屬性設定是通過這兩個參數完成的。COMPATIBLE.ASM屬性決定任一個ASM 案例使用一個磁碟組的最小的軟體版本。這個設定並且決定資料磁碟上ASM原資料的資料結構的格式。檔案內容的格式由資料庫執行個體決定的。對於Oracle 11g版本中的ASM, 10.1 是其預設的設定值。為更好的完成磁碟組相容性設定,應設定之前COMPATIBLE.RDBMS前先設定COMPATIBLE.ASM屬性。

資料庫使用的所有磁碟組的COMPATIBLE.RDBMS屬性值必須小於或等於資料庫的COMPATIBLE初始參數設定值,對於Oracle 11g版本中的ASM, 10.1也是COMPATIBLE.RDBMS屬性的預設值。舉例來說, 如果資料庫相容初始化參數被設定成11.1.0, 那麼COMPATIBLE.RDBMS 只能被設定成10.1 和11.1 之間的任一值。


3)設定磁碟組相容性的方法

可能通過CREATE DISKGROUP or ALTER DISKGROUP兩個語句設定磁碟組的相容屬性。

使用 CREATE DISKGROUP建立磁碟組時指定相容屬性

以下例子建立一個正常冗餘盤磁碟組asmdskgrp1,ASM 相容屬性設定成10.2 ,與資料庫相容性屬性取預設值假定COMPATIBLE.RDBMS 預設小於或等於10.2):

CREATE DISKGROUP asmdskgrp1 DISK '/dev/raw/*'

SET ATTRIBUTE 'compatible.asm' = '10.2';

以下例子建立一個正常冗餘盤磁碟組asmdskgrp2,ASM 相容屬性設定成11.1 ,與資料庫相容屬性取預設值假定COMPATIBLE.RDBMS 預設小於或等於11.1):

CREATE DISKGROUP asmdskgrp2 DISK '/dev/raw/*'

SET ATTRIBUTE 'compatible.asm' = '11.2';

以下例子建立一個正常冗餘盤磁碟組asmdskgrp3,ASM 相容屬性及與資料庫相容屬性都取11.1:

CREATE DISKGROUP asmdskgrp3 DISK '/dev/raw/*'

SET ATTRIBUTE 'compatible.rdbms' = '11.1', 'compatible.asm' = '11.1';

使用ALTER DISKGROUP SQL語句為現有的磁碟組改變相容屬性

在磁碟組被創造了之後, 您能使用ALTER DISKGROUP SQL語句改變相容屬性。使用ALTER DISKGROUP SQL語句在提交變動之前,需確保Oracle能提升指定盤組的相容性。為使進行ALTER DISKGROUP提升盤組相容性而不減少資料庫和檔案系統功能,所有影響的資料庫和檔案系統都應當是線上的。

舉例:

ALTER DISKGROUP asmdskgrp4 SET ATTRIBUTE 'compatible.rdbms' = '11.1';

ALTER DISKGROUP asmdskgrp5 SET ATTRIBUTE 'compatible.asm' = '11.1';


7、ASM 優先鏡像讀取

1)優先鏡像讀取新特徵概要

在擴充叢集中,如果遠程結點的訪問是不均衡的,這一新特徵對於提升效能是很有用的。這導致更好的儲存利用率,降低網路負載。Oracle 10g中,ASM總讀一個鏡像區集的主要拷貝,我們知道這樣做的目的是為了分散IO,提升效能。而對於一個磁碟組的一塊盤,對於某一個結點來說可能是本地碟,也可能是遠程盤,如果從主拷貝讀取資料,這個主拷貝又是遠程盤,顯然沒有本地碟效率高。不過在Oracle10g中是不能完成設定從哪塊盤讀取資料的,在11g中引入了ASM_PREFERRED_READ_FAILURE_GROUPS這個參數,即我們所談的ASM優先鏡像讀取新特徵,可以完成這樣的功能,如下再詳細說一下這個新特徵。

當您配置ASM失敗組,它使結點從最靠近它的區讀取資料,這也許是最高效的,既使那個區是一個次要的區。換句話說,當次要區離結點較近時,你可以配置ASM 讀從一個次要區讀,而不是從較遠的主區讀。使用優先讀取失敗組對於擴充群集來說是非常有用的。

使用這個特徵, 在擴充的叢集相對這個結點的本地碟,Oracle推薦配置至少一個鏡像的區拷貝。然而在一個RAC資料庫中,為一個結點被設定優先讀取的失敗組對另外的一個結點而言也許就是選程的,這倒不用擔心,每個執行個體優先讀取失敗組的參數設定是可以分別指定的。

注意:

預設情況下, 當您創造一個磁碟組, 磁碟組的每塊盤屬於一個失敗組。Oracle不推薦你為使用磁碟組的每一個執行個體配置超過一個優先讀取失敗組。如果你為每一個執行個體配置超過一個優先讀取失敗組, Oracle alter日誌會寫入警告資訊。


2)配置和管理優先讀取失敗組

要配置這個新特徵,需要設定ASM_PREFERRED_READ_FAILURE_GROUPS這個參數,參數為失敗組的一個列表,這個參數通常是在叢集的ASM執行個體中被使用的,也是在叢集的ASM執行個體中 有效,並且每個執行個體設定不同的值,其預設值為NULL。參數的格式如下:

舉例:

diskgroup_name1.failure_group_name1, …

其中diskgroup_name表示的是磁碟組的名字,failure_group_name表示的是失敗組的名字。如果設定參數指定的磁碟組中並不存在相應的失敗組,ASM將忽略相應的失敗組。你可以以逗號分隔為ASM_PREFERRED_READ_FAILURE_GROUPS參數設定多個值。

舉例:

ASM_PREFERRED_READ_FAILURE_GROUPS= = diskgroup_name.failure_group_name,diskgroup_name1.failure_group_name1…


8、ASM 快速的重新平衡

重新平衡操作發生在當磁碟組是在限制模式下,它消也除了Oracle RAC 環境裡鎖和解鎖extent map資訊在ASM 案例之間的傳訊,因此提升了總體重新平衡的輸送量。


oracle視頻教程請關注:http://u.youku.com/user_video/id_UMzAzMjkxMjE2.html


相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.