kfed 磁盘组 误删除恢复

来源:这里教程网 时间:2026-03-03 20:07:28 作者:

查看现在磁盘组的信息 set linesize 1000 col path for a30 select GROUP_NUMBER,DISK_NUMBER,STATE,REDUNDANCY,OS_MB,TOTAL_MB,FREE_MB,NAME,PATH from v$asm_disk order by 1,2; SQL>  GROUP_NUMBER DISK_NUMBER STATE   REDUNDA      OS_MB   TOTAL_MB    FREE_MB NAME   PATH ------------ ----------- -------- ------- ---------- ---------- ---------- ------------------------------ ------------------------------    0        5 NORMAL   UNKNOWN 5120       0 0   /dev/asm-diska    1        0 NORMAL   UNKNOWN      10240   10240       6270 ARCH_0000   /dev/asm-diskc    2        0 NORMAL   UNKNOWN      10240   10240       4249 DATA_0000   /dev/asm-diskb    3        0 NORMAL   UNKNOWN 2048    2048       1740 OCR_VOTE_0000   /dev/asm-diskd    3        1 NORMAL   UNKNOWN 2048    2048       1739 OCR_VOTE_0001   /dev/asm-diske    3        2 NORMAL   UNKNOWN 2048    2048       1739 OCR_VOTE_0002   /dev/asm-diskf 创建磁盘组 SQL>  set line 300 col name for a15 select GROUP_NUMBER,NAME,STATE,TYPE,TOTAL_MB,FREE_MB from v$asm_diskgroup;SQL> SQL> SQL>  GROUP_NUMBER NAME      STATE TYPE   TOTAL_MB    FREE_MB ------------ --------------- ----------- ------ ---------- ----------    1 ARCH      MOUNTED EXTERN      10240 6267    2 DATA      MOUNTED EXTERN      10240 4249    3 OCR_VOTE      MOUNTED NORMAL       6144 5218    4 TEST      MOUNTED EXTERN       5120 5025 SQL>  col path for a30 select GROUP_NUMBER,DISK_NUMBER,STATE,REDUNDANCY,OS_MB,TOTAL_MB,FREE_MB,NAME,PATH from v$asm_disk order by 1,2; SQL> SQL>  GROUP_NUMBER DISK_NUMBER STATE   REDUNDA      OS_MB   TOTAL_MB    FREE_MB NAME    PATH ------------ ----------- -------- ------- ---------- ---------- ---------- --------------- ------------------------------    1        0 NORMAL   UNKNOWN      10240   10240       6267 ARCH_0000    /dev/asm-diskc    2        0 NORMAL   UNKNOWN      10240   10240       4249 DATA_0000    /dev/asm-diskb    3        0 NORMAL   UNKNOWN 2048    2048       1740 OCR_VOTE_0000   /dev/asm-diskd    3        1 NORMAL   UNKNOWN 2048    2048       1739 OCR_VOTE_0001   /dev/asm-diske    3        2 NORMAL   UNKNOWN 2048    2048       1739 OCR_VOTE_0002   /dev/asm-diskf    4        0 NORMAL   UNKNOWN 5120    5120       5025 TEST_0000    /dev/asm-diska 查询数据文件 SQL> set pagesize 0 SQL> select name from v$dbfile; +DATA/rac11g/datafile/users.259.1084042585 +DATA/rac11g/datafile/undotbs1.258.1084042585 +DATA/rac11g/datafile/sysaux.257.1084042585 +DATA/rac11g/datafile/system.256.1084042585 +DATA/rac11g/datafile/example.265.1084042679 +DATA/rac11g/datafile/undotbs2.266.1084042817 +DATA/rac11g/datafile/test.271.1084444975 +DATA/rac11g/datafile/jt_sjgc.272.1092405397 +DATA/rac11g/datafile/jt_netcargps.273.1092405397 +DATA/rac11g/datafile/jt_busgps.274.1092405399 +DATA/rac11g/datafile/jt_taxigps.275.1092405399 +DATA/rac11g/datafile/audit_data.276.1133477037 create tablespace zc datafile '+test' size 10M; create user zc identified by "zc" default tablespace zc; grant dba to zc; conn zc/zc create table t1 as select level as id from dual connect by level<=10; select * from t1; 备份ASM磁盘头数据,方便后面对比分析及恢复: 磁盘头信息备份 kfed read /dev/sdg >/tmp/sdg01 块号1备份 kfed read /dev/sdg blkn=1 >/tmp/sdg02 aun1备份 kfed read /dev/sdg aun=1  >/tmp/sdg03 模拟问题 删除磁盘组,模拟误操作: SQL> drop diskgroup test including contents; drop diskgroup test including contents * ERROR at line 1: ORA-15039: diskgroup not dropped ORA-15027: active use of diskgroup "TEST" precludes its dismount 停库后继续删除: [oracle@rac1 ~]$ srvctl status database -d  rac11g Instance rac11g is running on node rac1 Instance rac11g2 is running on node rac2 [oracle@rac1 ~]$ srvctl stop database -d  rac11g You have mail in /var/spool/mail/oracle [oracle@rac1 ~]$ srvctl status database -d  rac11g Instance rac11g is not running on node rac1 Instance rac11g2 is not running on node rac2 You have mail in /var/spool/mail/oracle '' 成功删除掉 test 磁盘组: 另外节点dismount然后drop SQL>  drop diskgroup test including contents; Diskgroup dropped. SQL>  启动数据库报错: [oracle@rac1 ~]$ srvctl start  database -d  rac11g PRCR-1079 : Failed to start resource ora.rac11g.db CRS-5017: The resource action "ora.TEST.dg start" encountered the following error:  ORA-15032: not all alterations performed ORA-15017: diskgroup "TEST" cannot be mounted ORA-15040: diskgroup is incomplete . For details refer to "(:CLSN00107:)" in "/u01/11.2.0/grid/log/rac2/agent/crsd/oraagent_grid//oraagent_grid.log". CRS-2674: Start of 'ora.TEST.dg' on 'rac2' failed CRS-2632: There are no more servers to try to place resource 'ora.rac11g.db' on that would satisfy its placement policy CRS-5017: The resource action "ora.rac11g.db start" encountered the following error:  ORA-01157: cannot identify/lock data file 13 - see DBWR trace file ORA-01110: data file 13: '+TEST/rac11g/datafile/zc.256.1162077921' . For details refer to "(:CLSN00107:)" in "/u01/11.2.0/grid/log/rac1/agent/crsd/oraagent_oracle//oraagent_oracle.log". CRS-2674: Start of 'ora.rac11g.db' on 'rac1' failed 查看磁盘信息 SQL> set line 300 col name for a15 select GROUP_NUMBER,NAME,STATE,TYPE,TOTAL_MB,FREE_MB from v$asm_diskgroup; SQL> SQL>  GROUP_NUMBER NAME      STATE TYPE   TOTAL_MB    FREE_MB ------------ --------------- ----------- ------ ---------- ----------    1 ARCH      MOUNTED EXTERN      10240 6266    2 DATA      MOUNTED EXTERN      10240 4249    3 OCR_VOTE      MOUNTED NORMAL       6144 5218 SQL> col path for a30 select GROUP_NUMBER,DISK_NUMBER,STATE,REDUNDANCY,OS_MB,TOTAL_MB,FREE_MB,NAME,PATH from v$asm_disk order by 1,2;SQL>  GROUP_NUMBER DISK_NUMBER STATE   REDUNDA      OS_MB   TOTAL_MB    FREE_MB NAME    PATH ------------ ----------- -------- ------- ---------- ---------- ---------- --------------- ------------------------------    0        0 NORMAL   UNKNOWN 5120       0 0    /dev/asm-diska    1        0 NORMAL   UNKNOWN      10240   10240       6266 ARCH_0000    /dev/asm-diskc    2        0 NORMAL   UNKNOWN      10240   10240       4249 DATA_0000    /dev/asm-diskb    3        0 NORMAL   UNKNOWN 2048    2048       1740 OCR_VOTE_0000   /dev/asm-diskd    3        1 NORMAL   UNKNOWN 2048    2048       1739 OCR_VOTE_0001   /dev/asm-diske    3        2 NORMAL   UNKNOWN 2048    2048       1739 OCR_VOTE_0002   /dev/asm-diskf 开始恢复 备份删除后的磁盘头信息 磁盘头信息备份 kfed read /dev/sdg >/tmp/sdg01xxx 块号1备份 kfed read /dev/sdg blkn=1 >/tmp/sdg02xxx aun1备份 kfed read /dev/sdg aun=1  >/tmp/sdg03xxx 通过diff命令进行对比: [grid@rac1 tmp]$ diff -C 1 /tmp/sdg01 /tmp/sdg01xxx|grep "kfdhdb.hdrsts" ! kfdhdb.hdrsts:                        3 ; 0x027: KFDHDR_MEMBER ! kfdhdb.hdrsts:                        4 ; 0x027: KFDHDR_FORMER 通过对比删除前和删除后磁盘头数据的不同部分,可以看到kfdhdb.hdrsts行有差异。 尝试改回删除前磁盘头的信息: --修改sdg01xxx文件 kfdhdb.hdrsts:状态值从4改为3,状态名称从KFDHDR_FORMER改为KFDHDR_MEMBER [grid@rac1 tmp]$  vi /tmp/sdg01xxx kfdhdb.hdrsts:                        4 ; 0x027: KFDHDR_FORMER 改成 kfdhdb.hdrsts:                        3 ; 0x027: KFDHDR_MEMBER  kfed merge /dev/sdg text=/tmp/sdg01xxx  检查磁盘组:可以看到CJC磁盘组了 SQL> set line 300 col name for a15 select GROUP_NUMBER,NAME,STATE,TYPE,TOTAL_MB,FREE_MB from v$asm_diskgroup;SQL> SQL>  GROUP_NUMBER NAME      STATE TYPE   TOTAL_MB    FREE_MB ------------ --------------- ----------- ------ ---------- ----------    1 ARCH      MOUNTED EXTERN      10240 6266    2 DATA      MOUNTED EXTERN      10240 4249    3 OCR_VOTE      MOUNTED NORMAL       6144 5218    0 TEST      DISMOUNTED 0     0 挂载磁盘组 alter diskgroup test mount; SQL> alter diskgroup test mount; Diskgroup altered. SQL> set line 300 col name for a15 select GROUP_NUMBER,NAME,STATE,TYPE,TOTAL_MB,FREE_MB from v$asm_diskgroup;SQL> SQL>  GROUP_NUMBER NAME      STATE TYPE   TOTAL_MB    FREE_MB ------------ --------------- ----------- ------ ---------- ----------    1 ARCH      MOUNTED EXTERN      10240 6266    2 DATA      MOUNTED EXTERN      10240 4249    3 OCR_VOTE      MOUNTED NORMAL       6144 5218    4 TEST      MOUNTED EXTERN       5120 5007 启动数据库 [oracle@rac1 ~]$ srvctl start  database -d  rac11g You have mail in /var/spool/mail/oracle [oracle@rac1 ~]$  查看数据 [oracle@rac1 ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Tue Feb 27 23:44:10 2024 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, Real Application Clusters, Automatic Storage Management, OLAP, Data Mining and Real Application Testing options SQL>  select * from zc.t1; ID ---------- 1 2 3 4 5 6 7 8 9 10 10 rows selected.

相关推荐