联系:手机/微信(+86 17813235971) QQ(107644445)
作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]
客户一个比较久远系统,由于长期没有人维护,导致硬件故障,客户找人进行了硬件恢复之后,发现大量数据文件为0kb
客户这个系统是17年上线,19年进行了一次升级,提出要求,只要能够恢复到19年升级之后的系统状态即可(因为是制造业系统,大量配置信息在里,至于后续产生的数据,无所谓),基于目前的数据文件情况,肯定无法恢复出来(因为字典数据在system01.dbf中)
基于这种情况,我这边在客户恢复的整个目录文件中,再三查找,发现了一个类似rman备份的文件(是21年的),对其进行还原尝试

在还原过程中发现大量坏块,没有办法,最后只能采用一些方法强制rman还原出来备份中的部分文件
Corrupt block 653695 found during reading backup piece, file=H:\BAIDUNETDISK\ORA_DF1080446471_S8590_S1, corr_type=-2Reread of blocknum=653695, file=H:\BAIDUNETDISK\ORA_DF1080446471_S8590_S1, found same corrupt dataReread of blocknum=653695, file=H:\BAIDUNETDISK\ORA_DF1080446471_S8590_S1, found same corrupt dataReread of blocknum=653695, file=H:\BAIDUNETDISK\ORA_DF1080446471_S8590_S1, found same corrupt dataReread of blocknum=653695, file=H:\BAIDUNETDISK\ORA_DF1080446471_S8590_S1, found same corrupt dataReread of blocknum=653695, file=H:\BAIDUNETDISK\ORA_DF1080446471_S8590_S1, found same corrupt dataContinuing reading piece H:\BAIDUNETDISK\ORA_DF1080446471_S8590_S1, no other copies available.Fri Jun 06 14:23:26 2025Cannot read block 1 from S:\DBFILES\BACKUP\ORA_DF1080446471_S8590_S1 - restore failover to read from H:\BAIDUNETDISK\ORA_DF1080446471_S8590_S1ORA-19505: 无法识别文件"S:\DBFILES\BACKUP\ORA_DF1080446471_S8590_S1"ORA-27041: 无法打开文件OSD-04002: 无法打开文件O/S-Error: (OS 2) 系统找不到指定的文件Full restore complete of datafile 2 to datafile copy H:\BAIDUNETDISK\BACKUP\BACKUP\2_SYSAUX01.DBF.Elapsed time: 0:00:04 checkpoint is 16694678523790Full restore complete of datafile 1 to datafile copy H:\BAIDUNETDISK\BACKUP\BACKUP\1_SYSTEM01.DBF.Elapsed time: 0:00:05 checkpoint is 16694678523790 Undo Optimization current scn is 16694646809619Fri Jun 06 14:23:47 2025Datafile rdba reconstruction error, expected block greater than 3305201, got 3304960 for datafile 4Corrupt block 3746806 found during reading backup piece, file=H:\BAIDUNETDISK\ORA_DF1080446471_S8590_S1, corr_type=4Datafile tail reconstruction error, expected tail of 0, got -1601108480 for datafile 4………………Corrupt block 4290319 found during reading backup piece, file=H:\BAIDUNETDISK\ORA_DF1080446471_S8590_S1, corr_type=-2Reread of blocknum=4290319, file=H:\BAIDUNETDISK\ORA_DF1080446471_S8590_S1, found same corrupt dataReread of blocknum=4290319, file=H:\BAIDUNETDISK\ORA_DF1080446471_S8590_S1, found same corrupt dataReread of blocknum=4290319, file=H:\BAIDUNETDISK\ORA_DF1080446471_S8590_S1, found same corrupt dataReread of blocknum=4290319, file=H:\BAIDUNETDISK\ORA_DF1080446471_S8590_S1, found same corrupt dataReread of blocknum=4290319, file=H:\BAIDUNETDISK\ORA_DF1080446471_S8590_S1, found same corrupt dataContinuing reading piece H:\BAIDUNETDISK\ORA_DF1080446471_S8590_S1, no other copies available.Fri Jun 06 16:01:21 2025Hex dump of (file 4, block 1) in trace file C:\APP\XFF\diag\rdbms\orcl\orcl\trace\orcl_ora_15808.trcCorrupt block relative dba: 0x01000001 (file 4, block 1)Bad check value found during deleting datafile copyData in bad block: type: 0 format: 2 rdba: 0x01000001 last change scn: 0x0000.00000000 seq: 0x1 flg: 0x05 spare1: 0x0 spare2: 0x0 spare3: 0x0 consistency value in tail: 0x00000001 check value in block header: 0x0 computed block checksum: 0xa601Reread of blocknum=1, file=H:\BAIDUNETDISK\BACKUP\BACKUP\4_USERS01.DBF. found valid dataSwitch of datafile 4 complete to datafile copy checkpoint is 16126 |
很明显还原出来的system/sysaux文件可能还可以使用,但是users01.dbf肯定不行(从checkpoint is SCN)可以判断出来(users01.dbf是初始化出来的),基于这种情况,利用当前的system和sysaux打开数据库
Fri Jun 13 22:05:31 2025Media Recovery failed with error 1610Fri Jun 13 22:05:31 2025Signalling error 1152 for datafile 1!Signalling error 1152 for datafile 2!Signalling error 1152 for datafile 3!Signalling error 1152 for datafile 4!Checker run found 5 new persistent data failuresRecovery Slave PR00 previously exited with exception 283ORA-283 signalled during: ALTER DATABASE RECOVER database until cancel ...Fri Jun 13 22:05:49 2025ALTER DATABASE RECOVER database using backup controlfile Media Recovery Start started logmerger processParallel Media Recovery started with 20 slavesFri Jun 13 22:05:49 2025Warning: Datafile 3 (H:\BAIDUNETDISK\BACKUP\BACKUP\3_UNDOTBS01.DBF) is offline during full database recovery and will not be recoveredORA-279 signalled during: ALTER DATABASE RECOVER database using backup controlfileALTER DATABASE RECOVER CANCEL Media Recovery CanceledCompleted: ALTER DATABASE RECOVER CANCEL Fri Jun 13 22:06:04 2025alter database open resetlogsRESETLOGS is being done without consistancy checks. This may resultin a corrupted database. The database should be recreated.RESETLOGS after incomplete recovery UNTIL CHANGE 16694678523790Errors in file C:\APP\XFF\diag\rdbms\orcl\orcl\trace\orcl_ora_5812.trc:ORA-00313: 无法打开日志组 1 (用于线程 1) 的成员ORA-00312: 联机日志 1 线程 1: 'H:\BAIDUNETDISK\BACKUP\BACKUP\REDO01.LOG'ORA-27041: 无法打开文件OSD-04002: 无法打开文件O/S-Error: (OS 2) 系统找不到指定的文件Errors in file C:\APP\XFF\diag\rdbms\orcl\orcl\trace\orcl_ora_5812.trc:ORA-00313: 无法打开日志组 2 (用于线程 1) 的成员ORA-00312: 联机日志 2 线程 1: 'H:\BAIDUNETDISK\BACKUP\BACKUP\REDO02.LOG'ORA-27041: 无法打开文件OSD-04002: 无法打开文件O/S-Error: (OS 2) 系统找不到指定的文件Errors in file C:\APP\XFF\diag\rdbms\orcl\orcl\trace\orcl_ora_5812.trc:ORA-00313: 无法打开日志组 3 (用于线程 1) 的成员ORA-00312: 联机日志 3 线程 1: 'H:\BAIDUNETDISK\BACKUP\BACKUP\REDO03.LOG'ORA-27041: 无法打开文件OSD-04002: 无法打开文件O/S-Error: (OS 2) 系统找不到指定的文件Errors in file C:\APP\XFF\diag\rdbms\orcl\orcl\trace\orcl_ora_5812.trc:ORA-00313: 无法打开日志组 1 (用于线程 1) 的成员ORA-00312: 联机日志 1 线程 1: 'H:\BAIDUNETDISK\BACKUP\BACKUP\REDO01.LOG'ORA-27041: 无法打开文件OSD-04002: 无法打开文件O/S-Error: (OS 2) 系统找不到指定的文件Clearing online redo logfile 1 H:\BAIDUNETDISK\BACKUP\BACKUP\REDO01.LOGClearing online log 1 of thread 1 sequence number 33772Errors in file C:\APP\XFF\diag\rdbms\orcl\orcl\trace\orcl_ora_5812.trc:ORA-00313: 无法打开日志组 1 (用于线程 1) 的成员ORA-00312: 联机日志 1 线程 1: 'H:\BAIDUNETDISK\BACKUP\BACKUP\REDO01.LOG'ORA-27041: 无法打开文件OSD-04002: 无法打开文件O/S-Error: (OS 2) 系统找不到指定的文件Errors in file C:\APP\XFF\diag\rdbms\orcl\orcl\trace\orcl_ora_5812.trc:ORA-00313: 无法打开日志组 1 (用于线程 1) 的成员ORA-00312: 联机日志 1 线程 1: 'H:\BAIDUNETDISK\BACKUP\BACKUP\REDO01.LOG'ORA-27041: 无法打开文件OSD-04002: 无法打开文件O/S-Error: (OS 2) 系统找不到指定的文件Clearing online redo logfile 1 completeErrors in file C:\APP\XFF\diag\rdbms\orcl\orcl\trace\orcl_ora_5812.trc:ORA-00313: 无法打开日志组 2 (用于线程 1) 的成员ORA-00312: 联机日志 2 线程 1: 'H:\BAIDUNETDISK\BACKUP\BACKUP\REDO02.LOG'ORA-27041: 无法打开文件OSD-04002: 无法打开文件O/S-Error: (OS 2) 系统找不到指定的文件Clearing online redo logfile 2 H:\BAIDUNETDISK\BACKUP\BACKUP\REDO02.LOGClearing online log 2 of thread 1 sequence number 33773Errors in file C:\APP\XFF\diag\rdbms\orcl\orcl\trace\orcl_ora_5812.trc:ORA-00313: 无法打开日志组 2 (用于线程 1) 的成员ORA-00312: 联机日志 2 线程 1: 'H:\BAIDUNETDISK\BACKUP\BACKUP\REDO02.LOG'ORA-27041: 无法打开文件OSD-04002: 无法打开文件O/S-Error: (OS 2) 系统找不到指定的文件Errors in file C:\APP\XFF\diag\rdbms\orcl\orcl\trace\orcl_ora_5812.trc:ORA-00313: 无法打开日志组 2 (用于线程 1) 的成员ORA-00312: 联机日志 2 线程 1: 'H:\BAIDUNETDISK\BACKUP\BACKUP\REDO02.LOG'ORA-27041: 无法打开文件OSD-04002: 无法打开文件O/S-Error: (OS 2) 系统找不到指定的文件Clearing online redo logfile 2 completeErrors in file C:\APP\XFF\diag\rdbms\orcl\orcl\trace\orcl_ora_5812.trc:ORA-00313: 无法打开日志组 3 (用于线程 1) 的成员ORA-00312: 联机日志 3 线程 1: 'H:\BAIDUNETDISK\BACKUP\BACKUP\REDO03.LOG'ORA-27041: 无法打开文件OSD-04002: 无法打开文件O/S-Error: (OS 2) 系统找不到指定的文件Clearing online redo logfile 3 H:\BAIDUNETDISK\BACKUP\BACKUP\REDO03.LOGClearing online log 3 of thread 1 sequence number 33771Errors in file C:\APP\XFF\diag\rdbms\orcl\orcl\trace\orcl_ora_5812.trc:ORA-00313: 无法打开日志组 3 (用于线程 1) 的成员ORA-00312: 联机日志 3 线程 1: 'H:\BAIDUNETDISK\BACKUP\BACKUP\REDO03.LOG'ORA-27041: 无法打开文件OSD-04002: 无法打开文件O/S-Error: (OS 2) 系统找不到指定的文件Errors in file C:\APP\XFF\diag\rdbms\orcl\orcl\trace\orcl_ora_5812.trc:ORA-00313: 无法打开日志组 3 (用于线程 1) 的成员ORA-00312: 联机日志 3 线程 1: 'H:\BAIDUNETDISK\BACKUP\BACKUP\REDO03.LOG'ORA-27041: 无法打开文件OSD-04002: 无法打开文件O/S-Error: (OS 2) 系统找不到指定的文件Clearing online redo logfile 3 completeResetting resetlogs activation ID 1596759182 (0x5f2c9c8e)Online log H:\BAIDUNETDISK\BACKUP\BACKUP\REDO01.LOG: Thread 1 Group 1 was previously clearedOnline log H:\BAIDUNETDISK\BACKUP\BACKUP\REDO02.LOG: Thread 1 Group 2 was previously clearedOnline log H:\BAIDUNETDISK\BACKUP\BACKUP\REDO03.LOG: Thread 1 Group 3 was previously clearedFri Jun 13 22:06:05 2025Setting recovery target incarnation to 2Fri Jun 13 22:06:05 2025Assigning activation ID 1908542329 (0x71c20b79)LGWR: STARTING ARCH PROCESSESFri Jun 13 22:06:05 2025ARC0 started with pid=21, OS id=3372 ARC0: Archival startedLGWR: STARTING ARCH PROCESSES COMPLETEARC0: STARTING ARCH PROCESSESFri Jun 13 22:06:06 2025ARC1 started with pid=22, OS id=14764 Fri Jun 13 22:06:06 2025ARC2 started with pid=23, OS id=9156 Thread 1 opened at log sequence 1 Current log# 1 seq# 1 mem# 0: H:\BAIDUNETDISK\BACKUP\BACKUP\REDO01.LOGSuccessful open of redo thread 1MTTR advisory is disabled because FAST_START_MTTR_TARGET is not setFri Jun 13 22:06:06 2025ARC3 started with pid=24, OS id=24080 ARC1: Archival startedARC2: Archival startedARC2: Becoming the 'no FAL' ARCHARC2: Becoming the 'no SRL' ARCHARC1: Becoming the heartbeat ARCHFri Jun 13 22:06:07 2025SMON: enabling cache recoveryUndo initialization finished serial:0 start:160589734 end:160589750 diff:16 (0 seconds)Dictionary check beginningFile #3 is offline, but is part of an online tablespace.data file 3: 'H:\BAIDUNETDISK\BACKUP\BACKUP\3_UNDOTBS01.DBF'File #4 is offline, but is part of an online tablespace.data file 4: 'H:\BAIDUNETDISK\BACKUP\BACKUP\4_USERS01.DBF'Fri Jun 13 22:06:07 2025Errors in file C:\APP\XFF\diag\rdbms\orcl\orcl\trace\orcl_dbw0_8352.trc:ORA-01157: ????/?????? 201 - ??? DBWR ????ORA-01110: ???? 201: 'H:\BAIDUNETDISK\BACKUP\BACKUP\TEMP01.DBF'ORA-27041: ??????OSD-04002: 无法打开文件O/S-Error: (OS 2) 系统找不到指定的文件Errors in file C:\APP\XFF\diag\rdbms\orcl\orcl\trace\orcl_dbw0_8352.trc:ORA-01186: ?? 201 ??????ORA-01157: ????/?????? 201 - ??? DBWR ????ORA-01110: ???? 201: 'H:\BAIDUNETDISK\BACKUP\BACKUP\TEMP01.DBF'File 201 not verified due to error ORA-01157Dictionary check completeVerifying file header compatibility for 11g tablespace encryption..Verifying 11g file header compatibility for tablespace encryption completedSMON: enabling tx recoveryRe-creating tempfile H:\BAIDUNETDISK\BACKUP\BACKUP\TEMP01.DBFDatabase Characterset is AL32UTF8No Resource Manager plan activereplication_dependency_tracking turned off (no async multimaster replication found)Starting background process QMNCFri Jun 13 22:06:07 2025QMNC started with pid=25, OS id=20288 LOGSTDBY: Validating controlfile with logical metadataLOGSTDBY: Validation completeCompleted: alter database open resetlogs |
导出需要的业务用户字典信息,然后把客户那边提供的users01.dbf文件(users02.dbf是客户在21年之后增加的,原则上客户要的数据都在users01.dbf中)中的数据恢复到导出的字典中,完成本次数据恢复,客户远程验证业务,运行正常,客户需要的配置信息都在其中.
浙公网安备 33010602011771号