天天看點

丢失的ASM磁盤組

     近日遇到一個問題,ASM的磁盤組無法挂載,之前是正常的,由于一些其他的操作,資料庫啟動失敗,當問題排除時候,發現在資料庫整體啟動時,挂載磁盤組的環節出現問題。

環境介紹

1

2

3

4

5

6

7

<code>#########################################</code>

<code>硬體:Vmware ESX虛拟機</code>

<code>OS: Red hat linux 5</code>

<code>Oracle version: 11.2.0.2</code>

<code>ASM disk是通過 asmlib挂載的</code>

<code>這個磁盤組隻有一個虛拟出的硬碟,是 /dev/sdb1.</code>

下面是我整個分析的過程

1. 首先通過ASM alert.log,發現如下錯誤,磁盤挂載失敗,無法找到磁盤組

<code>SQL&gt; </code><code>alter</code> <code>diskgroup DATA mount  NOTE: cache registered </code><code>group</code> <code>DATA number=1 incarn=0xc28a1e2d  NOTE: cache began mount (</code><code>first</code><code>) </code><code>of</code> <code>group</code> <code>DATA number=1 incarn=0xc28a1e2d  Tue </code><code>Dec</code> <code>11 18:06:55 2012  ERROR: </code><code>no</code> <code>PST quorum </code><code>in</code> <code>group</code><code>: required 2, found 0                                        &lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;  NOTE: cache dismounting (clean) </code><code>group</code> <code>1/0xC28A1E2D (DATA)  NOTE: dbwr </code><code>not</code> <code>being msg</code><code>'d to dismount  NOTE: lgwr not being msg'</code><code>d </code><code>to</code> <code>dismount  NOTE: cache dismounted </code><code>group</code> <code>1/0xC28A1E2D (DATA)  NOTE: cache ending mount (fail) </code><code>of</code> <code>group</code> <code>DATA number=1 incarn=0xc28a1e2d  NOTE: cache deleting context </code><code>for</code> <code>group</code> <code>DATA 1/0xc28a1e2d  GMON dismounting </code><code>group</code> <code>1 </code><code>at</code> <code>8 </code><code>for</code> <code>pid 17, osid 32163  ERROR: diskgroup DATA was </code><code>not</code> <code>mounted  ORA-15032: </code><code>not</code> <code>all</code> <code>alterations performed  ORA-15017: diskgroup </code><code>"DATA"</code> <code>cannot be mounted  ORA-15063: ASM discovered an insufficient number </code><code>of</code> <code>disks </code><code>for</code> <code>diskgroup </code><code>"DATA"</code>  <code>ERROR: </code><code>alter</code> <code>diskgroup DATA mount</code>

2. 首先檢查ASM pfile 檔案,未發現異常

3. 嘗試通過以下指令檢查磁盤是否實體存在,是如何對應實體裝置的,發現查詢不到ASM磁盤

  4. 但是直接檢查實體裝置,/dev/sdb1是存在的,說明OS已經識别該硬碟裝置,隻是ASMlib無法正常識别:

5. 起先是考慮是否是磁盤頭損害,導緻無法ASMlib識别該磁盤, dump磁盤頭發現沒有問題. 

#od -c /dev/sdb1 

&amp;hellip;&amp;hellip; 

0000040   O   R   C   L   D   I   S   K   D   A   T   A   D   G   0   1 

7760040   O   R   C   L   D   I   S   K   D   A   T   A   D   G   0   1 

這裡補充下,如果磁盤頭資訊丢失,将會顯示如下

如果顯示這個結果,需要通過以下方式renamedisk,具體可以參考文檔Oracleasm Listdisks Cannot See Disks (Doc ID 392527.1)

  6. 重新開機ASMLib ,檢查是否是ASMLib 問題

檢查檔案系統oracleasm檔案系統已經成功挂載

7. 檢查 /dev/sdb1狀态,檢視是否已經marked為ASM disk,顯示已經标記成功

8. 檢查 rpm package也沒有問題

9. 收集 Kfed logs,沒有檢查到異常新資訊。

10. 階段總結,通過以上的分析,得出以下總結

1. ASMLib 正常

2. RPM包正常

3. 磁盤頭沒有損壞和丢失資訊

4. 該硬體已經被系統正常識别

目前問題就是為什麼ASMLib 不能正常掃描并識别到該硬碟

11. 最後在檢查檔案 /etc/sysconfig/oracleasm時,發現問題,我們需要掃描到的磁盤是/dev/sdb1,可是在這個配置檔案中卻排除掃描sdb*的磁盤,和我們希望的是相悖的,将ORACLEASM_SCANEXCLUDE="" 設為空,并重新開機ASMLib,最後問題解決。

12. 重新開機ASMLib并确認磁盤狀态

本文轉自 hsbxxl 51CTO部落格,原文連結:http://blog.51cto.com/hsbxxl/1093996,如需轉載請自行聯系原作者

繼續閱讀