如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!
诗檀软件专业数据库修复团队
服务热线 : 13764045638 QQ号:47079569 邮箱:service@parnassusdata.com
RMAN 备份和基于时间的不完全恢复
这种类型的不完全恢复意味着你可以恢复数据库到一个具体的点,假设你删除了一个重要的表,你只有用户管理备份,在drop table命令的合适的时间,使用 until time语句,为此,创建一个表,使用当前时间,删除表,然后复原所有的数据文件,恢复数据库到采用的时间,如下:
SQL> shutdown immediate SQL> host # Take backup of all datafiles to the backup/ folder [oracle@localhost new]$ cp *.dbf backup/ SQL> startup SQL> create table test as select * from dba_objects; Table created. SQL> select count(1) from test; COUNT(1) ---------- 49814 SQL> select to_char(sysdate,'dd-mm-yyyy hh24:mi:ss') ddate from dual; DDATE ------------------- 29-04-2010 10:25:51 SQL> alter system switch logfile; System altered. SQL> drop table test; Table dropped. SQL> alter system switch logfile; System altered. SQL> shutdown immediate SQL> host # Delete all datafiles and restore the backup of the datafiles from the backup/ directory [oracle@localhost new]$ rm -rf *.dbf [oracle@localhost new]$ mv backup/*.dbf . SQL> startup mount SQL> recover database until time '2010-04-29:10:25:51'; Media recovery complete. SQL> alter database open resetlogs; Database altered. SQL> select count(1) from test; COUNT(1) ---------- 49814 SQL>
基于改变的不完全恢复
如果你有一个具体的scn 值,使用recover database until the change 命令你可以恢复数据库到具体的 scn 值,步骤和之前情景中的一样,切换到下一个、最后一个不完全恢复类型和基于取消的不完全恢复。
基于取消的不完全恢复
如果你丢失了一个应该添加到恢复的数据文件的归档重做日志文件,你不能继续进行恢复,所以需要在Oracle要求丢失的归档重做日志文件之前进行,你也可以打电话给 Oracle Support以提供给你诸如_allow_resetlogs_corrupti的隐藏的初始参数作为帮助。
在下面的情境中,你将使用until cance选项恢复所有数据文件的备份并执行多媒体恢复,当你需要丢失的归档重做日志文件时,停止恢复:
SQL> recover database until cancel; ORA-00279: change 447754 generated at 04/29/2010 09:43:30 needed for thread 1 ORA-00289: suggestion : /u01/ORACLE/product/10.2.0/db_1/flash_recovery_area/NEW/archivelog/ 2010_04_29/o1_mf_1_1_%u_.arc ORA-00280: change 447754 for thread 1 is in sequence #1 Specify log: {<RET>=suggested | filename | AUTO | CANCEL} /u01/ORACLE/product/10.2.0/db_1/flash_recovery_area/NEW/archivelog/ 2010_04_29/o1_mf_1_1_5xm3qfvb_.arc ORA-00279: change 448599 generated at 04/29/2010 09:51:36 needed for thread 1 ORA-00289: suggestion : /u01/ORACLE/product/10.2.0/db_1/flash_recovery_area/NEW/archivelog/ 2010_04_29/o1_mf_1_2_%u_.arc ORA-00280: change 448599 for thread 1 is in sequence #2 ORA-00278: log file '/u01/ORACLE/product/10.2.0/db_1/flash_recovery_area/NEW/archivelog/ 2010_04_29/o1_mf_1_1_5xm3qfvb_.arc' no longer needed for this recovery Specify log: {<RET>=suggested | filename | AUTO | CANCEL} CANCEL Media recovery cancelled. SQL> alter database open resetlogs; Database altered. SQL>
请记住在确保所有的数据文件恢复到连贯的scn号之后,你需要取消恢复程序,否则你会收到ORA-01113: file # needs media recovery 错误。
结论
Oracle 强烈推荐使用RMAN 操作,但是,可能会有一些情况,你需要使用用户管理技术采用备份或者不使用RMAN执行恢复。本章介绍了关于用户管理技术的详细信息,并为每个情景提供了每一步的指导。
本章一开始给出了关于用户管理技术的信息以及控制文件、数据文件、归档重做日志文件、参数和网络文件的备份方法。
接下来证明了控制文件、重做日志文件、数据文件等的恢复技术,除了证明方法外,还展示了损坏具体的物理文件和收到实际错误的步骤,这会帮助你在生产数据库上面对错误之前自己练习情景,学习实用的解决方法。
在本章末尾,在涉及了大量有关重做日志恢复信息之外,解释了执行不完全恢复的方法。下一章会探讨Oracle flashback技术并展示在实际情境中的功能。