欢迎光临
我们一直在努力

asm磁盘全部是损坏恢复总结

实验环境:

centos6.4

oracle 11.2.0.4

使用的是udev方式映射的raw,然后做的是asm

本来想把sdb,sdc这个块磁盘替换掉。

sdb => 1g:sdb1,sdb2,sdb3. 2g:sdb5,sdb6,sdb7

sdc => 2g:sdc1,sdc2,sdc3,sdc5,sdc6

做成了2个磁盘组

OCR sdb1,sdb2,sdb3  raw1,raw2,raw3,raw4

DATA sdb5,sdb6,sdb7 sdc1 raw5 ,raw6,raw7,raw8

FRA  sdc2,sdc3,sdc5,sdc6 raw9 ,raw10,raw11,raw12

asm磁盘组的磁盘不建议用扩展分区,

——–

想把这2块盘换掉

退出虚拟机,又加了2块磁盘

sdd :1g:sdd1,sdd2,sdd3. 2g:sdd5,sdd6,sdd7

sde :2g:sde1,sde2,sde3,sde5,sde6

然后在/etc/udev/rules.d/60-raw.rules 添加下面内容

ACTION==”add”, KERNEL==”sdd1″, RUN+=”/bin/raw /dev/raw/raw12 %N”

ACTION==”add”, KERNEL==”sdd2″, RUN+=”/bin/raw /dev/raw/raw13 %N”

ACTION==”add”, KERNEL==”sdd3″, RUN+=”/bin/raw /dev/raw/raw14 %N”

ACTION==”add”, KERNEL==”sdd5″, RUN+=”/bin/raw /dev/raw/raw15 %N”

ACTION==”add”, KERNEL==”sdd6″, RUN+=”/bin/raw /dev/raw/raw16 %N”

ACTION==”add”, KERNEL==”sdd7″, RUN+=”/bin/raw /dev/raw/raw17 %N”

ACTION==”add”, KERNEL==”sde1″, RUN+=”/bin/raw /dev/raw/raw18 %N”

ACTION==”add”, KERNEL==”sde2″, RUN+=”/bin/raw /dev/raw/raw19 %N”

ACTION==”add”, KERNEL==”sde3″, RUN+=”/bin/raw /dev/raw/raw20 %N”

ACTION==”add”, KERNEL==”sde5″, RUN+=”/bin/raw /dev/raw/raw21 %N”

ACTION==”add”, KERNEL==”sde6″, RUN+=”/bin/raw /dev/raw/raw22 %N”

KERNEL==”raw[1-9]”,OWNER=”grid”,GROUP=”asmadmin” MODE=”660″

KERNEL==”raw1[0-9]”,OWNER=”grid”,GROUP=”asmadmin” MODE=”660″

KERNEL==”raw2[0-2]”,OWNER=”grid”,GROUP=”asmadmin” MODE=”660″

然后进如asm实例

su – grid

sqlplus / as sysasm

select name,path from v$asm_disk;

name              path

——- ———-

OCR_0000 /dev/raw/raw1 

OCR_0001 /dev/raw/raw2 

OCR_0002 /dev/raw/raw3 

DATA_0000 /dev/raw/raw4 

DATA_0001 /dev/raw/raw5 

DATA_0002 /dev/raw/raw6 

DATA_0003 /dev/raw/raw7 

FRA_0000 /dev/raw/raw8 

FRA_0001 /dev/raw/raw9 

FRA_0002 /dev/raw/raw10 

FRA_0003 /dev/raw/raw11 

发现到了新添加的磁盘

然后进行替换

OCR

alter diskgroup ocr add disk ‘/dev/raw/raw12′,’/dev/raw/raw13′,’/dev/raw/raw14’;

alter diskgroup ocr drop disk ‘OCR_0000′,’OCR_0001′,’OCR_0002’;

DATA

alter diskgroup data add disk ‘/dev/raw/raw15′,’/dev/raw/raw16′,’/dev/raw/raw17′,’/dev/raw/raw18’;

alter diskgroup data drop disk ‘DATA_0000′,’DATA_0001′,’DATA_0002′,’DATA_0003’;

FRA

alter diskgroup fra add disk ‘/dev/raw/raw19′,’/dev/raw/raw20′,’/dev/raw/raw21′,’/dev/raw/raw22’;

