解決ORA-15036:disk is truncated錯誤
問題出現的版本:
10.2.0.1-11.2.0.1,在任何平臺都有可能出現。
問題描述:
這種錯誤會在單節點或者是RAC環境下出現。
在你準備mount ASM diskgruop(DG1)時,報以下錯誤:
ORA-15032: not all alterations performed
ORA-15036: disk 'ORCL:DATA10' is truncated
ORA-15036: disk 'ORCL:DATA09' is truncated
最近的操作:
在磁碟組DG1的ASM內新增了兩塊硬碟,ORCL:DATA09和ORCL:DATA10,並且在OS級別進行了resize。
原因分析:
系統管理員或者儲存管理員分配了兩塊65530MB大小的空間,提供給ASM使用,ASM管理員或者DBA根據提供的兩塊空間透過ASMLIB建立了DATA09和DATA10,並且將新建的disk加入到了DG1磁碟組內,但是後來系統管理員或者是儲存管理員又將先前的分配的大小由65530M降到了61530M,但是這次操作沒有通知ASM/DBA管理員,所以在ASM上也沒有進行ALTER DISKGROUP RESIZE DISK操作,在後來的時間內,想要將ASM磁碟進行掛載,先前的錯誤就發生了,並且ASM磁碟也不能掛載。
[@more@]解決方案:
1、首先驗證一下ASM的磁碟大小是否僅僅是和實際的磁碟大小不一致,可以使用ASM的工具KFED和OS工具fdisk:
1.1受影響的磁碟(ORCL:DATA09,ORCL:DATA10)屬於ASMLIB的磁碟:
$ ls -l /dev/oracleasm/disks
brw-rw---- 1 oracle dba 8, 2 Mar 14 11:25 DATA01
...
brw-rw---- 1 oracle dba 8, 161 Mar 14 11:25 DATA09
brw-rw---- 1 oracle dba 8, 177 Mar 14 11:25 DATA10
1.2檢查ASM disk的頭資訊:
$ kfed read /dev/oracleasm/disks/DATA09kfbh.type: 1 ; 0x002: KFBTYP_DISKHEAD
kfdhdb.driver.provstr: ORCLDISKDATA09 ; 0x000: length=14
kfdhdb.dsknum: 4 ; 0x024: 0x0004
kfdhdb.grptyp: 1 ; 0x026: KFDGTP_EXTERNAL
kfdhdb.hdrsts: 3 ; 0x027: KFDHDR_MEMBER
kfdhdb.dskname: DATA09 ; 0x028: length=6
kfdhdb.grpname: DG1 ; 0x048: length=3
kfdhdb.fgname: DATA09 ; 0x068: length=6
kfdhdb.capname: ; 0x088: length=0
kfdhdb.crestmp.hi: 32934511 ; 0x0a8: HOUR=0xf DAYS=0x13 MNTH=0x2 YEAR=0x7da
kfdhdb.crestmp.lo: 1158806528 ; 0x0ac: USEC=0x0 MSEC=0x7f SECS=0x11 MINS=0x11
kfdhdb.mntstmp.hi: 32934511 ; 0x0b0: HOUR=0xf DAYS=0x13 MNTH=0x2 YEAR=0x7da
kfdhdb.mntstmp.lo: 1158852608 ; 0x0b4: USEC=0x0 MSEC=0xac SECS=0x11 MINS=0x11
kfdhdb.secsize: 512 ; 0x0b8: 0x0200
kfdhdb.blksize: 4096 ; 0x0ba: 0x1000
kfdhdb.ausize: 1048576 ; 0x0bc: 0x00100000
...
以上資訊看起來時完整沒問題的,繼續檢視DATA10的。。。。
1.3 在ASM DISK的頭資訊中檢視磁碟的大小:
$ kfed read /dev/oracleasm/disks/DATA09 | egrep "dskname|dsksize"
kfdhdb.dskname: DATA09 ; 0x028: length=6
kfdhdb.dsksize: 65530 ; 0x0c4: 0x0000fffa
$ kfed read /dev/oracleasm/disks/DATA10 | egrep "dskname|dsksize"
kfdhdb.dskname: DATA10 ; 0x028: length=6
kfdhdb.dsksize: 65530 ; 0x0c4: 0x0000fffa
可以發現頭資訊中儲存的大小事65530M
1.4檢視和LUN有關聯的disk大小:
# ls -l /dev/sd* | egrep "8, 161|8, 177"
brw-rw---- 1 root disk 8, 161 Mar 14 11:25 sdk1
brw-rw---- 1 root disk 8, 177 Mar 14 11:25 sdl1
1.5在OS級別檢視磁碟的大小:
# fdisk -l /dev/sdk
Disk /dev/sdk: 68.7 GB, 68719476736 bytes
255 heads, 63 sectors/track, 8354 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdk1 1 7844 63006898+ 83 Linux
# fdisk -l /dev/sdl
Disk /dev/sdl: 68.7 GB, 68719476736 bytes
255 heads, 63 sectors/track, 8354 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdl1 1 7844 63006898+ 83 Linux
以上的資訊顯示磁碟的大小僅為61530M(/dev/sdk1 and /dev/sdl1)
2、使用KFED工具來修正ASM頭資訊中的錯誤磁碟大小:
2.1讀取ASM disk頭資訊並儲存在檔案內
$ kfed read /dev/oracleasm/disks/DATA09 > /tmp/DATA09_header.kfed
2.2 使用文字編輯器編輯/tmp/DATA09_header.kfed,編輯一下資訊:
kfdhdb.dsksize: 65530 ; 0x0c4: 0x0000fffa
to
kfdhdb.dsksize: 61530 ; 0x0c4: 0x0000f05a
儲存修改
對DATA10執行同樣的操作。
$ kfed read /dev/oracleasm/disks/DATA09 > /tmp/DATA10_header.kfed
編輯:
kfdhdb.dsksize: 65530 ; 0x0c4: 0x0000fffa
to
kfdhdb.dsksize: 61530 ; 0x0c4: 0x0000f05a
2.3更新ASM DISK的頭資訊:
$ kfed merge /dev/oracleasm/disks/DATA09 text=/tmp/DATA09_header.kfed
$ kfed merge /dev/oracleasm/disks/DATA10 text=/tmp/DATA10_header.kfed
3、重新掛載ASM的磁碟組並且更新ASM資訊
3.1以正確的許可權登入ASM例項:
$ sqlplus / as sysdba (或者 'sqlplus / as sysasm' 11.1版本中)
3.2重置磁碟的大小:
SQL> alter diskgroup DG1 resize disk DATA09 size 61530 M;
SQL> alter diskgroup DG1 resize disk DATA10 size 61530 M;
3.3重新解除安裝並掛載磁碟組以驗證問題是否得到解決
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10130206/viewspace-1041376/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ASM disk group mount fails with ORA-15036: disk is truncated [ID 1077175.1]ASMAI
- virtualbox中Cannot register the hard disk錯誤解決辦法
- ASM disk group mount fails with ORA-15036ASMAI
- RAC ORA-15096: lost disk write detected錯誤解決方法
- 直接修改ASM disk大小導致ORA-15036ASM
- Ocelot錯誤解決
- 執行SQL發生錯誤!錯誤:disk I/O errorSQLError
- VIM 常用錯誤解決
- sqldeveloper for windows 錯誤解決SQLDeveloperWindows
- vsftpd 錯誤:530 and 500 錯誤解決方法FTP
- latex 錯誤以及解決方案
- ora-27504錯誤解決
- Datastore error in 'dirbdb'錯誤解決ASTError
- ORA-27054 錯誤解決
- mysql與php錯誤解決MySqlPHP
- mysql錯誤解決總結MySql
- PbootCMS 404 錯誤解決方法boot
- 【故障解決】OGG-00446 錯誤解決
- dbfread報錯ValueError錯誤解決方法Error
- 【故障解決】ORA-06502錯誤解決
- HTTP 錯誤 500.19- Internal Server Error 錯誤解決方法HTTPServerError
- dns錯誤怎麼辦 dns錯誤的解決辦法DNS
- HTTP代理錯誤怎麼解決?HTTP
- undefined reference to錯誤的解決方法Undefined
- SAXParseException的錯誤解決之二Exception
- PHP curl error 60 錯誤解決PHPError
- ORA-04091錯誤解決
- ORA-3136 錯誤解決 .
- [Windows] 解決 COM Surrogate 錯誤提示Windows
- AFNetworkingErrorDomain 錯誤解決方法ErrorAI
- [Flashback]ORA-38760錯誤解決
- EXP-00091錯誤解決
- virtualbox 錯誤解決記錄
- INS-40904 錯誤解決
- Mac下面svn錯誤資訊解決Mac
- PHP錯誤“Thisfilehasexpired”的解決方法PHP
- SAP錯誤提示解決辦法
- ClamAV無法更新錯誤解決