模拟failgroup磁盘丢失处理。

磁盘组:datadg
磁盘:/dev/asm-diskb,/dev/asm-diskc
冗余级别:normal,一个failgroup只有一个磁盘

测试过程:

1:mount磁盘组启动数据库写入测试数据。
2:关闭虚拟机拔掉一块硬盘/dev/asm-diskb
3:拔掉硬盘之后看磁盘组是否能还能工作并查询数据。

下面开始

首先进行第一步插入测试数据
create table testtab(id int);
insert into testtab values(1);
insert into testtab values(2);
commit;
select * from testtab;

然后进行第二步发现磁盘组datadg不能mount,查看日志如下
SQL> ALTER DISKGROUP DATADG MOUNT  /* asm agent *//* {0:0:2} */
NOTE: cache registered group DATADG number=1 incarn=0xd22857aa
NOTE: cache began mount (first) of group DATADG number=1 incarn=0xd22857aa
Mon Jul 14 12:38:57 2014
ASM Health Checker found 1 new failures
NOTE: Assigning number (1,1) to disk (/dev/asm-diskc)
NOTE: GMON heartbeating for grp 1
GMON querying group 1 at 17 for pid 17, osid 1386
Mon Jul 14 12:39:03 2014
NOTE: Assigning number (1,0) to disk ()
GMON querying group 1 at 18 for pid 17, osid 1386
NOTE: cache dismounting (clean) group 1/0xD22857AA (DATADG)
NOTE: messaging CKPT to quiesce pins Unix process pid: 1386, image: oracle@asmstudy (TNS
 V1-V3)
NOTE: dbwr not being msg'd to dismount
NOTE: lgwr not being msg'd to dismount
NOTE: cache dismounted group 1/0xD22857AA (DATADG)
NOTE: cache ending mount (fail) of group DATADG number=1 incarn=0xd22857aa
NOTE: cache deleting context for group DATADG 1/0xd22857aa
GMON dismounting group 1 at 19 for pid 17, osid 1386
NOTE: Disk  in mode 0x7f marked for de-assignment
NOTE: Disk DATADG_0001 in mode 0x7f marked for de-assignment
ERROR: diskgroup DATADG was not mounted
WARNING: Disk Group DATADG containing spfile for this instance is not mounted
ORA-15032: not all alterations performed
ORA-15040: diskgroup is incomplete
ORA-15042: ASM disk "0" is missing from group number "1"
ERROR: ALTER DISKGROUP DATADG MOUNT  /* asm agent *//* {0:0:2} */
Mon Jul 14 12:39:03 2014
ASM Health Checker found 1 new failures

意思很明白了,就是少了一个disk,所以mount失败了。
但是datadg是normal冗余的,另外一个磁盘还可以用,所以我们强制mount

[grid@asmstudy ~]$ sqlplus / as sysasm

SQL*Plus: Release 11.2.0.4.0 Production on Mon Jul 14 12:43:33 2014

Copyright (c) 1982, 2013, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Automatic Storage Management option

SQL> alter diskgroup datadg mount force;

Diskgroup altered.


SQL> select name,path,failgroup,mount_status from v$asm_disk where group_number=1;

NAME          PATH      FAILGROUP   MOUNT_STATUS
------------------------------ -------------------- -------------------- --------------------
_DROPPED_0000_DATADG        DATADG_0000   MISSING
DATADG_0001         /dev/asm-diskc     DATADG_0001   CACHED

发现上面有块盘是丢失状态,我们启动数据库然后查询数据,而数据还在,因为normal级别的冗余有2个数据备份,
一个failgroup存放primary copy,另一个failgroup存放备用copy。

现在我们将磁盘还原回去。

关闭虚拟机,然后将磁盘加回去,然后启动,之前删除的是 /dev/asm-diskb

SQL> alter diskgroup datadg add disk '/dev/asm-diskb' name diskb rebalance power 5 wait;
alter diskgroup datadg add disk '/dev/asm-diskb' name diskb rebalance power 5 wait
*
ERROR at line 1:
ORA-15032: not all alterations performed
ORA-15033: disk '/dev/asm-diskb' belongs to diskgroup "DATADG"

报这个错误时因为磁盘设备头文件还存储了之前磁盘组的信息,因此需要清楚头部的信息。

[root@asmstudy ~]# dd if=/dev/zero of=/dev/asm-diskb bs=1M count=200
200+0 records in
200+0 records out
209715200 bytes (210 MB) copied, 5.86341 s, 35.8 MB/s

然后再次执行上面的命令增加磁盘到磁盘组datadg中,并等待其平衡数据到新的磁盘中
具体可以查询视图v$asm_operation

SQL> alter diskgroup datadg add disk '/dev/asm-diskb' name diskb rebalance power 5 wait;
Diskgroup altered.

然后就可以查询v$asm_disk视图,恢复原样了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值