ITPub博客

首页 > 数据库 > Oracle > 磁盘故障处理案例

磁盘故障处理案例

原创 Oracle 作者:a960549548 时间:2025-07-02 09:02:49 0 删除 编辑

背景:集群宕机以后,重启报错,DATADG1磁盘组无法启动

1.手动挂起DATADG1磁盘组 报错

1
alter  diskgroup datadg1 mount;

SQ-> alter diskgroup DATADGI mount; alter diskgroup DATÅDGI mount ERROR at line 1: ORA-15032: not all alterations perfomed ORA-15017: diskgroup "DATADGI" cannot be mounted CPA-15063: ASM discovered an insufficient nunber of disks for diskgroup "DATADGI"

后台ASM报错

根据报错 found 0 disks 怀疑 是磁盘组里的磁盘有问题,没有启动

SQL> ALTER DISKGROLP DATADGI mot-NT asm agent NOTE: cache registered group DATADGI number-I incarn=ox41745355 NOTE: cache began mount (first) of group DATADGI number—I incarn=Ox41745355 NOTE: Assigning nunber (I, 2) to disk (/dev/rhdiskpower4) no read quorum in group: required I, found O disks NOTE: cache dismounting (clean) group (DATADGI) NOTE: messaging CKPT to quiesce pins Unix process pid: 3866680, image: oracle@card

2.查询磁盘状态

1
select  name ,path,STATE,MODE_STATUS  from  v$asm_disk;

OCPDGI 0000 FRADGI 0000 PATH /dev/ rhdiskpower4 /dev/ rhdiskpower2 /dev/ rhdiskpower3 /dev/ rhdiskpowero /dev/ rhdiskpowerl STATE NOR4AL NOR4ßL NOR•IAL NOR•IAL NOR•IAL t•it.i.æ 7 ON-IFE- otLIE-

发现磁盘都在,但是磁盘组没法跟磁盘对应起来

3.硬件工程师检查硬盘、以及存储网关都正常,磁盘权限也正常

4.怀疑是磁盘头损坏了,导致磁盘组跟磁盘无法对应

1
select  group_Number,disk_number,mount_status ,header_status  from  v$asm_disk;

sot> / PATH / dev/ rhdi s kpower4 / dev/ rhdi s kpower2 3 / dev/ rhdi s kpower3 / dev/ rhdi s kpowerl / dev/ rhdi s kpowero MOUNT S HEADER STATU MODE sr STATE 0 CLOSED CLO ED CLO ED CACHED CACHED MEMBER CANDIDATE MEMBER MEMBER ONI, INE NI,INE NLINE ONLINE ONLINE NORMAL NORMAL NORMAL NORMAL NORMAL TOTAL MB 1048576 10240 FREE MB LABEL 991687 9844

发现2,3磁盘头状态为CANDIDATE

5.使用kfed查看磁盘头

1
kfed  read  /dev/rhdiskpower2

gr -1 : / nome,' gr a-rent root@carddbl : kfbh. hard: kfbh. type: 0012320 A86E712B l..bh. • rR.K.....v.8 c /dev#/u01/gri d/product/ll. 2. O/'bi n/kfed read /dev/rhdi skpow kfbh. endi an: kfbh. datfmt : block.blk: kfbh. kfbh. block. obj : kfbh. check : kfbh. fcn. base: kfbh. fcn. wrap: kfbh. sparel: kfbh. spare2 : 11 ; 145 ; 35 ; 32 • 2825810219 274655479 ; 2924553004 ; 634348950 ; 1694055377 ; 1565548744 • 204787727 oxooo: ox002 : ox003 : ox004 : ox008: Ox00c : ox014 : ox018: Ox01c : Ox0b ox91 run blk=678326571 (indirect) fi 1 e=977143 Oxae51232c ox25cf6596 Ox64f93bd1 Ox5d5060c8 OxOc34 d00f # .nq+.A...Q#, 110389400 110389410 110389420 110389430 110389440 110389450 25CF6596 7C17A562 6CCED916 D99C89C2 7252174B 64F93BD1 68FCA59E 65205602 937AIBF3 BDB485B2 105EE8F7 5D5060C8 21852838 62BD7BOO 39AE8F2D 08791838 AE51232C OC34DOOF D72DIOA1 918169EA 1457775F ICED63E1

kfbh.type显示异常 正常情况下应该是KFBTYP_DISKHEAD

6.修复2,3磁盘头

从版本10.2.0.5开始ASM 会对disk header做一个额外的备份。即第二AU 的倒数第二个block中备份了一份KFBTYP_DISKHEAD。这个ASM Disk header的作用是当真的KFBTYP_DISKHEAD被意外覆盖或损坏时可以使用Oracle 工具 KFED使用repair选项来修复Disk header

kfed repair //dev/rhdiskpower2

此时检查 磁盘头状态正常,显示为KFBTYP_DISKHEAD

7.一节点的数据库反复重启

修复磁盘头以后,磁盘能够正常挂起,并且数据库能够拉起

但是数据库在运行一段时间后 ,出现宕机

