ASM 磁盘组安装失败,出现错误ORA-15036: 磁盘<名>被截断

如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!

诗檀软件专业数据库修复团队

服务热线 : 13764045638    QQ号:47079569    邮箱:service@parnassusdata.com

 

适用于:

Oracle Database – 企业版版本 10.2.0.1 11.2.0.1 [版本10.2 11.2]
本文献的信息适用于任何平台。

注释: kfed 是一个Oracle 内部实用工具,不应该使用除非 Oracle Support建议使用,翻译 kfed输出不在本文范围内。

症状

在单个实例、 RAC 和任何 ASM版本中可以看到该问题
尝试安装 ASM 磁盘组 (DG1)失败,出现下列错误:

ORA-15032: not all alterations performed
ORA-15036: disk ‘ORCL:DATA10’ is truncated
ORA-15036: disk ‘ORCL:DATA09’ is truncated

变化

添加两个磁盘 ORCL:DATA09 ORCL:DATA10 ASM 磁盘组DG1.
OS 级别重新设置磁盘大小

原因

系统/存储管理员展示了两个新的LUNs,每个65530 MB ASM使用的OS
ASM
管理员/数据库管理员创建了带有那些LUN ASMLIB磁盘 DATA09 DATA10 ,添加磁盘到磁盘组 DG1,因为磁盘大小设置错误, 系统/存储管理员重新设置磁盘到指定大小 – 61530 MB,但是他们不建议ASM 管理员/数据库管理员进行这个改变,所有在ASM 级别不操作ALTER DISKGROUP RESIZE DISK ,下次尝试安装磁盘组时,会收到上述错误,不能进行磁盘组安装。

解决方法

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 磁盘头

$ kfed read /dev/oracleasm/disks/DATA09

kfbh.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


表明ASM磁盘头看起来良好,对磁盘 DATA10进行同样的操作

1.3. 检查ASM 磁盘头中的磁盘大小:

$ 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

表明两个磁盘头的磁盘大小都是65530 MB

1.4. 检查相关的LUNs (sd devices)的磁盘大小:

# 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

上述表明两个磁盘分区 (/dev/sdk1 and /dev/sdl1) 61530 MB.

2.  对磁盘 DATA09 DATA10,通过更新ASM 磁盘头使用kfed 实用工具纠正磁盘大小信息
2.1. 读取ASM 磁盘头,保存输出到文件:

$ kfed read /dev/oracleasm/disks/DATA09 > /tmp/DATA09_header.kfed

2.2.使用文本编辑器 (例如 vi) 编辑文件 /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 磁盘头:

$ kfed merge /dev/oracleasm/disks/DATA09 text=/tmp/DATA09_header.kfed
$ kfed merge /dev/oracleasm/disks/DATA10 text=/tmp/DATA10_header.kfed

3. 安装磁盘组,在ASM 级别更新磁盘大小信息

3.1. 使用正确的特权登陆 ASM实例

$ sqlplus / as sysdba (or ‘sqlplus / as sysasm’ in ASM version 11.1 and above)

3.2. 重新设置磁盘大小

SQL> alter diskgroup DG1 resize disk DATA09 size 61530 M;
SQL> alter diskgroup DG1 resize disk DATA10 size 61530 M;


3.3.
卸载和安装磁盘组,确认没有错误的情况下安装。

参考文献
NOTE:1539387.1 – ORA-15036 After Applying Patch 12382627
BUG:20416464 – WRONG DISK SIZE SEEN BY ASM

关注刘相兵的新浪微博

扫码加入微信Oracle小密圈,了解Oracle最新技术下载分享资源

Speak Your Mind

沪公网安备 31010802001379号

TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569