【Oracle数据恢复】Redo Log重做日志文件坏块Corruption的解决 ORA-16038 ORA-00354 ORA-00353 ORA-00367 ORA-01624
ORA-16038 log %s sequence# %s cannot be archived
ORA-354 corrupt redo log block header
ORA-353 log corruption near block change time
ORA-367 checksum error in log file header
[oracle@mlab2 ~]$ oerr ora 16038
16038, 00000, "log %s sequence# %s cannot be archived"
// *Cause: An attempt was made to archive the named file, but the
// file could not be archived. Examine the secondary error
// messages to determine the cause of the error.
// *Action: No action is required.
[oracle@mlab2 ~]$ oerr ora 354
00354, 00000, "corrupt redo log block header"
// *Cause: The block header on the redo block indicated by the accompanying
// error, is not reasonable.
// *Action: Do recovery with a good version of the log or do time based
// recovery up to the indicated time. If this happens when archiving,
// archiving of the problem log can be skipped by clearing the log
// with the UNARCHIVED option. This must be followed by a backup of
// every datafile to insure recoverability of the database.
[oracle@mlab2 ~]$ oerr ora 353
00353, 00000, "log corruption near block %s change %s time %s"
// *Cause: Some type of redo log corruption has been discovered. This error
// describes the location of the corruption. Accompanying errors
// describe the type of corruption.
// *Action: Do recovery with a good version of the log or do incomplete
// recovery up to the indicated change or time.
www.askmaclean.com
[oracle@mlab2 ~]$ oerr ora 367
00367, 00000, "checksum error in log file header"
// *Cause: The file header for the redo log contains a checksum that does
// not match the value calculated from the file header as read from
// disk. This means the file header is corrupted
// *Action: Find the correct file and try again.
对于不同状态的在线日志文件online redo logfile 损坏/坏块,有不同的解决方案。
对于以下2种情况将不能drop online的redo logfile,他们是:
如果仅仅有2个redo logfile groups
损坏的redo logfile文件属于当前日志组 current logfile groupV$LOG.STATUS=CURRENT
解决方案大致如下:
可以通过clear 命令来清理有问题的日志文件,语法如下:
alter database clear <unarchived>logfile group <integer>
alter database clear <unarchived>logfile ‘<filename>'
例如:
alter database clear logfile group 1
alter database clear unarchived logfile group 1
对于status=current 或者 status=active的日志将无法被清理, 如果清理会报 ORA-01624:
SQL>alter database clear unarchived logfile group 5
alter database clear unarchived logfile group 5
*
ERROR at line 1:
ORA-01624: log 5 needed for crash recovery of instance G10R25 (thread 1)
ORA-00312: online log 5 thread 1: '/s01/G10R25/onlinelog/o1_mf_5_954q1vdo_.log'
www.askmaclean.com
[oracle@vrh8 ~]$ oerr ora 1624
01624, 00000, "log %s needed for crash recovery of instance %s (thread %s)"
// *Cause: A log cannot be dropped or cleared until the thread's checkpoint
// has advanced out of the log.
// *Action: If the database is not open, then open it. Crash recovery will
// advance the checkpoint. If the database is open force a global
// checkpoint. If the log is corrupted so that the database cannot
// be opened, it may be necessary to do incomplete recovery until
// cancel at this log.
对于status=active的日志较为简单,只要能顺利完成一个alter system checkpoint就可以将其状态改为INACTIVE之后再CLEAR。
对于status=current的online redo logfile则比较麻烦,一般需要动用隐藏参数”_ALLOW_RESETLOGS_CORRUPTION”
如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!
诗檀软件专业数据库修复团队
恢复的前提是备份;数据库有什么备份,exp还是rman
如果有exp备份:直接imp数据
如果有rman备份:可以基于时间不完全恢复,将数据库恢复到误删除之前的时刻
如果没有备份但是开闪回了,可以闪回数据库或闪回表
oracle数据库恢复,主要包括(1)系统崩溃只剩下数据文件的情况下的恢复,甚至没有system表空间而只有数据表空间的情况下的恢复.只要提供数据文件就可恢复.
(2)
undo
system
表空间损坏数据恢复
.
(3)
非归档或者归档模式下误
delete
数据的恢复、误删除表空间的恢复、
drop
truncate
表的恢复
.
(4)
数据库中有大量CLOB
BLOB对象数据恢复等情况以及各种ora-错误的修复.
(5)
DMP文件损坏导致文件不能导入数据库的数据恢复
(6)
oracle数据库中数据文件出现坏块情况下的恢复.
(7)
oracle数据库无数据文件但有日志的情况下的恢复.
(8)
UNIX、WINDOWS下ORACLE数据文件被误删除情况下的数据库恢复.
(9)
Oracle10G、Oracle11G
的ASM损坏的数据库恢复.
(10)
Oracle10G、Oracle11G
BIFGILE
TABLESPACE大文件表空间损坏数据恢复
(11)
Oracle9i、Oracle10G、Oracle11G压缩表
压缩表空间损坏数据恢复
(12)Oracle10G
Oracle11G
Expdp导出
Impdp导入DMP文件错误数据恢复
恢复成功率高达90%以上,在数据恢复领域处于国内领先的地位。具体案例见广州拓飞官方网站
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)