一. ASM 快速鏡像再同步(ASMFast Mirror Resync)
站在用戶的角度思考問題,與客戶深入溝通,找到茌平網(wǎng)站設計與茌平網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站設計、網(wǎng)站建設、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名注冊、虛擬主機、企業(yè)郵箱。業(yè)務覆蓋茌平地區(qū)。每當ASM 無法向分配給某個磁盤的區(qū)執(zhí)行寫入操作時,就會使該磁盤脫機,同時會在其它磁盤上至少寫入一個此區(qū)(ASM 數(shù)據(jù)區(qū))的鏡像副本(如果相應的磁盤組使用了ASM 冗余)。
使用OracleDatabase 10g 時,ASM 會假定脫機磁盤只包含過時數(shù)據(jù),因此不再從此類磁盤中讀取數(shù)據(jù)。磁盤脫機后不久,ASM 就會使用冗余區(qū)副本在磁盤組中的剩余磁盤上重新創(chuàng)建分配給磁盤的區(qū)(ASM 數(shù)據(jù)區(qū)),將脫機的磁盤從磁盤組中刪除。此進程是一項開銷相對較大的操作,可能要花費幾小時來完成。
如果磁盤故障只是臨時性的(如電纜、主機總線適配器、控制器故障或磁盤的電源中斷),則必須在臨時故障修復后重新添加磁盤。但是,將刪除的磁盤重新添加回磁盤組還需要將區(qū)(ASM 數(shù)據(jù)區(qū))遷回磁盤,因此增加了成本。
ASM 快速鏡像再同步會顯著減少重新同步臨時故障磁盤所需的時間。如果某個磁盤因臨時故障而脫機,ASM 將跟蹤在中斷期間發(fā)生修改的區(qū)。臨時故障被修復后,ASM 可以快速地僅重新同步在中斷期間受到影響的ASM 磁盤區(qū)。此功能假定受到影響的ASM磁盤內(nèi)容未發(fā)生損壞或修改。
某個ASM 磁盤路徑出現(xiàn)故障時,如果您已設置了相應磁盤組的DISK_REPAIR_TIME 屬性,則ASM 磁盤會脫機,但不會被刪除。此屬性的設置確定了ASM 可容忍的磁盤中斷持續(xù)時間;如果中斷在此時間范圍內(nèi),則修復完成后仍可重新同步。
注:跟蹤機制對每個已修改的區(qū)使用一個位,這樣可確保跟蹤機制非常高效。
請按磁盤組設置此功能。可以在創(chuàng)建磁盤組后使用ALTER DISKGROUP 命令完成此操作。使用一個類似以下命令的命令啟用ASM 快速鏡像再同步:
ALTER DISKGROUPSET ATTRIBUTE 'DISK_REPAIR_TIME'='2D4H30M'
在 修復了磁盤后,運行SQL 語句ALTER DISKGROUP ONLINE DISK。此語句可使修復的磁盤組重新聯(lián)機以啟用寫操作,這樣便不會丟失新的寫入內(nèi)容。此語句還會啟動一個過程,以復制在其冗余副本上標記為過時的所有 區(qū)。不能將ONLINE 語句用于已經(jīng)刪除的磁盤。
可以通過查詢V$ASM_ATTRIBUTE視圖來查看當前的屬性值。通過查詢V$ASM_DISK 或V$ASM_DISK_IOSTAT 的REPAIR_TIMER 列,可以確定ASM 刪除某個脫機磁盤前剩余的時間。此外,V$ASM_OPERATION 中將出現(xiàn)一個與磁盤再同步操作對應的行,其中的OPERATION 列設置為SYNC。
為了進行預防性維護,還可以使用SQL語句ALTER DISKGROUP OFFLINE DISK 手動使ASM 磁盤脫機。使用此命令可以指定一個計時器,以覆蓋在磁盤組級別定義的計時器。完成維護后,使用ALTER DISKGROUP ONLINE DISK 語句使磁盤重新聯(lián)機。
如果無法修復處于脫機狀態(tài)的故障組,則可使用帶FORCE 選項的ALTER DISKGROUP DROP DISKS INFAILGROUP 命令,這樣便可以確保根據(jù)數(shù)據(jù)的冗余副本重新構建原先存儲在這些磁盤上的數(shù)據(jù),并將其存儲在同一磁盤組中的其它磁盤上。
注:僅當裝載了磁盤組時才計算時間。而且,更改DISK_REPAIR_TIME 的值不會影響以前脫機的磁盤。DISK_REPAIR_TIME 的默認設置3.6 小時對多數(shù)環(huán)境來說應當足夠了。
在Oracle Database10g 中配置ASM 故障組時,ASM 將始終讀取鏡像區(qū)的主副本。讓節(jié)點從最靠近該節(jié)點的故障組區(qū)(即使是輔助區(qū))讀取數(shù)據(jù)效率可能更高些。在擴展的集群配置(節(jié)點跨多個站點分布)中,這種情 況尤其明顯;在這種情況下,從區(qū)的本地副本讀取數(shù)據(jù)可以提高性能。
使用OracleDatabase 11g 時,通過使用新的初始化參數(shù)ASM_PREFERRED_READ_FAILURE_GROUPS指定選鏡像讀取名稱列表來配置選鏡像讀取,可以做到 這一點。這些故障組中的磁盤將成為選讀取磁盤。這樣一來,每個節(jié)點都可以從其本地磁盤讀取數(shù)據(jù)了。這樣不但可以提高效率和性能,還可以降低網(wǎng)絡通信量。 該參數(shù)的設置取決于具體的實例。
要 配置此功能,請設置新的ASM_PREFERRED_READ_FAILURE_GROUPS初始化參數(shù)。此參數(shù)是一個多值參數(shù),應包含一個帶有逗號分隔 的故障組名稱列表的字符串。指定的每個故障組名稱應以其磁盤組名稱和一個“.”字符為前綴。此參數(shù)是動態(tài)參數(shù),可以隨時使用ALTER SYSTEM 命令進行修改。但是,該初始化參數(shù)僅對ASM實例有效。使用擴展集群時,該參數(shù)中指定的故障組只應包含對應實例的本地磁盤。
新的列PREFERRED_READ已被添加到V$ASM_DISK 視圖中,使用單字符格式。如果磁盤所屬的磁盤組屬于選讀取故障組,則此列的值為Y。
要確定ASM 選讀取故障組的特定性能問題,請使用V$ASM_DISK_IOSTAT 視圖。
此視圖將顯示每臺ASM 客戶機的磁盤輸入/輸出(I/O) 統(tǒng)計信息。如果從一個數(shù)據(jù)庫實例中查詢此視圖,則僅顯示此實例的行。
在實踐中,擴展集群中只有數(shù)量有限的有效磁盤組配置。有效磁盤組配置會同時考慮磁盤組在擴展集群中的性能和可用性。下面是一些可能的示例:
對 于一個包含兩個站點的擴展集群,正常的冗余磁盤組應只有兩個故障組;一個站點的所有本地磁盤都應屬于相同的故障組。此外,每個實例只能指定一個故障組作為 選讀取故障組。如果有兩個以上的故障組,則ASM 不會對一個跨兩個站點的虛擬區(qū)進行鏡像。而且,如果具有兩個以上故障組的站點關閉,則也會使磁盤組關閉。如果要創(chuàng)建的磁盤組是一個高冗余磁盤組,則應在每 個站點及其本地磁盤上最多創(chuàng)建兩個故障組,并將兩個本地故障組都指定為本地實例的選讀取故障組。
對于包含三個站點的擴展集群,應使用含三個故障組的高冗余磁盤組。通過這種方式,ASM 可以保證每個虛擬區(qū)對于每個站點都有一個本地鏡像副本,并且三個站點上的磁盤組都受到保護以避免重大災難。
ASM 可變大小區(qū)是一種自動功能,ASM 可使用該功能在提高內(nèi)存使用效率的同時支持較大的文件大小。
在Oracle Database 11g 中,ASM 支持1、8 和64 個分配單元(AU) 的可變大小區(qū)。ASM使用預先確定了數(shù)量的各種大小的區(qū)。只要一個文件超過了特定的閾值,就會使用下一個區(qū)大小。
利用此功能,可以減少描述文件所需的區(qū)指針數(shù),以及管理共享池中區(qū)映射所需的內(nèi)存(在大型文件配置中禁止使用)。區(qū)大小在文件之間以及文件內(nèi)部都有所不同。
通過可變大小區(qū)功能還可以使用ASM部署幾百個TB(甚至幾個PB)大小的Oracle DB。
注:可變大小區(qū)的管理是完全自動化的,不需要手動管理。
但是,如果分配并釋放了大量非連續(xù)的小型數(shù)據(jù)區(qū),并且沒有其它連續(xù)的大型區(qū)可用時,則可能出現(xiàn)外部碎片。碎片整理操作將被集成到重新平衡操作中。因此,DBA 始終可以通過執(zhí)行重新平衡操作對磁盤組進行碎片整理。
不過,這種情況極其罕見,因為ASM也會在所需大小不可用時自動在區(qū)分配過程中執(zhí)行碎片整理。這可能會延長某些分配操作的時間。
注:此功能還可以加快文件的打開速度,因為這可以大量減少存儲文件區(qū)所需的內(nèi)存量。
ASM 可伸縮性和性能增強:
(1) 區(qū)大小自動根據(jù)文件大小增加。
(2) ASM 支持可變區(qū)大小,可以:
– 增加可能的大文件大小
– 減少共享池中內(nèi)存的使用量
(3) 出現(xiàn)重要碎片時,不需要執(zhí)行手動重新平衡以外的其它管理任務。
ASM 強制實施下列限制:
(1) 存儲系統(tǒng)中包含63 個磁盤組
(2) 存儲系統(tǒng)中包含10,000 個ASM 磁盤
(3) 每個ASM 磁盤的大存儲空間為4 PB
(4) 每個存儲系統(tǒng)的大存儲空間為40 EB
(5) 每個磁盤組包含1 百萬個文件
(6) 大文件大小取決于所使用的磁盤組的冗余類型:
外部冗余為140 PB(該值當前大于可能的數(shù)據(jù)庫文件大?。?
正常冗余為42 PB,
高冗余為15 PB。
注:在Oracle Database10g 中,外部冗余的大ASM 文件大小為35 TB。
有兩種兼容性適用于ASM 磁盤組:
(1) ASM 兼容性:處理說明磁盤組的持久數(shù)據(jù)結構
(2) RDBMS 兼容性:處理客戶機(磁盤組的使用者)的功能
可以獨立控制每個磁盤組的兼容性。這是啟用包含來自Oracle Database 10g 和OracleDatabase 11g 的磁盤組的異構環(huán)境所必需的。這兩種兼容性設置是每個ASM 磁盤組的屬性:
(1)RDBMS 兼容性是指RDBMS 實例的最低兼容版本,可以允許該實例裝載磁盤組。該兼容性確定了ASM 實例與數(shù)據(jù)庫(RDBMS) 實例間交換消息的格式。ASM 實例可以支持以不同兼容性設置運行的不同RDBMS 客戶機。每個實例的數(shù)據(jù)庫兼容版本設置必須高于或等于該數(shù)據(jù)庫使用的所有磁盤組的RDBMS 兼容性。數(shù)據(jù)庫實例與ASM 實例通常在不同的Oracle 主目錄中運行。這表示數(shù)據(jù)庫實例與ASM 實例所運行的軟件版本可能不同。數(shù)據(jù)庫實例第一次連接到ASM 實例時,系統(tǒng)會協(xié)定這兩個實例都支持的最高版本。數(shù)據(jù)庫的兼容性參數(shù)設置、數(shù)據(jù)庫的軟件版本以及磁盤組的RDBMS 兼容性設置確定了數(shù)據(jù)庫實例能否裝載指定的磁盤組。
(2)ASM 兼容性是指控制磁盤上ASM 元數(shù)據(jù)的數(shù)據(jù)結構格式的持久兼容性設置。磁盤組的ASM 兼容性級別必須始終高于或等于同一磁盤組的RDBMS 兼容性級別。ASM 兼容性只與ASM 元數(shù)據(jù)的格式相關。文件內(nèi)容的格式取決于數(shù)據(jù)庫實例。例如,可以將某個磁盤組的ASM 兼容性設置為11.0,而將該磁盤組的RDBMS 兼容性設置為10.1。這表示該磁盤組只能由軟件版本為11.0 或更高的ASM 軟件管理,而軟件版本高于或等于10.1 的任何數(shù)據(jù)庫客戶機都可以使用該磁盤組。
僅當持久磁盤結構或消息傳送協(xié)議發(fā)生更改時,才需要提高磁盤組的兼容性。但是,提高磁盤組兼容性是一個不可逆的操作。可以使用CREATE DISKGROUP 命令或ALTER DISKGROUP 命令來設置磁盤組兼容性。
注: 除了確定磁盤組兼容性以外,compatible參數(shù)(數(shù)據(jù)庫的兼容版本)還確定啟用的功能。該參數(shù)適用于數(shù)據(jù)庫實例或ASM 實例,具體取決于instance_type 參數(shù)。例如,將該參數(shù)設置為10.1 將禁止使用Oracle Database 11g 中引入的任何新功能(磁盤聯(lián)機/脫機、可變區(qū)等)。
創(chuàng)建或變更ASM 磁盤組時,可以使用CREATE DISKGROUP 命令或ALTER DISKGROUP命令新增的ATTRIBUTE 子句更改其屬性。
ASM 磁盤組屬性:
(1) 通過ASM,可以使用在創(chuàng)建磁盤組時指定的不同AU 大小。AU 大小可以為1 MB、2 MB、4 MB、8 MB、16 MB、32 MB 或64 MB。
(2) RDBMS 兼容性。
(3) ASM 兼容性。
(4) 可以用分鐘(M)、小時(H) 或天(D) 為單位指定DISK_REPAIR_TIME。
如果省略單位,則默認單位為H。如果忽略此屬性,則默認值為3.6H。可以使用ALTER DISKGROUP 語句覆蓋此屬性。
(5) 可以為指定的模板指定冗余屬性。
(6) 可以為指定的模板指定條帶化屬性。
注:對于每個已定義的磁盤組,可以使用V$ASM_ATTRIBUTE 固定視圖查看所有定義的屬性。
如下表:
CHECK 磁盤組命令已經(jīng)過了簡化,默認情況下將檢查所有元數(shù)據(jù)目錄。使用CHECK 命令可以驗證ASM 磁盤組元數(shù)據(jù)的內(nèi)部一致性。
ALTER DISKGROUPDATA CHECK;
ASM 會顯示錯誤概要,并將檢測到的錯誤細節(jié)寫入到預警日志中。
在較早的版本中,可以為ALL、DISK、DISKS IN FAILGROUP 和FILE 指定此子句。
由于不再需要這些子句,所以已將其廢棄。在當前版本中,CHECK 關鍵字可執(zhí)行以下操作:
(1) 檢查磁盤的一致性(等同于以前版本中的CHECK DISK 和CHECK DISK IN FAILGROUP)
(2) 交叉檢查所有文件區(qū)映射和分配表的一致性(等同于以前版本中的CHECK FILE)
(3) 檢查別名元數(shù)據(jù)目錄和文件目錄的鏈接是否正確
(4) 檢查別名目錄樹的鏈接是否正確
(5) 檢查ASM 元數(shù)據(jù)目錄,確定其不包含無法訪問的已分配塊
使用REPAIR | NOREPAIR子句可以指示ASM 是否嘗試修復一致性檢查過程中發(fā)現(xiàn)的錯誤。默認設置為“REPAIR(修復)”。如果希望在存在不一致時得到提醒,但不希望ASM 執(zhí)行任何自動操作解決問題,則可使用“NOREPAIR(不修復)”設置。
注:在磁盤組檢查中引入額外的檢查會降低整個磁盤組檢查操作的速度。在磁盤組檢查中引入額外的檢查會降低整個磁盤組檢查操作的速度。
Oracle Database11g 中有一種裝載磁盤組的新裝載模式RESTRICTED。以RESTRICTED 模式裝載磁盤組時,客戶機將無法訪問磁盤組中的文件。如果某個ASM 實例知道不存在任何客戶機,則該實例就不嘗試向客戶機傳送消息來鎖定/解除鎖定區(qū)映射,從而可以提高重新平衡操作的性能。
以RESTRICTED 模式裝載的磁盤組僅在一個節(jié)點上以獨占方式進行裝載;該節(jié)點上的ASM 客戶機無法使用該磁盤組。
利用RESTRICTED 模式,可以在ASM 實例中的某個磁盤組上執(zhí)行所有維護任務,而不需要進行外部交互。
在維護周期結束時,必須顯式卸載磁盤組,然后以正常模式重新裝載相應的磁盤組。
ALTER DISKROUPdiskgroupname MOUNT 命令已經(jīng)過擴展,支持ASM 以RESTRICTED 模式裝載磁盤組。
使用RESTRICTED 選項啟動ASM 實例時,ASM_DISKGROUPS 參數(shù)中定義的所有磁盤組都將以RESTRICTED 模式裝載。
適用于快速重新平衡的受限裝載磁盤組:
(1) 磁盤組只能裝載在單個實例上。
(2) 任何數(shù)據(jù)庫客戶機或其它ASM 實例都不能獲得訪問權限。
(3) 重新平衡可以繼續(xù)進行,而無鎖定開銷。
示例:
(1) ALTER DISKGROUP data DISMOUNT;
(2) ALTER DISKGROUP data MOUNT RESTRICT;
(3) 維護任務:添加/刪除磁盤…
(4) ALTER DISKGROUP data DISMOUNT;
(5) ALTER DISKGROUP data MOUNT;
此功能改變了裝載不完整的磁盤組時ASM的行為。
使用OracleDatabase 10g 時,只要有足夠的故障組來裝載磁盤組,裝載操作就會成功,即使存在丟失或損壞的故障組時也是如此。這種行為可能會自動刪除ASM 磁盤,需要在修復后重新添加這些磁盤,因而會導致重新平衡操作持續(xù)較長的時間。
使用OracleDatabase 11g 時,這樣的操作會失敗,除非在裝載損壞的磁盤組時指定了新的FORCE 選項。這樣一來,您就可以在嘗試重新裝載前更正配置錯誤(如ASM_DISKSTRING 設置錯誤)或解決連接性問題了。
但 是,使用FORCE 選項裝載的磁盤組可能會使一個或多個磁盤脫機(如果這些磁盤在裝載時不可用的話)。必須在DISK_REPAIR_TIME 過期而無法還原這些設備之前采取更正措施。如果不使這些磁盤聯(lián)機,系統(tǒng)就會從磁盤組中刪除它們,因而需要進行高成本的重新平衡為磁盤組中的所有文件還原冗 余。此外,如果有一個或多個設備因MOUNT FORCE 而脫機,則在通過重新平衡還原磁盤組中的冗余之前,部分或全部文件將無法得到適當?shù)谋Wo。
因此,如果知道屬于某個磁盤組的部分磁盤不可用,則帶FORCE 選項的MOUNT 命令會很有用。如果ASM 找到了足夠的磁盤來形成仲裁磁盤,則磁盤組裝載就會成功。
在不指定任何選項時帶有NOFORCE選項的MOUNT 是默認的MOUNT 選項。在NOFORCE 模式下,屬于某個磁盤組的所有磁盤都必須是可訪問的,否則裝載將不會成功。
注:在不必要的情況下指定FORCE 選項也會導致錯誤。在集群中還存在一種特殊情況:如果第一個加載到磁盤組的不是ASM 實例,則當確定無法從本地訪問磁盤但其它實例可訪問該磁盤時,MOUNT FORCE將因出現(xiàn)錯誤而失敗。
強制裝載磁盤組
? 默認情況下,MOUNT 使用NOFORCE 選項:
– 所有磁盤必須可用
? 帶有FORCE 選項的MOUNT:
– 如果存在仲裁磁盤,則會使不可用的磁盤脫機
– 如果所有磁盤都可用,則操作會失敗
ALTER DISKGROUP data MOUNT [FORCE|NOFORCE];
強制刪除磁盤組會將屬于ASM 實例無法裝載的磁盤組的磁盤頭標記為FORMER。但是,ASM 實例會先確定使用相同存儲子系統(tǒng)的任何其它ASM 實例是否在使用該磁盤組。如果是,并且該磁盤組在相同的集群或節(jié)點上,則語句會失敗。
如果該磁盤組在不同的集群上,則系統(tǒng)會進行進一步的檢查,以確定其它集群中的某個實例是否裝載了該磁盤組。如果在其它位置裝載了該磁盤組,則語句會失敗。但是,與對同一個集群中的磁盤組進行的檢查相比。后一項檢查不是很確定。因此,應謹慎使用此子句。
注:執(zhí)行帶FORCE 選項的DROP DISKGROUP 命令時,必須同時指定INCLUDING CONTENTS 子句。
強制刪除磁盤組
(1) 允許用戶刪除無法裝載的磁盤組
(2) 如果在任何位置裝載了磁盤組,則操作會失敗
DROP DISKGROUP data FORCE INCLUDING CONTENTS;
此功能引入了一個新角色SYSASM,專門用于執(zhí)行ASM 管理任務。使用SYSASM 角色取代SYSDBA 角色可以提高安全性,因為ASM 管理與數(shù)據(jù)庫管理分開了。
使用OracleDatabase 11g 版本1 時,SYSASM 和SYSDBA 的OS 組是相同的,SYSASM的默認安裝組是dba。在將來的版本中,必須創(chuàng)建單獨的組,并且在ASM實例中SYSDBA 用戶將受到限制。
您 也可以在ASM 實例中使用CREATE USER 和GRANT SYSASM SQL 語句組合來創(chuàng)建新的SYSASM 用戶。這對遠程ASM 管理很有用。這些命令可以更新每個ASM 實例的口令文件,不需要啟動和運行實例。同樣,可以使用REVOKE 命令撤消用戶的SYSASM 角色,并可使用DROP USER 命令從口令文件中刪除用戶。
V$PWFILE_USERS 視圖集成了一個新列SYSASM,用于指明用戶是否(TRUE 或FALSE)可與SYSASM 權限關聯(lián)。
注:使用Oracle Database 11g 版本1 時,如果以SYSDBA 身份登錄ASM 實例,則將在相應的alert.log 文件中寫入警告。
六.ASMCMD 的擴展
(1)ASMCMD 已經(jīng)過擴展,包括了ASM 元數(shù)
----------------------轉(zhuǎn)載自OCP教材