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

盖国强 2019-05-08
15
0 0
摘要:客户由于断电导致了存储故障,进而使得部分磁盘对主机不可见,某个磁盘组无法加载,此时客户尝试过重启启动数据库,就遇到了错误。

问题描述

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的学习和认识,还要继续加深!

「喜欢文章,快来给作者赞赏墨值吧」

评论

0
0
Oracle
订阅
欢迎订阅Oracle频道,订阅之后可以获取最新资讯和更新通知。
墨值排行
今日本周综合
近期活动
全部
相关课程
全部