如果自己搞不定可以找诗檀软件专业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
Comment