alter diskgroup fra drop disk ‘FRA_0000′,’FRA_0001′,’FRA_0002′,’FRA_0003’;

select group_number,operation,power,state from v$asm_operation;

等这里面没有信息,说明数据全部移动完。

—–

然后关闭虚拟机。

把sdb和sdc这2块对应的盘从虚拟机中删除

还在rac2节点加了一块非共享盘

开机

发现磁盘的对应关系发生了改变。

rac1

sdd  成了sdb

sde  成了sdc

rac2

sdd  成了sdc

sde  成了sdd

盘符全乱了。

自己重新映射了一下。发现还是有问题。

然后决定不用盘符映射。用scsi_id方式映射,这样共享盘是不能分区的。

在没做其他操作下,

把2块共享盘的分区全部删除。这样就在共享盘上的ocr,vote disk,data,fra的信息全部丢失。

然后在/etc/udev/rules.d/60-raw.rules做如下改动

ACTION==”add”, KERNEL==”sd*”, PROGRAM==”/sbin/scsi_id -g -u -d /dev/$name”,

RESULT==”360022a11000e085d0de717f500000003″, RUN+=”/bin/raw /dev/raw/raw1 %N”

ACTION==”add”, KERNEL==”sd*”, PROGRAM==”/sbin/scsi_id -g -u -d /dev/$name”,

RESULT==”360022a11000e085d0de7372c0000002e”, RUN+=”/bin/raw /dev/raw/raw2 %N”

ACTION==”adc”, KERNEL==”sd*”, PROGRAM==”/sbin/scsi_id -g -u -d /dev/$name”,

RESULT==”360022a11000e085d0de7372c0000018e”, RUN+=”/bin/raw /dev/raw/raw2 %N”

KERNEL==”raw[1-3]”, OWNER=”grid”, GROUP=”oinstall”, MODE=”660″

— 

RESULT==”360022a11000e085d0de717f500000003″ 

这个值的获得 root#/sbin/scsi_id -g -u -d /dev/sdd 

linux版本不同,命令的路径不同。

映射后,最好重启下。

===

这样,系统重启后,发现crs宕掉,也无法启动。

asm实例无法启动,磁盘组也不存在。

===============

先重建crs

2节点都做

root#./crsctl stop crs

pwd

/oracle/app/11.2.0/grid/crs/install

root#./rootcrs.pl -deconfig -force

然后

2节点都做

pwd

/oracle/app/11.2.0/grid

./root.sh

重建成功

===============

那就做ocr和vote disk恢复吧。数据库还有一份备份。

pwd 

/oracle/app/11.2.0/grid/bin

rac1

root#./crsctl stop has

rac2

root#./crsctl stop has

ocr的备份在rac2上

rac2

root#./crsctl start crs -excl -nocrs  启动到独占模式

grid$sqlplus / as sysasm

进入到asm实例成功

创建磁盘组

create diskgroup OCR external redundancy disk ‘/dev/raw/raw1’

ATTRIBUTE ‘compatible.asm’=’11.2.0.0.0’;

===============================================

ATTRIBUTE ‘compatible.asm’=’11.2.0.0.0’;

这句比较关键,如果不带,恢复OCR无法成功。

/ocrconfig –restore backup00.ocr

无法完成

PROT-35: The configured OCR locations are not accessible.

==============================================

然后恢复OCR

root#./ocrconfig -restore /oracle/app/11.2.0/grid/cdata/rac-cluster/backup.ocr

成功

恢复vote disk

root#./crsctl replace votedisk +OCR

sqlplus / as sysasm

create spfile from memory;

——-

rac2

root#./crsctl stop has

rac1 

root#./crsctl start crs

rac2 

root#./crsctl start crs

=====

然后

rac1 

用+ASM1登录时出错

sqlplus / as sysasm

ps -ef|grep asm

            asm2

export ORACLE_SID=+ASM2

sqlplus / as sysasm

进入成功

exit

vi /etc/oratab

+ASM2 –>+ASM1

oraenv

+ASM1

sqlplus / as sysasm

实例进入成功

ps -ef |grep asm

—-

然后重新创建DATA和FRA磁盘组

sqlplus / as sysasm

create diskgroup data add disk ‘/dev/raw/raw2’;

create diskgroup fra add disk ‘/dev/raw/raw3’;

===============

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。