接手一个oracle恢复case,由于断电导致oracle数据库异常,现场人员进行了一系列的恢复成功,但是没有成功open库,我接手故障之后尝试做recover 报ORA-16433错误
[oracle@xifenfei.com ~]$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.4.0 Production on Sun May 10 09:27:51 2026Copyright (c) 1982, 2013, Oracle. All rights reserved.Connected to:Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL> SQL> recover database;ORA-00283: recovery session canceled due to errorsORA-16433: The database must be opened in read/write mode. |
根据经验这种错误一般是由于强制打开库失败导致,回溯oracle alert日志发现类似操作
Fri May 08 18:47:59 2026ALTER 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 138986145572Errors in file /data/oracle/diag/rdbms/xff/xff/trace/xff_ora_37813.trc:ORA-00313: open failed for members of log group 1 of thread 1ORA-00312: online log 1 thread 1: '/data/oracle/oradata/xff/redo01.log'ORA-27037: unable to obtain file statusLinux-x86_64 Error: 2: No such file or directoryAdditional information: 3Clearing online redo logfile 1 /data/oracle/oradata/xff/redo01.logClearing online log 1 of thread 1 sequence number 2389Errors in file /data/oracle/diag/rdbms/xff/xff/trace/xff_ora_37813.trc:ORA-00313: open failed for members of log group 1 of thread 1ORA-00312: online log 1 thread 1: '/data/oracle/oradata/xff/redo01.log'………………Clearing online redo logfile 3 completeResetting resetlogs activation ID 677485461 (0x28619b95)Online log /data/oracle/oradata/xff/redo01.log: Thread 1 Group 1 was previously clearedOnline log /data/oracle/oradata/xff/redo02.log: Thread 1 Group 2 was previously clearedOnline log /data/oracle/oradata/xff/redo03.log: Thread 1 Group 3 was previously clearedFri May 08 18:48:17 2026Setting recovery target incarnation to 4Fri May 08 18:48:17 2026Assigning activation ID 677634815 (0x2863e2ff)Thread 1 opened at log sequence 1 Current log# 1 seq# 1 mem# 0: /data/oracle/oradata/xff/redo01.logSuccessful open of redo thread 1MTTR advisory is disabled because FAST_START_MTTR_TARGET is not setFri May 08 18:48:18 2026SMON: enabling cache recoveryErrors in file /data/oracle/diag/rdbms/xff/xff/trace/xff_ora_37813.trc (incident=170321):ORA-00600: internal error code, arguments: [2662], [32], [1547192107], [32], [1547212241], [12583040], []Fri May 08 18:48:20 2026Use ADRCI or Support Workbench to package the incident.See Note 411.1 at My Oracle Support for error and packaging details.Errors in file /data/oracle/diag/rdbms/xff/xff/trace/xff_ora_37813.trc:ORA-00600: internal error code, arguments: [2662], [32], [1547192107], [32], [1547212241], [12583040]Errors in file /data/oracle/diag/rdbms/xff/xff/trace/xff_ora_37813.trc:ORA-00600: internal error code, arguments: [2662], [32], [1547192107], [32], [1547212241], [12583040]Error 600 happened during db open, shutting down databaseUSER (ospid: 37813): terminating the instance due to error 600Instance terminated by USER, pid = 37813ORA-1092 signalled during: ALTER DATABASE OPEN RESETLOGS... |
对于这种情况,先重建控制文件
SQL> @/tmp/rectl.sqlControl file created. |
尝试recover database恢复
ALTER DATABASE RECOVER database Media Recovery Start started logmerger processParallel Media Recovery started with 96 slavesSun May 10 09:33:03 2026Recovery of Online Redo Log: Thread 1 Group 2 Seq 2 Reading mem 0 Mem# 0: /data/oracle/oradata/xff/redo02.logErrors in file /data/oracle/diag/rdbms/xff/xff/trace/xff_pr00_250074.trc (incident=254397):ORA-00353: log corruption near block 3 change 138986165586 time 05/08/2026 18:55:37ORA-00312: online log 2 thread 1: '/data/oracle/oradata/xff/redo02.log'Incident details in: /data/oracle/diag/rdbms/xff/xff/incident/incdir_254397/xff_pr00_250074_i254397.trcSun May 10 09:33:04 2026Media Recovery failed with error 399Errors in file /data/oracle/diag/rdbms/xff/xff/trace/xff_pr00_250074.trc:ORA-00283: recovery session canceled due to errorsORA-00399: corrupt change description in redo logORA-00353: log corruption near block 3 change 138986165586 time 05/08/2026 18:55:37ORA-00312: online log 2 thread 1: '/data/oracle/oradata/xff/redo02.log'ORA-10877 signalled during: ALTER DATABASE RECOVER database ...Sun May 10 09:33:04 2026Sweep [inc][254397]: completedErrors in file /data/oracle/diag/rdbms/xff/xff/trace/xff_m000_250348.trc (incident=255173):ORA-00353: log corruption near block 3 change 138986165586 time 05/08/2026 18:55:37ORA-00312: online log 2 thread 1: '/data/oracle/oradata/xff/redo02.log'Errors in file /data/oracle/diag/rdbms/xff/xff/incident/incdir_254397/xff_m000_250348_i254397_a.trc:ORA-00399: corrupt change description in redo logORA-00353: log corruption near block 3 change 138986165586 time 05/08/2026 18:55:37ORA-00312: online log 2 thread 1: '/data/oracle/oradata/xff/redo02.log'Errors in file /data/oracle/diag/rdbms/xff/xff/incident/incdir_254397/xff_m000_250348_i254397_a.trc:ORA-00399: corrupt change description in redo logORA-00353: log corruption near block 3 change 138986165586 time 05/08/2026 18:55:37ORA-00312: online log 2 thread 1: '/data/oracle/oradata/xff/redo02.log'Sun May 10 09:34:05 2026 |
由于无法正常recover 操作,数据库需要强制打开,考虑到之前该库open的过程有ORA-600 2662错误,这次在打开之前使用Patch_SCN调整SCN(关于Patch_SCN文章:Patch_SCN for Linux 功能完善
[oracle@xifenfei.com tmp]$ ./Patch_SCN 249756 0x205D38954ESuccessfully obtained address automatically: 0x6001ae70Original Oracle SCN at Address 0x6001ae70: 0x0Are you sure you want to modify Oracle SCN? (yes/no): yesNew SCN at Address 0x6001ae70: 0x205d38954eOracle SCN successfully modified. |
然后数据库顺利打开
在expdp导出数据过程中遇到了硬件错误


为了安全性采用库只读情况下exp进行导出,运气不错所有数据顺利导出,完成本次数据恢复任务

