紧急求救:Oracle redo onling log联机重做日志文件被损坏
本帖最后由 ALLSTARS_ORACLE 于 2017-4-27 13:27 编辑我的联机重做日志文件有一个被损坏了,没有复合重做日志文件,现在数据库起不起来了,怎么办阿? 如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!
诗檀软件专业数据库修复团队
服务热线 : 13764045638 QQ号:47079569 邮箱:service@parnassusdata.com
问题: 我有一个数据文件显示需要介质恢复:
ORA-00279 change xxxxxx generated at needed for thread
ORA-00289 suggestion C:|oracle\ora92\rdbms\arc0611.001
ORA-00280: change xxxxxx for thread 1 is in sequence #6611
Specify log:
但是当我执行 “recover database” 命令,我再也没有归档重做日志了,因为我删除了重做日志,如何才能恢复数据文件中剩下的数据呢?
回答: Oracle 提供重做日志,启用前滚操作, proper mirroring of redo log files是 Oracle 一个最好的实践。
如果你没有所需要的归档重做日志来恢复数据库,你可能因此被解雇,但是在工作保住的情况下,你需要考虑丢失的重做日志文件问题。
因为归档重做日志丢失,你将不能使用崩溃恢复 “recover database” 命令同步表空间, 你的其他选择是:
尝试在之前的归档重做日志字典的OS级别备份中找到归档重做日志文件。恢复丢失的归档重做日志,你能够执行前滚介质恢复。
从之前的冷备份恢复,那里有成功前滚的重做日志。
和 Oracle 技术支持一起恢复数据库,关于丢失重做日志的恢复,请查看 MOSC note 177866.1 ,有专门的技术和参数,绕过 SCN损坏,进行部分数据恢复。
使用"recover until time" 进行部分前滚操作到丢失重做发生的点:
RMAN> RECOVER DATABASE UNTIL TIME "to_date('MAR 05 2015 19:00:00','MON DD YYYY HH24:MI:SS')";
RMAN> ALTER DATABASE OPEN RESETLOGS; 本帖最后由 biotwang 于 2017-7-28 11:19 编辑
在线重做日志损坏的情况下, 恢复需要分多种情况:
如果数据库还在运行,那么只要先确保数据都落盘,且立即清理掉受损日志组即可 -alter system checkpoint;
alter system switch logfile;
alter database clear unarchived logfile group x;
shutdown immediate;
startup;如果数据库是通过shutdown immediate正常关闭,那么数据实际上已经落盘,只要清理受损日志组即可 -startup mount
alter database clear unarchived logfile group x;
alter database open;
如果数据库为异常关闭,即shutdown abort,那么你就只能使用备份进行时间点恢复了 -RMAN> restore database;
RMAN> recover database until time "to_date('MAR 05 2015 19:00:00','MON DD YYYY HH24:MI:SS')";
RMAN> alter database open resetlogs;如果你没有备份,或你最好得到最多的最新的数据,无力承担数据丢失风险。那么你只能通过打开隐藏参数来尝试开库了 -alter system set "_allow_resetlogs_corruption"=true scope=spfile;
shutdown immediate
alter database open resetlogs;但是由于数据库不一致性会导致一连串的后继报错,之后只能是见招拆招了,祝你好运。
这里实际上我们可以关库,并使用PRM工具针对数据文件直接将数据抽取出来,这其实是最高效稳妥的方法。对于经验不足的DBA而言,不断尝试开库或操作错误会导致事件恶化、数据受损扩散影响,因此不推荐也非官方推荐方法。
页:
[1]