oracle 磁盘组丢失,模拟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 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 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、付费专栏及课程。

余额充值