如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!
诗檀软件专业数据库修复团队
服务热线 : 13764045638 QQ号:47079569 邮箱:service@parnassusdata.com
ORA-16038 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. ORA-00354 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. ORA-00312 oerr ora 312 00312, 00000, "online log %s thread %s: '%s'" // *Cause: This message reports the filename for details of another message. // *Action: Other messages will accompany this message. See the // associated messages for the appropriate action to take
- 症状: 数据库对DML活动挂起 ORA-16038, ORA-00354, ORA-00312
- 症状: Database hangs for dml (insert, update and delete) activity
- 症状: ORA-16038: log %s sequence# %s cannot be archived
- 症状: ORA-00354: corrupt redo log block header
- 症状: ORA-00312: online log %s thread %s: ‘%s’
- 原因: 最有可能是因为硬件故障导致了联机重做日志的损坏。
修复:
如果数据库被打开或mount,则尝试损坏的日志号(从错误或v$log检查):
1 alter database clear logfile group <group number>;
如果不运作(不太可能成功)则:
2 alter database clear unarchived logfile group <group number>;
如果这个成功,db会运行(不再对dml活动挂起)但你丢失一个归档。这表示你要先创建一个备份,只要备份未完成,你就无法使用之前的备份执行媒体恢复,因为你丢失了一个归档。
3 如果 1和 2都不起作用,你需要执行不完全恢复。
关闭db,还原一个备份的所有数据文件(仅数据文件)并启动mount 并发出recover database until cancel and recover until corrupted logfile,然后使用alter database open resetlogs打开;你有了数据丢失(最后损坏的日志文件),在数据库打开后你首先必须创建一个新备份)。
如果数据库被关闭且无法被打开,则你只有第三个选择。
Comment