學習ASM技術(八)--ASM操作原理
一、資料庫針對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)讀錯誤:
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中。
- 資料庫碰到寫錯誤,將傳送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計時器過期。
- 在並行寫過程中,如果發生程式中斷或者節點當機,有可能一個extent寫完成,另一個沒有寫完成,mirror resilvering能夠確保其資料一致;
- 確保手段是先檢查資料塊是否損壞,如果映象的資料塊其中一個損壞,則檢查並找出有效資料塊版本,使用該資料塊進行修復操作。資料塊版本可以用SCN來進行判斷。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/354732/viewspace-629703/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 學習ASM技術(八)--ASM操作原理. 續ASM
- 學習ASM技術(完結篇)--常用ASM命令ASM
- 學習ASM技術(七)--ASM檔案轉化ASM
- 學習ASM技術(四)--條帶化原理和rebalanceASM
- 學習ASM技術(三)--diskgroup管理ASM
- 學習ASM技術(二)--diskgroup管理ASM
- 學習ASM技術(六)-- ASMCMD命令列ASM命令列
- 學習ASM技術(一)--環境搭建ASM
- 【ASM學習】ASM 管理ASM
- 【ASM學習】ASM文件ASM
- 學習ASM技術(五)--檔名和TemplateASM
- ASM 學習ASM
- 【ASM學習】ASM引數說明ASM
- 【ASM學習】ASM基礎知識ASM
- ASM學習筆記_ASM安裝ASM筆記
- ASM 翻譯系列第八彈:ASM Internal ASM file extent mapASM
- Java ASM學習(2)JavaASM
- ASM 學習 指令碼ASM指令碼
- 【ASM學習】從ASM拷貝檔案的方法ASM
- 【ASM學習】關於 ASM 的隱含引數ASM
- 【ASM學習】在windows 環境下建立ASM例項ASMWindows
- 全面學習和應用ORACLE ASM特性--(2)管理asm磁碟OracleASM
- 【ASM學習】基礎知識ASM
- ITPUB 知識索引--ASM 學習索引ASM
- 【ASM學習】普通資料庫向ASM例項的遷移(二)ASM資料庫
- 【ASM學習】普通資料庫向ASM例項的遷移(一)ASM資料庫
- 全面學習和應用ORACLE ASM特性--(1)關於asm例項OracleASM
- ASM學習筆記_磁碟的管理ASM筆記
- asm files,asm directories,asm templatesASM
- 全面學習和應用ORACLE ASM特性--(3)新增和修改asm磁碟組OracleASM
- win32asm原理 (轉)Win32ASM
- ASM磁碟組修改重建操作ASM
- 全面學習和應用ORACLE ASM特性OracleASM
- ASM學習筆記_體系結構ASM筆記
- 【ASM學習】手工刪除ASM磁碟組時提示錯誤ORA-15039ASM
- 全面學習和應用ORACLE ASM特性--(5)管理asm磁碟中的檔案OracleASM
- ASM學習筆記_配置ASMLIB磁碟組ASM筆記
- ASM學習筆記_配置RAW Device磁碟組ASM筆記dev