标签云
asm恢复 bbed bootstrap$ dul kcbzib_kcrsds_1 kccpb_sanity_check_2 kcratr_nab_less_than_odr kgegpa MySQL恢复 ORA-00312 ORA-00704 ORA-00742 ORA-01110 ORA-01200 ORA-01555 ORA-01578 ORA-01595 ORA-600 2662 ORA-600 3020 ORA-600 4000 ORA-600 4137 ORA-600 4193 ORA-600 4194 ORA-600 16703 ORA-600 kcbzib_kcrsds_1 ORA-600 KCLCHKBLK_4 ORA-600 kdsgrp1 ORA-15042 ORA-15196 ORACLE 12C oracle dul ORACLE PATCH Oracle Recovery Tools oracle加密恢复 oracle勒索 oracle勒索恢复 oracle异常恢复 ORACLE恢复 Oracle 恢复 ORACLE数据库恢复 oracle 比特币 OSD-04016 YOUR FILES ARE ENCRYPTED 勒索恢复 比特币加密文章分类
- Others (2)
- 中间件 (2)
- WebLogic (2)
- 操作系统 (106)
- 数据库 (1,805)
- DB2 (22)
- MySQL (80)
- Oracle (1,640)
- Data Guard (53)
- EXADATA (8)
- GoldenGate (24)
- ORA-xxxxx (166)
- ORACLE 12C (72)
- ORACLE 18C (6)
- ORACLE 19C (15)
- ORACLE 21C (3)
- Oracle 23ai (8)
- Oracle ASM (69)
- Oracle Bug (8)
- Oracle RAC (54)
- Oracle 安全 (6)
- Oracle 开发 (28)
- Oracle 监听 (29)
- Oracle备份恢复 (613)
- Oracle安装升级 (102)
- Oracle性能优化 (62)
- 专题索引 (5)
- 勒索恢复 (86)
- PostgreSQL (33)
- pdu工具 (7)
- PostgreSQL恢复 (11)
- SQL Server (32)
- SQL Server恢复 (13)
- TimesTen (7)
- 达梦数据库 (3)
- 达梦恢复 (1)
- 生活娱乐 (2)
- 至理名言 (11)
- 虚拟化 (2)
- VMware (2)
- 软件开发 (43)
- Asp.Net (9)
- JavaScript (12)
- PHP (2)
- 小工具 (26)
-
最近发表
- open数据库报ora-600 kdsgrp1故障处理
- expdp dmp 导出不完整导入ORA-39059 ORA-39246 故障抢救数据
- mysql drop database 恢复思路
- PRVG-11975 : The I/O scheduler parameter of device “/dev/sdm” did not match the expected value on nodes
- obet(Oracle Block Editor Tool)第二版发布
- Oracle数据块编辑工具( Oracle Block Editor Tool)-obet
- Oracle坏块修复工具:Patch_blk
- ORA-01172 ORA-01151故障处理
- C_OBJ#_INTCOL#坏块导致数据库无法open故障处理
- ORA-600 kkkicreatecgmap:!efn3
- Oracle 19c 202510补丁(RUs+OJVM)-19.29
- 记录一次raid恢复之后数据库故障处理(ora-01200,ORA-26101,ORA-600)
- nbu备份文件img格式直接rman恢复
- ORA-600 kokasgi1故障处理(sys被重命名)
- Patch_SCN for Linux 功能完善
- ORA-600 2662错误处理-202510
- system表空间丢失部分文件恢复
- arm环境vg损坏mysql数据库恢复
- redhat系列7/8进入单用户模式
- Failed to open \EFI\redhat\grubx64.efi – Not Found 故障处理
标签归档:asm异常
使用dul恢复asm中数据
大家都知道新版本的odu可以在asm不启动的情况下挖数据文件,其实在新版本的dul中,也可以绕过asm挖数据文件,而且操作起来更加方便.
环境准备
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for Linux: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
--查询asm disk
SQL> select group_number,DISK_NUMBER,PATH
2 from v$asm_disk where group_number<>0;
GROUP_NUMBER DISK_NUMBER PATH
------------ ----------- --------------------
1 0 /dev/raw/raw2
1 1 /dev/raw/raw3
SQL> conn chf/xifenfei
Connected.
--创建测试表
SQL> create table t_xifenfei
2 as
3 select object_id,object_name from dba_objects where rownum<10;
Table created.
SQL> select * from t_xifenfei;
OBJECT_ID OBJECT_NAME
---------- --------------------------------
44 I_USER1
28 CON$
15 UNDO$
29 C_COBJ#
3 I_OBJ#
25 PROXY_ROLE_DATA$
39 I_IND1
51 I_CDEF2
9 rows selected.
--数据文件
SQL> select name from v$datafile;
NAME
----------------------------------------------------------------------
+XIFENFEI/asm10g/datafile/system.256.786578479
+XIFENFEI/asm10g/datafile/undotbs1.258.786578481
+XIFENFEI/asm10g/datafile/sysaux.257.786578481
+XIFENFEI/asm10g/datafile/users.259.786578481
+XIFENFEI/asm10g/datafile/xff.265.786578851
--关闭数据库
SQL> shutdown immediate;
ORA-01031: insufficient privileges
SQL> conn / as sysdba
Connected.
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
--关闭asm
[oracle@xifenfei home]$ export ORACLE_SID=+ASM
[oracle@xifenfei home]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Fri Jun 22 00:18:18 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> shutdown immediate
ASM diskgroups dismounted
ASM instance shutdown
SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
[oracle@xifenfei home]$ ps -ef|grep ASM
oracle 18885 10980 0 00:18 pts/0 00:00:00 grep ASM
[oracle@xifenfei home]$ ps -ef|grep ora_
oracle 18887 10980 0 00:18 pts/0 00:00:00 grep ora_
初始化参数配置
[oracle@xifenfei dul]$ vi init.dul db_block_size=8192 control_file = control.dul dc_segments=100000 osd_word_size = 32 osd_big_endian_flag=false osd_dba_file_bits=10 osd_c_struct_alignment=32 osd_file_leader_size=1 osd_word_size = 32 dc_columns=2000000 dc_tables=10000 dc_objects=1000000 dc_users=400 dc_segments=100000 control_file = control.dul db_block_size=8192 export_mode=false compatible=10 BUFFER=10485760
控制文件配置
[oracle@xifenfei dul]$ more control.dul disk /dev/raw/raw2 disk /dev/raw/raw3 0 1 +XIFENFEI/asm10g/datafile/system.256.786578479 1 2 +XIFENFEI/asm10g/datafile/undotbs1.258.786578481 2 3 +XIFENFEI/asm10g/datafile/sysaux.257.786578481 4 4 +XIFENFEI/asm10g/datafile/users.259.786578481 6 5 +XIFENFEI/asm10g/datafile/xff.265.786578851
使用dul恢复表测试
--启动dul
[oracle@xifenfei dul]$ ./dul
Data UnLoader: 10.2.0.5.13 - Internal Only - on Thu Jun 21 23:49:46 2012
with 64-bit io functions
Copyright (c) 1994 2012 Bernard van Duijnen All rights reserved.
Strictly Oracle Internal Use Only
DUL: Warning: Recreating file "dul.log"
Disk group XIFENFEI, dul group_cid 0
Discovered disk /dev/raw/raw2 as diskgroup XIFENFEI, disk number 0 size 784 Mb File1 starts at 2, dul_disk_cid 0
Discovered disk /dev/raw/raw3 as diskgroup XIFENFEI, disk number 1 size 7059 Mb without File1 meta data, dul_disk_cid 1
DUL: Warning: Dictionary cache DC_ASM_EXTENTS is empty
DUL: Error: Filedir block not allocated, file does not exist
DUL: Error: Could not load asm meta data for group XIFENFEI file 9
Oracle data file size 503324672, block size 8192
Found db_id = 123111609
Found db_name = ASM10G
Oracle data file size 26222592, block size 8192
Oracle data file size 251666432, block size 8192
Oracle data file size 5251072, block size 8192
--加载数据字典
DUL> bootstrap;
Probing file = 1, block = 377
. unloading table BOOTSTRAP$
DUL: Warning: block number is non zero but marked deferred trying to process it anyhow
57 rows unloaded
DUL: Warning: Dictionary cache DC_BOOTSTRAP is empty
Reading BOOTSTRAP.dat 57 entries loaded
Parsing Bootstrap$ contents
DUL: Warning: Recreating file "dict.ddl"
Generating dict.ddl for version 10
OBJ$: segobjno 18, file 1 block 121
TAB$: segobjno 2, tabno 1, file 1 block 25
COL$: segobjno 2, tabno 5, file 1 block 25
USER$: segobjno 10, tabno 1, file 1 block 89
Running generated file "@dict.ddl" to unload the dictionary tables
. unloading table OBJ$ 50806 rows unloaded
. unloading table TAB$ 1560 rows unloaded
. unloading table COL$ 54822 rows unloaded
. unloading table USER$ 57 rows unloaded
Reading USER.dat 57 entries loaded
Reading OBJ.dat 50806 entries loaded and sorted 50806 entries
Reading TAB.dat 1560 entries loaded
Reading COL.dat 54822 entries loaded and sorted 54822 entries
Reading BOOTSTRAP.dat 57 entries loaded
DUL: Warning: Recreating file "dict.ddl"
Generating dict.ddl for version 10
OBJ$: segobjno 18, file 1 block 121
TAB$: segobjno 2, tabno 1, file 1 block 25
COL$: segobjno 2, tabno 5, file 1 block 25
USER$: segobjno 10, tabno 1, file 1 block 89
TABPART$: segobjno 266, file 1 block 2121
INDPART$: segobjno 271, file 1 block 2161
TABCOMPART$: segobjno 288, file 1 block 2297
INDCOMPART$: segobjno 293, file 1 block 2345
TABSUBPART$: segobjno 278, file 1 block 2217
INDSUBPART$: segobjno 283, file 1 block 2257
IND$: segobjno 2, tabno 3, file 1 block 25
ICOL$: segobjno 2, tabno 4, file 1 block 25
LOB$: segobjno 2, tabno 6, file 1 block 25
COLTYPE$: segobjno 2, tabno 7, file 1 block 25
TYPE$: segobjno 181, tabno 1, file 1 block 1297
COLLECTION$: segobjno 181, tabno 2, file 1 block 1297
ATTRIBUTE$: segobjno 181, tabno 3, file 1 block 1297
LOBFRAG$: segobjno 299, file 1 block 2393
LOBCOMPPART$: segobjno 302, file 1 block 2425
UNDO$: segobjno 15, file 1 block 105
TS$: segobjno 6, tabno 2, file 1 block 57
PROPS$: segobjno 96, file 1 block 721
Running generated file "@dict.ddl" to unload the dictionary tables
. unloading table OBJ$
DUL: Warning: Recreating file "OBJ.ctl"
50806 rows unloaded
. unloading table TAB$
DUL: Warning: Recreating file "TAB.ctl"
1560 rows unloaded
. unloading table COL$
DUL: Warning: Recreating file "COL.ctl"
54822 rows unloaded
. unloading table USER$
DUL: Warning: Recreating file "USER.ctl"
57 rows unloaded
. unloading table TABPART$ 72 rows unloaded
. unloading table INDPART$ 80 rows unloaded
. unloading table TABCOMPART$ 0 rows unloaded
. unloading table INDCOMPART$ 0 rows unloaded
. unloading table TABSUBPART$ 0 rows unloaded
. unloading table INDSUBPART$ 0 rows unloaded
. unloading table IND$ 2213 rows unloaded
. unloading table ICOL$ 3618 rows unloaded
. unloading table LOB$ 528 rows unloaded
. unloading table COLTYPE$ 1688 rows unloaded
. unloading table TYPE$ 1885 rows unloaded
. unloading table COLLECTION$ 551 rows unloaded
. unloading table ATTRIBUTE$ 7051 rows unloaded
. unloading table LOBFRAG$ 1 row unloaded
. unloading table LOBCOMPPART$ 0 rows unloaded
. unloading table UNDO$ 21 rows unloaded
. unloading table TS$ 7 rows unloaded
. unloading table PROPS$ 27 rows unloaded
Reading USER.dat 57 entries loaded
Reading OBJ.dat 50806 entries loaded and sorted 50806 entries
Reading TAB.dat 1560 entries loaded
Reading COL.dat 54822 entries loaded and sorted 54822 entries
Reading TABPART.dat 72 entries loaded and sorted 72 entries
Reading TABCOMPART.dat 0 entries loaded and sorted 0 entries
Reading TABSUBPART.dat 0 entries loaded and sorted 0 entries
Reading INDPART.dat 80 entries loaded and sorted 80 entries
Reading INDCOMPART.dat 0 entries loaded and sorted 0 entries
Reading INDSUBPART.dat 0 entries loaded and sorted 0 entries
Reading IND.dat 2213 entries loaded
Reading LOB.dat 528 entries loaded
Reading ICOL.dat 3618 entries loaded
Reading COLTYPE.dat 1688 entries loaded
Reading TYPE.dat 1885 entries loaded
Reading ATTRIBUTE.dat 7051 entries loaded
Reading COLLECTION.dat 551 entries loaded
Reading BOOTSTRAP.dat 57 entries loaded
Reading LOBFRAG.dat 1 entries loaded and sorted 1 entries
Reading LOBCOMPPART.dat 0 entries loaded and sorted 0 entries
Reading UNDO.dat 21 entries loaded
Reading TS.dat 7 entries loaded
Reading PROPS.dat 27 entries loaded
Database character set is ZHS16GBK
Database national character set is AL16UTF16
--恢复表
DUL> unload table chf.t_xifenfei;
. unloading table T_XIFENFEI 9 rows unloaded
验证恢复数据库
[oracle@xifenfei dul]$ ll CHF_T_XIFENFEI* -rw-r--r-- 1 oracle oinstall 269 Jun 22 00:26 CHF_T_XIFENFEI.ctl -rw-r--r-- 1 oracle oinstall 134 Jun 22 00:26 CHF_T_XIFENFEI.dat [oracle@xifenfei dul]$ more CHF_T_XIFENFEI.ctl load data CHARACTERSET UTF8 infile 'CHF_T_XIFENFEI.dat' insert into table "CHF"."T_XIFENFEI" fields terminated by whitespace ( "OBJECT_ID" CHAR(2) enclosed by X'22' ,"OBJECT_NAME" CHAR(16) enclosed by X'22' ) [oracle@xifenfei dul]$ more CHF_T_XIFENFEI.dat "20" "ICOL$" "44" "I_USER1" "28" "CON$" "15" "UNDO$" "29" "C_COBJ#" "3" "I_OBJ#" "25" "PROXY_ROLE_DATA$" "39" "I_IND1" "51" "I_CDEF2"
找回ASM中数据文件
很多时候由于asm不能正常启动,导致数据丢失。下面提供两种方法找回asm中的数据文件
一.使用AMDU工具
AMDU是Oracle 11g里自带的一个免费的工具,用于分析ASM磁盘组的元数据以及从不能mount的磁盘组中往外抽取数据文件“NOTE:553639.1 Placeholder for AMDU binaries and using with ASM 10g”明确指出:AMDU也可用于10g,并提供了可用于10g的AMDU的各个操作系统的版本供大家下载。
1.设置LD_LIBRARY_PATH
rac1-> export LD_LIBRARY_PATH=/tmp/amdu
2.查看asm磁盘信息
rac1-> ./amdu -diskstring '/dev/raw/raw*'
amdu_2012_03_05_03_17_19/
rac1-> cd amdu_2012_03_05_03_17_19/
rac1-> ls
report.txt
rac1-> more report.txt
-*-amdu-*-
******************************* AMDU Settings ********************************
ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1
System name: Linux
Node name: rac1
Release: 2.6.9-89.0.0.0.1.ELhugemem
Version: #1 SMP Tue May 19 04:38:38 EDT 2009
Machine: i686
amdu run: 05-MAR-12 03:17:19
Endianess: 1
--------------------------------- Operations ---------------------------------
------------------------------- Disk Selection -------------------------------
-diskstring '/dev/raw/raw*'
------------------------------ Reading Control -------------------------------
------------------------------- Output Control -------------------------------
********************************* DISCOVERY **********************************
----------------------------- DISK REPORT N0001 ------------------------------
Disk Path: /dev/raw/raw23
Unique Disk ID:
Disk Label:
Physical Sector Size: 512 bytes
Disk Size: 156 megabytes
** NOT A VALID ASM DISK HEADER. BAD VALUE IN FIELD blksize_kfdhdb **
----------------------------- DISK REPORT N0002 ------------------------------
Disk Path: /dev/raw/raw11
Unique Disk ID:
Disk Label:
Physical Sector Size: 512 bytes
Disk Size: 156 megabytes
** NOT A VALID ASM DISK HEADER. BAD VALUE IN FIELD blksize_kfdhdb **
----------------------------- DISK REPORT N0003 ------------------------------
Disk Path: /dev/raw/raw32
Unique Disk ID:
Disk Label:
Physical Sector Size: 512 bytes
Disk Size: 156 megabytes
** NOT A VALID ASM DISK HEADER. BAD VALUE IN FIELD blksize_kfdhdb **
----------------------------- DISK REPORT N0004 ------------------------------
Disk Path: /dev/raw/raw31
Unique Disk ID:
Disk Label:
Physical Sector Size: 512 bytes
Disk Size: 156 megabytes
** NOT A VALID ASM DISK HEADER. BAD VALUE IN FIELD blksize_kfdhdb **
----------------------------- DISK REPORT N0005 ------------------------------
Disk Path: /dev/raw/raw12
Unique Disk ID:
Disk Label:
Physical Sector Size: 512 bytes
Disk Size: 156 megabytes
** NOT A VALID ASM DISK HEADER. BAD VALUE IN FIELD blksize_kfdhdb **
----------------------------- DISK REPORT N0006 ------------------------------
Disk Path: /dev/raw/raw2
Unique Disk ID:
Disk Label:
Physical Sector Size: 512 bytes
Disk Size: 1976 megabytes
Group Name: DATA
Disk Name: DATA_0001
Failure Group Name: DATA_0001
Disk Number: 1
Header Status: 3
Disk Creation Time: 2012/03/01 22:32:39.289000
Last Mount Time: 2012/03/05 02:10:02.771000
Compatibility Version: 0x0a100000
Disk Sector Size: 512 bytes
Disk size in AUs: 1976 AUs
Group Redundancy: 1
Metadata Block Size: 4096 bytes
AU Size: 1048576 bytes
Stride: 113792 AUs
Group Creation Time: 2012/03/01 22:32:39.221000
File 1 Block 1 location: AU 0
----------------------------- DISK REPORT N0007 ------------------------------
Disk Path: /dev/raw/raw1
Unique Disk ID:
Disk Label:
Physical Sector Size: 512 bytes
Disk Size: 3137 megabytes
Group Name: DATA
Disk Name: DATA_0000
Failure Group Name: DATA_0000
Disk Number: 0
Header Status: 3
Disk Creation Time: 2012/03/01 22:32:39.289000
Last Mount Time: 2012/03/05 02:10:02.771000
Compatibility Version: 0x0a100000
Disk Sector Size: 512 bytes
Disk size in AUs: 3137 AUs
Group Redundancy: 1
Metadata Block Size: 4096 bytes
AU Size: 1048576 bytes
Stride: 113792 AUs
Group Creation Time: 2012/03/01 22:32:39.221000
File 1 Block 1 location: AU 2
******************************* END OF REPORT ********************************
从这里可以得到信息如下:
1)只有/dev/raw/raw1和raw2是有效的asm磁盘
2)磁盘组只有DATA
3.找出数据文件信息
rac1-> ../amdu -diskstring '/dev/raw/raw*' -dump 'DATA' amdu_2012_03_05_03_19_38/ rac1-> cd amdu_2012_03_05_03_19_38/ rac1-> ls DATA_0001.img DATA.map report.txt rac1-> strings DATA_0001.img |grep DATAFILE DATAFILE DATAFILE DATAFILE DEVDB/DATAFILE/SYSTEM.256.776817753 DEVDB/DATAFILE/SYSAUX.257.776817753 DEVDB/DATAFILE/UNDOTBS1.258.776817753 DEVDB/DATAFILE/USERS.259.776817753 DEVDB/DATAFILE/UNDOTBS2.267.776817909
从这里可以得出数据文件的file号(第一位数字)
4.恢复数据文件
rac1-> ../../amdu -diskstring '/dev/raw/raw*' -extract 'DATA.259' amdu_2012_03_05_03_27_21/ rac1-> cd amdu_2012_03_05_03_27_21/ rac1-> ls -l total 5148 -rw-r--r-- 1 oracle oinstall 5251072 Mar 5 03:27 DATA_259.f -rw-r--r-- 1 oracle oinstall 6468 Mar 5 03:27 report.txt rac1-> dbv file=DATA_259.f DBVERIFY: Release 10.2.0.1.0 - Production on Mon Mar 5 03:28:00 2012 Copyright (c) 1982, 2005, Oracle. All rights reserved. DBVERIFY - Verification starting : FILE = DATA_259.f DBVERIFY - Verification complete Total Pages Examined : 640 Total Pages Processed (Data) : 15 Total Pages Failing (Data) : 0 Total Pages Processed (Index): 2 Total Pages Failing (Index): 0 Total Pages Processed (Other): 26 Total Pages Processed (Seg) : 0 Total Pages Failing (Seg) : 0 Total Pages Empty : 597 Total Pages Marked Corrupt : 0 Total Pages Influx : 0 Highest block SCN : 442362 (0.442362)
二.使用aulasm工具
1.配置ASM使用磁盘
[root@rac1 oracle]# more disk /dev/sdb1 /dev/sdb2
2.使用aulasm
[root@rac1 oracle]# ./aulasm_linux32_trial.bin
AUL : AnySQL UnLoader(MyDUL) for Oracle ASM, release 2.0.0
(C) Copyright Lou Fangxin 2011-2012 (AnySQL.net), all rights reserved.
ASM> help
SET -- set options (BLOCK_SIZE, AU_SIZE, F1B1_DISK, F1B1_AU)
OPEN -- open data file
ADD -- add disk with customized disk num (disk, path)
LIST -- list opened disks information (to)
LSAU -- list file of given AU (disk, au, count)
FILE -- list all file entries in ASM (file, [disk, au, block]).
ALIAS -- list all alias entries in ASM (file, [disk, au, block]).
EXTENT -- list or adjust variable extent (level, au, count).
FMAP -- list file extent (file, [disk, au, block], to)
DUMP -- dump file extent (file, [disk, au, block], offset, to)
COPY -- copy file to os (file, [disk, au, block], to)
QUIT/EXIT -- exit the program.
ASM> open disk
2012-03-05 03:32:48
2012-03-05 03:32:48
ASM> list
2012-03-05 03:32:49
Total Disks = 2, ausize=1048576, blksize=4096
disk size block disk name disk group disk path
===== ======== ===== ================ ============ ========================
0 3137 4096 DATA_0000 DATA /dev/sdb1
1 1976 4096 DATA_0001 DATA /dev/sdb2
f1b1disk = 0, f1b1au = 2, score=256, compat=0x0a100000
file=(1,0,2,1), disk=(2,0,2,2), alias=(6,0,2,6)
2012-03-05 03:32:49
ASM> alias
2012-03-05 03:33:15
file inc parent fstblk flag refer alias
======== ============ ====== ====== ==== ====== ==========================
-1 -1 0 0 4 1 DEVDB
-1 -1 0 1 4 2 DATAFILE
-1 -1 0 1 4 3 CONTROLFILE
-1 -1 0 1 4 4 ONLINELOG
-1 -1 0 1 4 5 TEMPFILE
-1 -1 0 1 4 6 PARAMETERFILE
-1 -1 0 1 4 7 ARCHIVELOG
256 776817753 1 2 18 -1 SYSTEM
257 776817753 1 2 18 -1 SYSAUX
258 776817753 1 2 18 -1 UNDOTBS1
259 776817753 1 2 18 -1 USERS
267 776817909 1 2 18 -1 UNDOTBS2
261 776817829 1 3 18 -1 Current
260 776817829 1 3 18 -1 Current
262 776817833 1 4 18 -1 group_1
263 776817835 1 4 18 -1 group_1
264 776817837 1 4 18 -1 group_2
265 776817841 1 4 18 -1 group_2
268 776818011 1 4 18 -1 group_3
269 776818013 1 4 18 -1 group_3
270 776818015 1 4 18 -1 group_4
271 776818017 1 4 18 -1 group_4
266 776817859 1 5 18 -1 TEMP
272 776818021 1 6 18 -1 spfile
-1 -1 1 7 4 8 2012_03_01
-1 -1 1 7 4 9 2012_03_03
-1 -1 1 7 4 10 2012_03_05
273 776818747 7 8 18 -1 thread_1_seq_2
274 776819571 7 8 18 -1 thread_1_seq_3
275 776819721 7 8 18 -1 thread_2_seq_1
276 776820331 7 8 18 -1 thread_1_seq_4
277 776992321 7 9 18 -1 thread_1_seq_5
278 776992321 7 9 18 -1 thread_2_seq_2
279 777089437 7 10 18 -1 thread_1_seq_6
2012-03-05 03:33:15
ASM> fmap file 259
2012-03-05 03:34:49
fid=259, disk=0, au=56, block=3
siz=5, ecnt=6, eeof=6, flags=17, type=12, alias=109,-1
extid disk auid cnt flg chk
========== ===== ========== ==== === ===
1 0 428 1 0 135
2 1 408 1 0 178
3 0 429 1 0 134
4 1 409 1 0 179
5 0 430 1 0 133
6 1 410 1 0 176
2012-03-05 03:34:49
ASM> copy file 259 to user_259
2012-03-05 03:35:01
2012-03-05 03:35:01
[root@rac1 oracle]# ll
total 6252
-rwxr-xr-x 1 root root 84619 Mar 6 2012 aulasm_linux32_trial.bin
-rw-r--r-- 1 root root 20 Mar 5 02:52 disk
-rw-r--r-- 1 root root 6291456 Mar 5 03:35 user_259
[root@rac1 oracle]# su - oracle
rac1-> dbv file=user_259
DBVERIFY: Release 10.2.0.1.0 - Production on Mon Mar 5 03:35:27 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
DBVERIFY - Verification starting : FILE = user_259
DBVERIFY - Verification complete
Total Pages Examined : 640
Total Pages Processed (Data) : 15
Total Pages Failing (Data) : 0
Total Pages Processed (Index): 2
Total Pages Failing (Index): 0
Total Pages Processed (Other): 26
Total Pages Processed (Seg) : 0
Total Pages Failing (Seg) : 0
Total Pages Empty : 597
Total Pages Marked Corrupt : 0
Total Pages Influx : 0
Highest block SCN : 442362 (0.442362)
通过dbv验证,两个数据文件(文件大小有出入,可能在对待未格式化数据块上,两者处理有出入)可以基本上确定一致,证明两种方法都可以从异常的ASM中获取数据文件
三.总结与比较
1.AMDU完全免费,aulasm超过16块硬盘需要收费
2.AMDU操作相对于aulasm麻烦一点,但是整体还是可以接受
3.获取到asm中的数据文件后恢复数据内容或者open库,那都是容易的事情
如果因为磁盘头损坏太多或者其他原因,以上方法都不能实现抽取asm磁盘组中数据文件,参考:asm disk header 彻底损坏恢复

加我QQ(107644445)

