如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!

诗檀软件专业数据库修复团队

服务热线 : 13764045638 QQ号:47079569 邮箱:service@parnassusdata.com

  适用于: Oracle Database - Enterprise Edition – 版本 8.1.7.0到 11.1.0.8 [Release 8.1.7 到 11.1] 本文信息适用于任何平台。 目标 如何使用RMAN从被drop的表空间中恢复? 解决方案 RMAN duplicate命令无法用于一个被drop 表空间,因为被duplicate访问的当前目标控制文件不会有与被drop表空间相关的数据文件的信息。 同样在Oracle 11g 发行版本 2之前,你无法使用Tablespace Point In Time Recovery (TSPITR)来恢复被drop的表空间。 要在Oracle 11g 发行版本 2 及以上版本中恢复被drop表空间,参见 Note 1277795.1。 因此,基于你对现有数据库的要求,有两个选择: 1. 还原整个数据库并恢复到表空间被drop之前。 这会导致在数据库中的所有数据,不仅是表空间回到过去时间。 2. 将目标数据库克隆到新位置,执行时间点恢复导出表空间数据,导入原始数据库。这导致该表空间的数据被导入回生产数据库,不影响数据库其他区域的现有(当前)数据。 选项#1:  还原目标数据库并恢复到表空间被drop之前: --------------- 1. 确认用于还原和恢复的'set until': - 找出目标数据库中alert.log中的'drop tablespace' 语句。 - 查看drop时间,减去约5分钟,并记录为用于RMAN 'set until'的时间。 例如: Thu Aug 23 10:21:01 2007 Thread 1 advanced to log sequence 243 Current log# 2 seq# 243 mem# 0: /u01/V102_oradata/redo02.log Thu Aug 23 10:21:16 2007 drop tablespace test including contents and datafiles Thu Aug 23 10:21:19 2007 Deleted file /u01/temp/test01.dbf Completed: drop tablespace test including contents and datafiles 上述显示表空间在Aug 23 2007的10:21被drop。同时看到在drop之前我们开始写到序列243 。 因此RMAN适当的'set until' 是: 使用时间: --------------- run { set until time "to_date('2007 Aug 23 10:15','yyyy mon dd hh24:mi')"; ........ ........ } 使用序列: ------------------------ run { set until sequence 243 thread 1; ........ ........ } 注:以上语法告知RMAN 恢复到序列242。 2. 关闭目标数据库并使用NOMOUNT 选项启动: RMAN> shutdown immediate; RMAN> startup nomount; 3. 使用相同的'set until'还原控制文件。 RMAN> run { set until ........................; restore controlfile; } 注:参见 Note 403883.1 和/或Note 372996.1 获取还原控制文件的更多详情。 4. Mount数据库: RMAN> alter database mount; 5. 还原并恢复数据库到过去时点。 RMAN> run { set until ........................; restore database; recover database; } 6. 使用resetlogs选项打开数据库: RMAN> alter database open resetlogs; OPTION #2: Clone database for data retrieval of dropped tablespace. --------------- 由于无法使用RMAN duplicate命令,你必须将目标数据库还原并恢复到'drop tablespace'之前的时点。步骤与上述'选项 #1' 相同,但与原始目标在不同的位置/服务器。 请参照以下文档的详细步骤: Note 223543.1 How to Recover From a DROP / TRUNCATE / DELETE TABLE with RMAN   参考 NOTE:223543.1 - How to Recover From a DROP / TRUNCATE / DELETE TABLE with RMAN NOTE:372996.1 - Using RMAN to Restore and Recover a Database When the Repository and Spfile/Init.ora Files Are Also Lost NOTE:403883.1 - How To Restore Controlfile From A Backupset Without A Catalog Or Autobackup NOTE:731559.1 - How to Move or Transport Table Partitions Using Transportable Table Space (TTS) Option? NOTE:1277795.1 - Steps To Recover A Dropped Tablespace Using TSPITR BUG:3897724 - DUPLICATE FAILS THROUGH DROP TABLESPACE ON TARGET NOTE:549972.1 - RMAN: SET NEWNAME Command Using SQL