如果数据存放于asm磁盘组之上,当asm磁盘组无法mount起来,则意味着无法打开数据库。我们假设磁盘头部没有损坏,只是盘符变了,但无法正确设置asm_diskstring参数。
实验环境: rhel5 + oracle10.2.0.4rac+raw+asm
通过此次实验你将掌握以下知识点:
1. 初步了解如何使用oracle两款内部工具amdu/kfed
2. 在asm磁盘组无法mount的情况下,如何对应物理磁盘和asmdisk的关系
3. 当asm_diskstring设置不全时,如何补全并将磁盘组mount起来。
sql> alter diskgroup all mountsat nov 29 22:15:09 2014note: cache registered group data number=1 incarn=0x5bc84523sat nov 29 22:15:09 2014note: hbeat: instance first (grp 1)sat nov 29 22:15:13 2014note: start heartbeating (grp 1)note: cache opening disk 0 of grp 1: data_0000 path:/dev/raw/raw3 <<<<<<
----------------------------- disk report n0010 ------------------------------disk path: /dev/sdd1unique disk id:disk label:physical sector size: 512 bytesdisk size: 1019 megabytesgroup name: datadisk name: data_0000failure group name: data_0000disk number: 0header status: 3disk creation time: 2014/11/05 12:55:10.506000last mount time: 2014/11/29 23:14:47.663000compatibility version: 0x0a100000disk sector size: 512 bytesdisk size in aus: 1019 ausgroup redundancy: 1metadata block size: 4096 bytesau size: 1048576 bytesstride: 113792 ausgroup creation time: 2014/11/05 12:55:10.486000file 1 block 1 location: au 2----------------------------- disk report n0012 ------------------------------disk path: /dev/sde1 <<<<<<<<<<<<<<<<<磁盘全路径unique disk id:disk label:physical sector size: 512 bytesdisk size: 1019 megabytesgroup name: datadisk name: data_0001failure group name: data_0001disk number: 1 <<<<<<<<<<<<<<<<<<<<<<< alter diskgroup data mount;diskgroup altered.
接下来就可以启动数据库了。
以上简单地使用了amdu/kfed命令,这两款具都可以实现在asm磁盘组无法mount的情况下对磁盘读写,其中kfed命令还可以用于磁盘头部的修复(10.2.5.0以上的数据库全有自动备份),还可以做异常恢复:从asm磁盘直接恢复数据文件,总之也是个非常强大的工具。
