暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

断电故障导致 ASM DiskGroup 故障及恢复案例

原创 盖国强 2019-05-08
1461

问题描述

ASM在RAC环境中的使用已经极其广泛,但是往往由于对ASM的认识不够,很多时候在处理故障时会陷入谜团,前一段在客户环境中就遇到了一个ASM的棘手问题。

客户由于断电导致了存储故障,进而使得部分磁盘对主机不可见,某个磁盘组无法加载,此时客户尝试过重启启动数据库,就遇到了如下错误:

Thu Jun 25 05:00:11 2009
Errors in file /u01/app/oracle/admin/billing/udump/billing1_ora_8184.trc:
ORA-15062: ASM disk is globally closed
ORA-15025: could not open disk '/dev/rdsk/c12t0d2'
ORA-27041: unable to open file
HPUX-ia64 Error: 6: No such device or address
Additional information: 3
Thu Jun 25 05:00:29 2009
Errors in file /u01/app/oracle/admin/billing/udump/billing1_ora_8761.trc:
ORA-15062: ASM 磁盘已全局关闭
ORA-15025: 无法打开磁盘 '/dev/rdsk/c12t0d2'
ORA-27041: 无法打开文件
HPUX-ia64 Error: 6: No such device or address
Additional information: 3
Thu Jun 25 05:00:29 2009
Errors in file /u01/app/oracle/admin/billing/udump/billing1_ora_8759.trc:
ORA-15062: ASM disk is globally closed
ORA-15025: could not open disk '/dev/rdsk/c12t0d2'
ORA-27041: unable to open file
HPUX-ia64 Error: 6: No such device or address
Additional information: 3


专家解答

注意在这个提示中,有一个重要提示:ORA-15062: ASM 磁盘已全局关闭。

也就是说,由于磁盘无法访问,ASM将磁盘在全局关闭,ASM磁盘组也不可用。

进一步的,如果强制打开数据库,Oracle会将该磁盘组的所有文件Offline离线处理,然后Open数据库:

Thu Jun 25 06:10:41 2009
KCF: write/open error block=0xce0db online=1
     file=148 +DG_DATA_03/billing/datafile/tbs_table_20.256.654268217
     error=15081 txt: ''
Automatic datafile offline due to write error on
file 148: +DG_DATA_03/billing/datafile/tbs_table_20.256.654268217
KCF: write/open error block=0x72b online=1
     file=21 +DG_DATA_03/billing/datafile/tbs_idx_20.265.654273237
     error=15078 txt: ''
Automatic datafile offline due to write error on
file 21: +DG_DATA_03/billing/datafile/tbs_idx_20.265.654273237
KCF: write/open error block=0x4c6e9 online=1
     file=50 +DG_DATA_03/billing/datafile/tbs_dailytable_20.270.656595577
     error=15078 txt: ''

这就造成了进一步的一个现象,在数据库看来,始终有一个磁盘组是Mounted的状态,数据库无法连接,也就无法访问其中的数据:

SQL> select name,state from v$asm_diskgroup_stat;
NAME                           STATE
------------------------------ -----------
DG_DATA_01                     CONNECTED
DG_DATA_02                     CONNECTED
DG_DATA_03                     MOUNTED

这其实很正常,Oracle不访问该DG中的磁盘,该磁盘就保持了MOUNTED状态,我们只要尝试访问该磁盘中的文件,该磁盘组就会显示为数据库连接的CONNECTED状态。

我们简单的通过RMAN的COPY命令就激活了该磁盘组的磁盘访问:
RMAN> copy datafile '+DG_DATA_03/billing/datafile/tbs_20.264.654269073' to '/backup/a.dbf';
对ASM的学习和认识,还要继续加深!

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论