Archived Loq entry 2008950 added for thread 1 sequence 516844 ID Oxffffffffc8S4ead3 dest 1: setting pæsource Manager plan SCHEDULERlOK32DE] MAINTENANCE PLAN via scheduler window Setting Resource Manager plan via parameter sat Jul 02 2022 Starting background process VKRJ•I sat Jul 02 2022 VKRM started with pid-109, OS id—5112108 sat Jul 02 2022 WARNING: Read Failed. group:l disk:o ALI: 5472B offset: 720896 size:8192 ARNING: failed to read mirror side 1 of virtual extent 14 logical extent O of file 264 in group Il, 4076436749) from disk DATADG rrors in file trc: R.å-D0604: error occurred at recursive SQL level 1 R.4-D1115: 10 error reading block from file (block # ) ORA-DIIIO: data file 1: '+DATADG1/ywsmk/datafi1ezsystem.264.909079105' ORA-ISOBI: failed to submit an I/O operation to a disk ORA-27072: File 1/0 error IBM AIX RISC System/600a Error: 16: Device busy Additional Information: 7 Additional information: 112084352 Additional information: -1 sat Jul 02 2022 Decreasing number of real time CMS from 3 to 0

数据库日志显示 IO错误

由于操作系统为AIX,排查两个节点的磁盘参数

1
lsattr -El hdisk20 | grep reserve

发现二节点并没有设置no_reserve

这个参数的作用:这个参数其实是表示操作系统是否持有存储卷的共享锁方式

设置

1
chdev -l hdisk21 -a reserve_policy=no_reserve

设置完成后,一节点能够正常运行

8.二节点gpnpd服务无法启动

ssd/octssd. log 11 :25.294: 11:25.443: 11:25. 558: ssd/octssd. 10 2-31-11-22 16:11 ACFS-9391. • Checkin for existing ADV•M/ACFS installation. . validat?ng ADV"/ ACFS installation files for operating syste 8 CRS-10001:02-ju1-22 16:11 ACES-9392• 6 CRS-10001:02-Ju1-22 16:11 ACES-9393: verifyin? Administrator setup. 8 CRS-IOOOI :02-3U1-22 16:11 ACFS-9308 : Loading nstalled ADV'M/ACFS drivers. 2 CRS-10001:02-Ju1-22 16:11 ACES-9154• . Loading ' oracleadvm. ext' driver. 4 CRS-IOOOI :02-Ju1-22 16:11 ACES-9154: Loadin ' oracleacfs. ext' driver. 4 CRS-10001:02-ju1-22 16:11 ACES-9327• 2 CRS-10001:02-ou1-22 16:11 ACFS-9322: The Cluster Time synchronization service aborted on host carddb2. Details at (:ctss_ccl_ 'ora. gipcd' has failed on server 'carddb2' . . The cluster Time synchroni zation service on host carddb2 is in observer mode. •The Cluster Time synchronization Service aborted on host carddb2. Details at 8 CRS-IOOOI • 11:27. 4 ) CRS-2 sour ce 8 CRS-10001 : 11:29. 633: : Resour ce 11 :29. 759: ' ora. gipcd' ha . veri n ADW/ACFS devices. server ' carddb2' . cornpl ere sm/. . o sctl'. ' or-a. gipcd' has failed on server 'carddb2' . ) ERS-2403 : The Cluster Time synchroni zation service on host carddb2 is in observer mode. 11:29. 834: :The cluster Time synchronization service aborted on host carddb2. Details at (:ctss_ccl_

根据gipcd 日志信息

The Cluster Time synchroni zation service aborted on host ssd/octssd. log 11 :25.294: 'ora. gipcd' has failed on server 'carddb2' . 11:25.443: :The cluster Time synchroni zation service on host carddb2 11:25. 558: The Cluster Time synchroni zation Service aborted on host ssd/octssd. 10 2-31-11-22 16:11 ACFS-9391. 8 CRS-10001:02-ju1-22 16:11 ACES-9392• 6 CRS-10001:02-Ju1-22 16:11 ACES-9393: CRS-IOOOI :02-Ju1-22 16 ACFS-9154 : 4 CRS-IOOOI :02-ju1-22 16:11 ACES-9327• 2 CRS-10001:02-Ju1-22 16:11 ACFS-9322: carddb2. Details is in observer mode. carddb2. Details at 8 CRS-IOOOI • 11:27.4 ) CRS-2 source 8 CRS-10001 : 11 :29.633: : Resour ce 11:29. 759: CRS-IOOOI :02-3U1-22 16:11 ACFS-9308 CRS-IOOOI :02-ju1-22 16:11 ACES-9154• 'ora.gi cd' ha • Checkin for existing ADV"/ACFS installation. . validat?ng ADVM/ACFS installation files for operating syste verify-in? Administrator setup. : Loading nstalled ADV'M/ACFS drivers. . Loading ' oracleadvm. ext' driver. Loadin ' oracleacfs. ext' driver. . Veri n ADVM/ACFS devices. server ' carddb2' . cornpl ete ' or-a. gipcd' has failed on server 'carddb2' . sm/. . o sctl'. : The Cluster Time synchroni zation service on host carddb2 is in observer mode. 11:29. 834: :The cluster Time synchronization service aborted on host carddb2. Details at (:ctss_ccl_

匹配到官方文档Doc ID 2034669.1

CAUSE Network socket files problem. SOLUTION The solution is to shutdown GI with "crsctl stop crs -f", start again after removing all network socket files as root user: —r: /us:/tmp/ . Oracle/' /va:/zmp/ /zmp/ CAUSE Netw•ork socket files problem. SOLU TION The solution is to shutdown GI with "crsctl stop crs -f", start again after removing all network socket files as root user: rm —If /va:/zmp/ Vamp/ . oracle/'

删除以上三个目录的缓存,重启rac,二节点启动成功


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70013625/viewspace-3089729/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Oracle ACE,MySQL 8.0 OCP,PMP,拥有OceanBase OBCP,TiDB PCTP,GoldenDB GDCP等多项认证,ITPUB认证专家,微信公众号:DBA之友。

注册时间:2022-02-08

  • 博文量
    132
  • 访问量
    171519