标签云
asm恢复 bbed bootstrap$ dul In Memory kcbzib_kcrsds_1 kccpb_sanity_check_2 MySQL恢复 ORA-00312 ORA-00607 ORA-00704 ORA-00742 ORA-01110 ORA-01555 ORA-01578 ORA-08103 ORA-600 2131 ORA-600 2662 ORA-600 2663 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-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)
- 操作系统 (103)
- 数据库 (1,717)
- DB2 (22)
- MySQL (74)
- Oracle (1,577)
- Data Guard (52)
- EXADATA (8)
- GoldenGate (24)
- ORA-xxxxx (160)
- ORACLE 12C (72)
- ORACLE 18C (6)
- ORACLE 19C (15)
- ORACLE 21C (3)
- Oracle 23ai (8)
- Oracle ASM (68)
- Oracle Bug (8)
- Oracle RAC (54)
- Oracle 安全 (6)
- Oracle 开发 (28)
- Oracle 监听 (28)
- Oracle备份恢复 (576)
- Oracle安装升级 (94)
- Oracle性能优化 (62)
- 专题索引 (5)
- 勒索恢复 (81)
- PostgreSQL (18)
- PostgreSQL恢复 (6)
- SQL Server (28)
- SQL Server恢复 (9)
- TimesTen (7)
- 达梦数据库 (2)
- 生活娱乐 (2)
- 至理名言 (11)
- 虚拟化 (2)
- VMware (2)
- 软件开发 (37)
- Asp.Net (9)
- JavaScript (12)
- PHP (2)
- 小工具 (20)
-
最近发表
- 近1万个数据文件的恢复case
- 不当使用_allow_resetlogs_corruption参数引起ORA-600 2662错误
- CSSD signal 11 in thread clssnmRcfgMgrThread故障处理
- 使用sid方式直接访问pdb(USE_SID_AS_SERVICE_LISTENER)
- ORA-00069: cannot acquire lock — table locks disabled for xxxx
- ORA-600 [4000] [a]相关bug
- sql server数据库“正在恢复”故障处理
- 如何判断数据文件是否处于begin backup状态
- CDM备份缺少归档打开数据库报ORA-600 kcbzib_kcrsds_1故障处理
- ORA-07445: exception encountered: core dump [expgod()+43] [IN_PAGE_ERROR]
- 2025年第一起ORA-600 16703故障恢复
- _gc_undo_affinity=FALSE触发ORA-01558
- public授权语句
- 中文环境显示AR8MSWIN1256(阿拉伯语字符集)
- 处理 Oracle 块损坏
- Oracle各种类型坏块说明和处理
- fio测试io,导致磁盘文件系统损坏故障恢复
- ORA-742 写丢失常见bug记录
- Oracle 19c 202501补丁(RUs+OJVM)-19.26
- 避免 19c 数据库性能问题需要考虑的事项 (Doc ID 3050476.1)
标签归档:asm恢复
找回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 彻底损坏恢复