學習ASM技術(八)--ASM操作原理

yezhibin發表於2010-03-17
一、資料庫針對ASM檔案操作原理

1、ASM檔案建立步驟:

a)10g版本,資料庫啟動前臺程式連線ASM例項中的NFG程式,11g版本,資料庫程式池(o0nn程式)連線NFG程式,然後傳送檔案建立請求,請求中包含以下資訊:diskgroup name,檔案型別,檔案塊大小,檔案大小,檔案標籤,還可包含templates名,別名。

b)ASM傳送extent map給資料庫例項,ASM建立COD(Continuing Operation Directory)記錄來跟蹤檔案的建立。

c)資料庫例項初始化檔案,選擇適宜的I/O,初始化完成,傳送並提交建立完成資訊給ASM。

d)ASM收到資訊後,其程式LGWR將更新ACD(Active Change Directory)記錄,DBWR程式將相關的分配表,檔案目錄,別名目錄記錄非同步寫到磁碟

e)如果建立過程中異常中斷,ASM例項利用COD回滾檔案的建立,回滾中相應刪除ACD中相關記錄。

2、ASM檔案open

a)資料庫通過程式(o0nn)傳送請求開啟的檔名.

b)ASM提取檔案目錄得到該檔案的extent map資訊回覆給資料庫例項。10g版本,ASM回覆整個資料檔案中的extent map,11g,初始化僅傳送60個direct extents,其餘的extents,存放在indirect extents,根據資料庫例項具體請求而傳送相應的extents。

c)開啟spfile檔案,是採用不同的開啟方式,在資料庫啟動過程中,通過ASMB程式來處理。

d)ASM跟蹤所有資料庫例項開啟的檔案,阻止開啟檔案的刪除,協同extent的分配

3、檔案I/O

資料庫例項通過檔案開啟過程中獲取的extent map,直接對ASM disk進行讀寫操作

4、檔案關閉

a)資料庫例項傳送資訊給ASM例項

b)ASM清除檔案內部狀態,關閉檔案不需要反饋資訊給ASM例項

5、檔案刪除

a)傳送請求給ASM例項。

b)ASM例項建立COD記錄檔案刪除過程

c)將分配表記錄標記為空閒,釋放檔案目錄記錄,刪除相關別名目錄資訊。如果刪除過程中失敗,COD負責回滾刪除動作。

二、ASM檔案分配

1、extents大小分配原則

a)如果diskgroup中的compatible.rdbms版本在11.1以下,所有的extents分配1AU。
b)如果是11.1版本及以上,檔案中頭20000 extents分配1AU,下一個20000 extents是8AU,40000以上的extents分配8AU。

2、ASM條帶化(略)

3、ASM Redundancy

a)ASM是以extent進行映象
b)將不同的電源、HBA或控制卡組成不同的failure group,保證磁碟的丟失,至少還有一個extent 備份。

4、disk partners

a)extents備份存放在disk partners,disk partnership是相同diskgroup,不同failure groups的兩個磁碟

b)parnership資訊存放在PST(Parnership Status Table)中,使用者不能指定使用哪個partner,而是ASM基於failure group定義自動選擇

c)diskgroup配置的改變,disk partnership也可能發生改變,PST跟蹤先前的parnership直至rebanlance 完成。

d)因為PST空間限制,為更有效對diskgroup重配置,最好是批量進行,以避免頻繁diskgroup 重配置導致PST空間不足,導致ORA-15074 錯誤。

5、ASM映象檔案I/O讀寫
ASM並行寫所有映象的extents,從primary extent讀。

a)讀錯誤:
  • 如果不能獲取任何extent,則dismount磁碟組,如果不能從某個磁碟獲取extents,則將該磁碟offline;
  • 在10g版本中,對整個盤讀錯誤和某個扇區讀錯誤,認為是一樣的,將disk offline;而11g中如果是扇區錯誤,將觸發資料庫或ASM例項重新對映該扇區,ASM讀取好的extent映象資料,恢復讀錯誤的extent,如果成功認為正常,如果不成功,將把extent寫到報讀錯誤盤上的其他位置,如果寫成功,則將讀錯誤extent標記為不可用,如果還是寫失敗,則將整個disk offline,該過程會體現在alert.log中。
b)寫錯誤:

  • 資料庫碰到寫錯誤,將傳送disk offline資訊給ASM例項,如果資料庫能夠寫入其中一個extent並從ASM例項接受到disk offline,則認為寫成功,如果所有對extent的寫都失敗,則將採取適當行動,如表空間offline;
  • ASM接受到資訊後,檢視PST看是否其他disk partner也offline,如果太多disk partner offline,則將diskgroup強制dismount,或者把相應的disk offline。
  •  Disk offline是影響全域性操作,ASM例項將傳送訊息給叢集中其他ASM例項以及資料庫例項,在10g版本中(或compatible.rdbms <11.1),ASM立即強制刪除磁碟,但在11g(或compatible.rdbms >=11.1),磁碟不會立刻強制刪除,要等到管理員執行online命令或者DISK_REPAIR_TIME計時器過期。
c)映象過程中錯誤處理:

  •  在並行寫過程中,如果發生程式中斷或者節點當機,有可能一個extent寫完成,另一個沒有寫完成,mirror resilvering能夠確保其資料一致;
  • 確保手段是先檢查資料塊是否損壞,如果映象的資料塊其中一個損壞,則檢查並找出有效資料塊版本,使用該資料塊進行修復操作。資料塊版本可以用SCN來進行判斷。
6、Rebanlance (略)


   


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/354732/viewspace-629703/,如需轉載,請註明出處,否則將追究法律責任。

相關文章