ASM
1什麼是ASM
ASM全稱為Automated Storage Management,即自動儲存管理,它是自Oracle10g這個版本Oracle推出的新功能。這是Oracle提供的一個卷管理器,用於替代操作所提供的LVM,它不僅支援單例項配置,也支援RAC這樣的多例項配置。將給管理員帶來極大的方便,ASM可以自動管理磁碟組,並提供資料冗餘和最佳化。特別是對於企業極的大型員來說,可以使管理員可以從管理成百上千個資料檔案這些瑣碎的日常事務中解脫開來,以便處理其它更為重要的事務上去。
在這個版本之前,管理一個大型資料庫成百上千個的資料檔案對資料庫管理員來說是一個既無技術含量又十分枯燥的工作,這要求資料庫管理員要熟悉一些系統的LVM的相關知識,做好磁碟規化,LV的條帶等相關的系統方面的相關操作。而使用自動儲存管理將大大減輕這方面的工作量,資料庫管理員只需要管理少數幾個磁碟組即可。一個磁碟組是ASM管理的一個邏輯單元,由一組磁碟裝置組成。我們可以定義一個磁碟組作為資料庫的預設磁碟組,Oracle會自動管理儲存,包括建立、刪除資料檔案等。Oracle會自動將這些檔案與一個合適的資料庫物件做關聯,這樣我們在管理這些物件時只需要提供物件的名稱,而無需像以前那樣提供詳細的檔名。
ASM提供了很多有用的儲存技術,如RAID和LVM(邏輯卷管理)等。像這些技術一樣,ASM允許你在一組獨立的磁碟上建立一個單獨的磁碟組。這樣就實現了單個磁碟組的I/O均衡。同時ASM還實現了條帶化(Striping)和磁碟映象(Mirroring)以提高I/O的效能和資料可靠性。與RAID或LVM不同的是,ASM是在檔案級實現的條帶化和映象,這樣的實現方式給使用者帶了很大選擇自由度,我們可以在同一個磁碟組中對不同的檔案配置不同的儲存屬性,實現不同的儲存方式。
2 11g中ASM都有哪些新特徵
2.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.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例項只有如下的一些操作才是充許的:
1.磁碟組掛載和解除安裝
2.資料庫檔案開啟,關閉,重新設定尺寸和刪除
3.限制訪問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做了如下的一些操作:
1.校驗ASM叢集的所有成員的軟體版本是不是相同,如果一個或幾個例項執行在不同的軟體版本,這條語句會報錯,叢集繼續處在滾動升級模式.
2.使叢集的所有例項都脫離滾動升級模式,叢集開始全功能工作
3. 如果設定ASM_POWER_LIMIT引數允許資料重整理,因滾動升級而被阻塞的資料重整理操作會重新開始。
2.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映像好的複製中相應的塊,並且把這些塊重新寫回到磁碟組中一個替代的位置。
2.6 磁碟組相容性方面新的屬性
2.6.1磁碟組相容性概要
為使用一些ASM的新功能,你可以使用兩個磁碟組相容性方面的屬性,COMPATIBLE.RDBMS和COMPATIBLE.ASM。這些屬性指定據庫和ASM 各自使用磁碟組所需的最小的軟體版本。預設情況下,這兩個屬性都被設成10.1,如果你想利用新特徵必須推進這些屬性。
相容性屬性設定成早先發行的版本可以使客戶端訪問高版本的磁碟組,例如,的客戶端能夠訪問Oracle11g的ASM磁碟組。
ASM 和Oracle 磁碟組相容性屬性設定決定了系統可使用的最小的ASM和軟體版本。例如, 如果ASM 相容性是11.1, 並且Oracle 資料庫相容性是10.1, 那麼ASM 軟體版本必須至少是11.1, 並且Oracle 資料庫客戶軟體版本必須是至少10.1 。二個屬性設定是compatible.asm 和compatible.rdbms。
ASM 的軟體版本決定最近建立的磁碟組的預設相容性,當你以CREATE DISKGROUP SQL語句創造磁碟組時,可以忽略磁碟組相容性設定。另外,可以使用ALTER DISKGROUP SQL語句為現有的磁碟組改變相容性設定。磁碟組相容性設定只能逐漸升高,你無法恢復回一個更低的相容性設定。
2.6.2 COMPATIBLE.ASM和COMPATIBLE.RDBMS
相容性屬性設定是透過這兩個引數完成的。COMPATIBLE.ASM屬性決定任一個ASM 事例使用一個磁碟組的最小的軟體版本。這個設定並且決定資料磁碟上ASM原資料的的格式。檔案內容的格式由資料庫例項決定的。對於版本中的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 之間的任一值。
2.6.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';
2.7 ASM 優先映象讀取
2.7.1優先映象讀取新特徵概要
在擴充套件中,如果遠端結點的訪問是不均衡的,這一新特徵對於提升效能是很有用的。這導致更好的儲存利用率,降低網路負載。中,ASM總讀一個映象區集的主要複製,我們知道這樣做的目的是為了分散IO,提升效能。而對於一個磁碟組的一塊盤,對於某一個結點來說可能是本地盤,也可能是遠端盤,如果從主複製讀取資料,這個主複製又是遠端盤,顯然沒有本地盤效率高。不過在Oracle10g中是不能完成設定從哪塊盤讀取資料的,在11g中引入了ASM_PREFERRED_READ_FAILURE_GROUPS這個引數,即我們所談的ASM優先映象讀取新特徵,可以完成這樣的功能,如下再詳細說一下這個新特徵。
當您配置ASM失敗組,它使結點從最靠近它的區讀取資料,這也許是最高效的,既使那個區是一個次要的區。換句話說,當次要區離結點較近時,你可以配置ASM 讀從一個次要區讀,而不是從較遠的主區讀。使用優先讀取失敗組對於擴充套件群集來說是非常有用的。
使用這個特徵, 在擴充套件的叢集相對這個結點的本地盤,Oracle推薦配置至少一個映象的區複製。然而在一個RAC資料庫中,為一個結點被設定優先讀取的失敗組對另外的一個結點而言也許就是選程的,這倒不用擔心,每個例項優先讀取失敗組的引數設定是可以分別指定的。
注意:
預設情況下, 當您創造一個磁碟組, 磁碟組的每塊盤屬於一個失敗組。Oracle不推薦你為使用磁碟組的每一個例項配置超過一個優先讀取失敗組。如果你為每一個例項配置超過一個優先讀取失敗組, Oracle alter日誌會寫入警告資訊。
2.7.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...
2.8 ASM 快速的再平衡
重新平衡操作發生在當磁碟組是在限制模式下,它消也除了Oracle RAC 環境裡鎖和解鎖extent map資訊在ASM 事例之間的傳訊,因此提升了總體重新平衡的吞吐量。
ASM全稱為Automated Storage Management,即自動儲存管理,它是自Oracle10g這個版本Oracle推出的新功能。這是Oracle提供的一個卷管理器,用於替代操作所提供的LVM,它不僅支援單例項配置,也支援RAC這樣的多例項配置。將給管理員帶來極大的方便,ASM可以自動管理磁碟組,並提供資料冗餘和最佳化。特別是對於企業極的大型員來說,可以使管理員可以從管理成百上千個資料檔案這些瑣碎的日常事務中解脫開來,以便處理其它更為重要的事務上去。
在這個版本之前,管理一個大型資料庫成百上千個的資料檔案對資料庫管理員來說是一個既無技術含量又十分枯燥的工作,這要求資料庫管理員要熟悉一些系統的LVM的相關知識,做好磁碟規化,LV的條帶等相關的系統方面的相關操作。而使用自動儲存管理將大大減輕這方面的工作量,資料庫管理員只需要管理少數幾個磁碟組即可。一個磁碟組是ASM管理的一個邏輯單元,由一組磁碟裝置組成。我們可以定義一個磁碟組作為資料庫的預設磁碟組,Oracle會自動管理儲存,包括建立、刪除資料檔案等。Oracle會自動將這些檔案與一個合適的資料庫物件做關聯,這樣我們在管理這些物件時只需要提供物件的名稱,而無需像以前那樣提供詳細的檔名。
ASM提供了很多有用的儲存技術,如RAID和LVM(邏輯卷管理)等。像這些技術一樣,ASM允許你在一組獨立的磁碟上建立一個單獨的磁碟組。這樣就實現了單個磁碟組的I/O均衡。同時ASM還實現了條帶化(Striping)和磁碟映象(Mirroring)以提高I/O的效能和資料可靠性。與RAID或LVM不同的是,ASM是在檔案級實現的條帶化和映象,這樣的實現方式給使用者帶了很大選擇自由度,我們可以在同一個磁碟組中對不同的檔案配置不同的儲存屬性,實現不同的儲存方式。
2 11g中ASM都有哪些新特徵
2.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.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例項只有如下的一些操作才是充許的:
1.磁碟組掛載和解除安裝
2.資料庫檔案開啟,關閉,重新設定尺寸和刪除
3.限制訪問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做了如下的一些操作:
1.校驗ASM叢集的所有成員的軟體版本是不是相同,如果一個或幾個例項執行在不同的軟體版本,這條語句會報錯,叢集繼續處在滾動升級模式.
2.使叢集的所有例項都脫離滾動升級模式,叢集開始全功能工作
3. 如果設定ASM_POWER_LIMIT引數允許資料重整理,因滾動升級而被阻塞的資料重整理操作會重新開始。
2.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映像好的複製中相應的塊,並且把這些塊重新寫回到磁碟組中一個替代的位置。
2.6 磁碟組相容性方面新的屬性
2.6.1磁碟組相容性概要
為使用一些ASM的新功能,你可以使用兩個磁碟組相容性方面的屬性,COMPATIBLE.RDBMS和COMPATIBLE.ASM。這些屬性指定據庫和ASM 各自使用磁碟組所需的最小的軟體版本。預設情況下,這兩個屬性都被設成10.1,如果你想利用新特徵必須推進這些屬性。
相容性屬性設定成早先發行的版本可以使客戶端訪問高版本的磁碟組,例如,的客戶端能夠訪問Oracle11g的ASM磁碟組。
ASM 和Oracle 磁碟組相容性屬性設定決定了系統可使用的最小的ASM和軟體版本。例如, 如果ASM 相容性是11.1, 並且Oracle 資料庫相容性是10.1, 那麼ASM 軟體版本必須至少是11.1, 並且Oracle 資料庫客戶軟體版本必須是至少10.1 。二個屬性設定是compatible.asm 和compatible.rdbms。
ASM 的軟體版本決定最近建立的磁碟組的預設相容性,當你以CREATE DISKGROUP SQL語句創造磁碟組時,可以忽略磁碟組相容性設定。另外,可以使用ALTER DISKGROUP SQL語句為現有的磁碟組改變相容性設定。磁碟組相容性設定只能逐漸升高,你無法恢復回一個更低的相容性設定。
2.6.2 COMPATIBLE.ASM和COMPATIBLE.RDBMS
相容性屬性設定是透過這兩個引數完成的。COMPATIBLE.ASM屬性決定任一個ASM 事例使用一個磁碟組的最小的軟體版本。這個設定並且決定資料磁碟上ASM原資料的的格式。檔案內容的格式由資料庫例項決定的。對於版本中的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 之間的任一值。
2.6.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';
2.7 ASM 優先映象讀取
2.7.1優先映象讀取新特徵概要
在擴充套件中,如果遠端結點的訪問是不均衡的,這一新特徵對於提升效能是很有用的。這導致更好的儲存利用率,降低網路負載。中,ASM總讀一個映象區集的主要複製,我們知道這樣做的目的是為了分散IO,提升效能。而對於一個磁碟組的一塊盤,對於某一個結點來說可能是本地盤,也可能是遠端盤,如果從主複製讀取資料,這個主複製又是遠端盤,顯然沒有本地盤效率高。不過在Oracle10g中是不能完成設定從哪塊盤讀取資料的,在11g中引入了ASM_PREFERRED_READ_FAILURE_GROUPS這個引數,即我們所談的ASM優先映象讀取新特徵,可以完成這樣的功能,如下再詳細說一下這個新特徵。
當您配置ASM失敗組,它使結點從最靠近它的區讀取資料,這也許是最高效的,既使那個區是一個次要的區。換句話說,當次要區離結點較近時,你可以配置ASM 讀從一個次要區讀,而不是從較遠的主區讀。使用優先讀取失敗組對於擴充套件群集來說是非常有用的。
使用這個特徵, 在擴充套件的叢集相對這個結點的本地盤,Oracle推薦配置至少一個映象的區複製。然而在一個RAC資料庫中,為一個結點被設定優先讀取的失敗組對另外的一個結點而言也許就是選程的,這倒不用擔心,每個例項優先讀取失敗組的引數設定是可以分別指定的。
注意:
預設情況下, 當您創造一個磁碟組, 磁碟組的每塊盤屬於一個失敗組。Oracle不推薦你為使用磁碟組的每一個例項配置超過一個優先讀取失敗組。如果你為每一個例項配置超過一個優先讀取失敗組, Oracle alter日誌會寫入警告資訊。
2.7.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...
2.8 ASM 快速的再平衡
重新平衡操作發生在當磁碟組是在限制模式下,它消也除了Oracle RAC 環境裡鎖和解鎖extent map資訊在ASM 事例之間的傳訊,因此提升了總體重新平衡的吞吐量。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12798004/viewspace-1142137/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- asm files,asm directories,asm templatesASM
- 【ASM】如何建立ASM磁碟ASM
- ASM之建立ASM磁碟ASM
- 【ASM學習】ASM 管理ASM
- 【ASM學習】ASM文件ASM
- ASM之建立ASM例項及ASM資料庫ASM資料庫
- 【ASM】ASM基礎知識ASM
- ASM之建立ASM例項ASM
- ASM之ASM相關概念ASM
- 【ORACLE ASM】ASM 支援工具簡介OracleASM
- asm-windows下安裝asmASMWindows
- rman copy asm datafile(rename asm datafile)ASM
- ASM 翻譯系列第八彈:ASM Internal ASM file extent mapASM
- ASM 翻譯系列第十彈:ASM Internal ASM DISK headerASMHeader
- 利用RMAN將非ASM檔案移動到ASM裡 - [ASM]ASM
- ASM 翻譯系列第三十二彈:ASM INTERNAL Find block in ASMASMBloC
- Identify If A Disk/Part Is Still Used By ASM,Used by ASM Or Used by ASM_603210.1IDEASM
- drop asm disk、撤銷drop asm diskASM
- ASM: Device is already labeled for ASM diskASMdev
- 【ASM學習】ASM引數說明ASM
- 【ASM學習】ASM基礎知識ASM
- ASM學習筆記_ASM安裝ASM筆記
- ASM Spfile Is Not Used when ASM Instance StartsASM
- oracle asmOracleASM
- ASM (4)ASM
- ASM (3)ASM
- ASM (2)ASM
- ASM (6)ASM
- ASM (5)ASM
- ASM管理ASM
- oracle ASM中ASM_POWER_LIMIT引數OracleASMMIT
- ASM常用基礎管理命令[ASM基礎]ASM
- 建立ASM例項及ASM資料庫ASM資料庫
- 【ASM】ASMCMD chtmpl 更改ASM 模版的屬性ASM
- ASM FTP 功能複製 ASM資料庫ASMFTP資料庫
- 學習ASM技術(八)--ASM操作原理ASM
- ASM 翻譯系列第三十五彈:ASM 253號檔案——ASM spfileASM
- 【ASM】ASM磁碟頭被重寫,如何修復ASM