在某些情况下,可能因为误操作,不小先drop diskgroup,这个时候千万别紧张,出现此类故障,可以通过kfed进行完美恢复(数据0丢失).如果进一步损坏了相关asm disk,那后续恢复就很麻烦了,可能需要使用dul扫描磁盘来进行抢救性恢复,而且可能导致数据丢失.
创建测试磁盘组xifenfei
[grid@xifenfei ~]$ sqlplus / as sysasm
SQL*Plus: Release 11.2.0.4.0 Production on Thu Apr 30 15:12:08 2015
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> select name,path,header_status from v$asm_disk;
NAME PATH HEADER_STATU
------------------------------ ------------------------------ ------------
/dev/asm-disk3 CANDIDATE
DATA_0000 /dev/asm-disk1 MEMBER
DATA_0001 /dev/asm-disk2 MEMBER
SQL> create diskgroup xifenfei external redundancy disk '/dev/asm-disk3';
Diskgroup created.
SQL> select name,path,header_status from v$asm_disk;
NAME PATH HEADER_STATU
------------------------------ ------------------------------ ------------
XIFENFEI_0000 /dev/asm-disk3 MEMBER
DATA_0000 /dev/asm-disk1 MEMBER
DATA_0001 /dev/asm-disk2 MEMBER
使用/dev/asm-disk3这个磁盘创建磁盘组xifenfei
创建表,存储在xifenfei磁盘组中
[oracle@xifenfei ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Thu Apr 30 15:14:55 2015
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 Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options
SQL> create tablespace xifenfei datafile '+xifenfei' size 100M;
Tablespace created.
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
+DATA/xifenfei/datafile/system.256.878224279
+DATA/xifenfei/datafile/sysaux.257.878224279
+DATA/xifenfei/datafile/undotbs1.258.878224279
+DATA/xifenfei/datafile/users.259.878224279
+XIFENFEI/xifenfei/datafile/xifenfei.256.878397315
SQL> create table t_xifenfei tablespace xifenfei
2 as select * from dba_objects;
Table created.
SQL> select count(*) from t_xifenfei;
COUNT(*)
----------
86259
通过在磁盘组中创建表空间,从而实现表xifenfei存放在测试磁盘组中
尝试删除磁盘组xifenfei
SQL> drop diskgroup xifenfei;
drop diskgroup xifenfei
*
ERROR at line 1:
ORA-15039: diskgroup not dropped
ORA-15053: diskgroup "XIFENFEI" contains existing files
SQL> drop diskgroup xifenfei including contents;
drop diskgroup xifenfei including contents
*
ERROR at line 1:
ORA-15039: diskgroup not dropped
ORA-15027: active use of diskgroup "XIFENFEI" precludes its dismount
[grid@xifenfei ~]$ asmcmd
ASMCMD> lsof
DB_Name Instance_Name Path
xifenfei xifenfei +data/xifenfei/controlfile/current.260.878224379
xifenfei xifenfei +data/xifenfei/datafile/sysaux.257.878224279
xifenfei xifenfei +data/xifenfei/datafile/system.256.878224279
xifenfei xifenfei +data/xifenfei/datafile/undotbs1.258.878224279
xifenfei xifenfei +data/xifenfei/datafile/users.259.878224279
xifenfei xifenfei +data/xifenfei/onlinelog/group_1.261.878224381
xifenfei xifenfei +data/xifenfei/onlinelog/group_2.262.878224383
xifenfei xifenfei +data/xifenfei/onlinelog/group_3.263.878224385
xifenfei xifenfei +data/xifenfei/tempfile/temp.264.878224395
xifenfei xifenfei +xifenfei/xifenfei/datafile/xifenfei.256.878397315
由于xifenfei磁盘组被实例使用,因此磁盘组无法删除,报ORA-15027错误
由于xifenfei磁盘组中有文件,因此磁盘组无法删除,报ORA-15053错误
如果这两个阻止你误删除磁盘组的警告依然不能救你,那我也不好多说啥了,只能向我一样继续往下
关闭数据库实例,删除磁盘组
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> drop diskgroup xifenfei;
drop diskgroup xifenfei
*
ERROR at line 1:
ORA-15039: diskgroup not dropped
ORA-15053: diskgroup "XIFENFEI" contains existing files
SQL> drop diskgroup xifenfei including contents;
Diskgroup dropped.
SQL> select name,path,header_status from v$asm_disk;
NAME PATH HEADER_STATU
------------------------------ ------------------------------ ------------
/dev/asm-disk3 FORMER
DATA_0000 /dev/asm-disk1 MEMBER
DATA_0001 /dev/asm-disk2 MEMBER
SQL> alter diskgroup xifenfei mount;
alter diskgroup xifenfei mount
*
ERROR at line 1:
ORA-15032: not all alterations performed
ORA-15017: diskgroup "XIFENFEI" cannot be mounted
ORA-15063: ASM discovered an insufficient number of disks for diskgroup
"XIFENFEI"
磁盘组被drop之后,无法正常mount,mount之时报ORA-15063凑无
kfed恢复删除磁盘组
[grid@xifenfei ~]$ kfed read /dev/asm-disk3 >/tmp/disk3-0-0
[grid@xifenfei ~]$ kfed read /dev/asm-disk3 blkn=1 >/tmp/disk3-0-1
[grid@xifenfei ~]$ kfed read /dev/asm-disk3 aun=1 >/tmp/disk3-1-0
通过vi修改这些/tmp/disk3-*中的部分值
[grid@xifenfei ~]$ kfed merge /dev/asm-disk3 text=/tmp/disk3-0-0
[grid@xifenfei ~]$ kfed merge /dev/asm-disk3 blkn=1 text=/tmp/disk3-0-1
[grid@xifenfei ~]$ kfed merge /dev/asm-disk3 aun=1 text=/tmp/disk3-1-0
查询修复后的asm disk
SQL> col path for a30
SQL> set lines 150
SQL> select name,path,header_status from v$asm_disk;
NAME PATH HEADER_STATU
------------------------------ ------------------------------ ------------
/dev/asm-disk3 MEMBER
DATA_0000 /dev/asm-disk1 MEMBER
DATA_0001 /dev/asm-disk2 MEMBER
尝试mount xifenfei 磁盘组
SQL> alter diskgroup xifenfei mount;
Diskgroup altered.
SQL> select name,path,header_status from v$asm_disk;
NAME PATH HEADER_STATU
------------------------------ ------------------------------ ------------
XIFENFEI_0000 /dev/asm-disk3 MEMBER
DATA_0000 /dev/asm-disk1 MEMBER
DATA_0001 /dev/asm-disk2 MEMBER
测试恢复后磁盘组
SQL> startup
ORACLE instance started.
Total System Global Area 952020992 bytes
Fixed Size 2258960 bytes
Variable Size 306186224 bytes
Database Buffers 637534208 bytes
Redo Buffers 6041600 bytes
Database mounted.
Database opened.
SQL> select count(*) from t_xifenfei;
COUNT(*)
----------
86259
这里证明,当磁盘组被误删除后,立即停止进一步损坏,可以通过kfed进行完美恢复
创造与魔法 安卓版v1.0.0750
创造与魔法是一款开放世界手游,在游戏中玩家可探索这个奇妙的世
创造与魔法修改版 最新版v1.0.0750
创造与魔法无限点券版是款探索冒险游戏,该款游戏的操作还是蛮自
战争与文明官方版本 安卓版v1.7.16
战争与文明是一款由上海邮通科技有限公司开发的战争策略游戏,这
迷你世界0元领皮肤无限迷你币版 最新安卓版v1.43.0
迷你世界0元购买皮肤版是这款开放沙盒冒险建造游戏的特殊破解版
创造与魔法无限经验版 安卓版v1.0.0750
创造与魔法无限经验版是款可以改造环境,整个游戏的自由度还是蛮