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‘;

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

时间: 2024-10-17 00:54:53

asm磁盘全部是损坏恢复总结的相关文章

oracle11g ASM磁盘组头部损坏修复(asm修复2)

--编译KFED [[email protected] lib]$cd $ORACLE_HOME/rdbms/lib [[email protected] lib]$ pwd /u01/app/oracle/product/10.2.0/db_1/rdbms/lib [[email protected] lib]$ make -f ins_rdbms.mk ikfed [[email protected] ~]$ kfed read /dev/oracleasm/disks/VOL1 kfbh.

AMDU恢复ASM磁盘组数据(测)

--umount ASMCMD> umoung -a asmdg commands: md_backup, md_restor lsattr, setattr cd, cp, du, find, help, ls, lsct, lsdg, lsof, mkalias mkdir, pwd, rm, rmalias chdg, chkdg, dropdg, iostat, lsdsk, lsod, mkdg, mount offline, online, rebal, remap, umount

案例:Oracle非常规恢复 ASM磁盘组diskgroup被删除使用kfed进行完美恢复

Oracle RAC环境ASM磁盘组被强制删除,使用kfed工具完美恢复误删除磁盘组案例 在某些情况下,可能因为误操作,不小先drop diskgroup,这个时候千万别紧张,出现此类故障,可以通过kfed进行完美恢复(数据0丢失).如果进一步损坏了相关asm disk,那后续恢复就很麻烦了,可能需要使用dul扫描磁盘来进行抢救性恢复,而且可能导致数据丢失. 1.创建Oracle环境中的测试磁盘组 [[email protected] ~]$ sqlplus / as sysasm SQL*Pl

asm 磁盘分区丢失恢复----惜分飞

有朋友反馈,他们做了xx存储的双活之后,重启主机发现gi无法正常启动,分析发现所有该存储的磁盘分区信息丢失,导致asmlib无法发现磁盘(使用分区做asm disk)类似如下错误(磁盘分区丢失) --fdisk -l 显示部分结果 Disk /dev/mapper/datahds1: 1099.5 GB, 1099511627776 bytes 255 heads, 63 sectors/track, 133674 cylinders Units = cylinders of 16065 * 5

ORACLE 11G RAC ASM磁盘组全部丢失后的恢复

一.环境描述(1)Oracle 11.2.0.3 RAC ON Oracle Linux 6 x86_64,只有一个ASM外部冗余磁盘组--DATA:(2)OCR,VOTEDISK,DATAFILE,CONTROLFILE,SPFILE全部位于这个磁盘组上:二.故障描述(1)存储故障导致ASM磁盘丢失.(2)CRS因为OCR和VOTEDISK的丢失,除了OHAS还联机外,CLUSTERWARE服务都已经停止.三.备份情况(1)RMAN备份:包括controlfile,database,spfil

rac某节点asm磁盘启动失败故障定位及恢复

RAC环境: oracle数据库:oracle11gr2 操作系统:rhel6.4_x86_64 故障现象: 1.rac其一个节点的oracle与asm相关的进程和实例启动失败: 查看方法:ps -ef|grep ora_ ps -ef|grep asm_ crsctl stat res -t (只能看到节点1上启动的oracle实例和asm实例) 2.在节点2上查看不到asm磁盘设备标签: 查看方法:oracleasm listdisks  (没有内容) ll /dev/oracleasm/d

ASM 磁盘、目录的管理

--======================== -- ASM 磁盘.目录的管理 --======================== ASM磁盘是ASM体系结构的重要组成部分,ASM磁盘由ASM实例来定位.管理,本文主要讲述ASM磁盘组.故障组等等. 有关ASM实例及ASM数据库的创建请参考:创建ASM实例及ASM数据库 一.相关概念 1.ASM 磁盘组 ASM存储管理除了ASM实例之外,最大的组成部分就是ASM磁盘组.一个ASM磁盘组由过多个ASM磁盘组成 一个磁盘组内可以存放多个数据文

RHEL6系统boot分区损坏恢复方法

不小心格式化掉boot分区,或者删除了/boot下的引导文件,会出现以下提示 解决办法: 一.插入linux安装光盘(此以rhel6.4为例) 二.开机选择光驱启动,选择修复模式 三.语言选择english 四.键盘布局选择us 五.由于使用的是光盘引导,所以安装镜像选择本地cd/dvd 六.选择是否启用网络,由于是本地光驱引导所以可以选择NO不启用 七.选择继续 八.下图告知系统根目录是在/mnt/sysimage   可使用chroot命令更改 九.选择启动shell shell  star

D盘磁盘未被格式化恢复数据的方法

磁盘未被格式化说明这个盘的文件系统结构损坏了.在平时如果数据不重要,那么可以直接格式化就能用了.但是有的时候里面的数据很重要,那么就必须先恢复出数据再格式化.具体恢复方法可以看正文了解(不格式化的恢复方法) 工具/软件:AuroraDataRecovery 步骤1:先下载并解压程序打开后,直接双击需要恢复的分区,然后右击软件图标选择<以管理员身份运行>(如果是xp系统可以直接双击打开软件) 步骤2:软件运行后,直接双击需要恢复的分区 步骤3:程序会很快将找出的文件,放到与要恢复盘同名的目录中