近日遇到一個問題,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> </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 <<<<<<<<<<< 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
&hellip;&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,如需轉載請自行聯系原作者