Oracle 如何使用RMAN恢复被drop表空间

 

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

*

沪ICP备14014813号-2

沪公网安备 31010802001379号