一、案例说明

利用rman备份数据库后,因为人工误删除表空间,现在需要使用非完全恢复来找回被误删除的表空间

二、环境准备

[oracle@ECP-UC-DB1 ~]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.4.0 - Production on Mon Nov 14 12:35:14 2011

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.

Connected to:

Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select name from v$tablespace;

NAME

------------------------------

SYSTEM

UNDOTBS1

SYSAUX

USERS

XFF

ODU

TEMP

7 rows selected.

SQL> select name from v$datafile;

NAME

---------------------------------------------------------------

/opt/oracle/oradata/test/system01.dbf

/opt/oracle/oradata/test/undotbs01.dbf

/opt/oracle/oradata/test/sysaux01.dbf

/opt/oracle/oradata/test/users01.dbf

/opt/oracle/oradata/test/user32g.dbf

/opt/oracle/oradata/test/xifenfei01.dbf

/opt/oracle/oradata/test/user02.dbf

/opt/oracle/oradata/test/odu02.dbf

/opt/oracle/oradata/test/odu01.dbf

/opt/oracle/oradata/test/odu03.dbf

/opt/oracle/oradata/test/xifenfei02.dbf

11 rows selected.

SQL> create tablespace xifenfei datafile

2   '/opt/oracle/oradata/test/t_xifenfei01.dbf' size 10m ;

Tablespace created.

SQL> create table chf.t_xifenfei tablespace xifenfei

2  as

3  select * from dba_objects;

Table created.

SQL> select count(*) from chf.t_xifenfei;

COUNT(*)

----------

50476

SQL> exit

Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

[oracle@ECP-UC-DB1 ~]$ $ORACLE_HOME/bin/rman target /

Recovery Manager: Release 10.2.0.4.0 - Production on Mon Nov 14 12:43:35 2011

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

connected to target database: TEST (DBID=2056006906)

RMAN> list backup summary;

using target database control file instead of recovery catalog

RMAN> backup database format '/tmp/test_full_%U';

Starting backup at 2011-11-14 12:44:32

allocated channel: ORA_DISK_1

channel ORA_DISK_1: sid=134 devtype=DISK

channel ORA_DISK_1: starting full datafile backupset

channel ORA_DISK_1: specifying datafile(s) in backupset

input datafile fno=00008 name=/opt/oracle/oradata/test/odu02.dbf

input datafile fno=00002 name=/opt/oracle/oradata/test/undotbs01.dbf

input datafile fno=00001 name=/opt/oracle/oradata/test/system01.dbf

input datafile fno=00003 name=/opt/oracle/oradata/test/sysaux01.dbf

input datafile fno=00009 name=/opt/oracle/oradata/test/odu01.dbf

input datafile fno=00006 name=/opt/oracle/oradata/test/xifenfei01.dbf

input datafile fno=00005 name=/opt/oracle/oradata/test/user32g.dbf

input datafile fno=00007 name=/opt/oracle/oradata/test/user02.dbf

input datafile fno=00010 name=/opt/oracle/oradata/test/odu03.dbf

input datafile fno=00011 name=/opt/oracle/oradata/test/xifenfei02.dbf

input datafile fno=00012 name=/opt/oracle/oradata/test/t_xifenfei01.dbf

input datafile fno=00004 name=/opt/oracle/oradata/test/users01.dbf

channel ORA_DISK_1: starting piece 1 at 2011-11-14 12:44:33

channel ORA_DISK_1: finished piece 1 at 2011-11-14 12:48:59

piece handle=/tmp/test_full_01mrkqdh_1_1 tag=TAG20111114T124433 comment=NONE

channel ORA_DISK_1: backup set complete, elapsed time: 00:04:26

channel ORA_DISK_1: starting full datafile backupset

channel ORA_DISK_1: specifying datafile(s) in backupset

including current control file in backupset

including current SPFILE in backupset

channel ORA_DISK_1: starting piece 1 at 2011-11-14 12:49:02

channel ORA_DISK_1: finished piece 1 at 2011-11-14 12:49:03

piece handle=/tmp/test_full_02mrkqlr_1_1 tag=TAG20111114T124433 comment=NONE

channel ORA_DISK_1: backup set complete, elapsed time: 00:00:04

Finished backup at 2011-11-14 12:49:03

RMAN> exit

Recovery Manager complete.

[oracle@ECP-UC-DB1 ~]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.4.0 - Production on Mon Nov 14 12:50:53 2011

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.

Connected to:

Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> drop tablespace xifenfei including contents and datafiles;

Tablespace dropped.

SQL> shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> exit

Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

[oracle@ECP-UC-DB1 ~] cd /opt/oradata

[oracle@ECP-UC-DB1 oradata]$ mv test test_bak

[oracle@ECP-UC-DB1 oradata]$ mkdir test

[oracle@ECP-UC-DB1 oradata]$ ll

total 16

drwxr-x--- 3 oracle oinstall 4096 Aug 12 21:50 ecp

drwxr-x--- 3 oracle oinstall 4096 Jun 25 14:23 ecp_bak

drwxr-xr-x 2 oracle oinstall 4096 Nov 14 12:53 test

drwxr-x--- 3 oracle oinstall 4096 Nov 14 12:51 test_bak

通过alert日志,查找出删除表空间xifenfei的时间:Mon Nov 14 12:49:102011

三、恢复测试

[oracle@ECP-UC-DB1 oradata]$ $ORACLE_HOME/bin/rman target /

Recovery Manager: Release 10.2.0.4.0 - Production on Mon Nov 14 12:58:47 2011

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

connected to target database (not started)

RMAN> startup

Oracle instance started

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of startup command at 11/14/2011 12:58:56

ORA-00205: error in identifying control file, check alert log for more info

RMAN> restore controlfile from '/tmp/test_full_02mrkqlr_1_1';

Starting restore at 2011-11-14 12:59:15

using target database control file instead of recovery catalog

allocated channel: ORA_DISK_1

channel ORA_DISK_1: sid=156 devtype=DISK

channel ORA_DISK_1: restoring control file

channel ORA_DISK_1: restore complete, elapsed time: 00:00:03

output filename=/opt/oracle/oradata/test/control01.ctl

output filename=/opt/oracle/oradata/test/control02.ctl

output filename=/opt/oracle/oradata/test/control03.ctl

Finished restore at 2011-11-14 12:59:19

RMAN> restore database;

Starting restore at 2011-11-14 13:00:16

using channel ORA_DISK_1

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of restore command at 11/14/2011 13:00:16

ORA-01507: database not mounted

RMAN> alter database mount;

database mounted

released channel: ORA_DISK_1

RMAN> restore database;

Starting restore at 2011-11-14 13:00:32

Starting implicit crosscheck backup at 2011-11-14 13:00:32

allocated channel: ORA_DISK_1

channel ORA_DISK_1: sid=156 devtype=DISK

Crosschecked 1 objects

Finished implicit crosscheck backup at 2011-11-14 13:00:33

Starting implicit crosscheck copy at 2011-11-14 13:00:33

using channel ORA_DISK_1

Finished implicit crosscheck copy at 2011-11-14 13:00:33

searching for all files in the recovery area

cataloging files...

no files cataloged

using channel ORA_DISK_1

channel ORA_DISK_1: starting datafile backupset restore

channel ORA_DISK_1: specifying datafile(s) to restore from backup set

restoring datafile 00001 to /opt/oracle/oradata/test/system01.dbf

restoring datafile 00002 to /opt/oracle/oradata/test/undotbs01.dbf

restoring datafile 00003 to /opt/oracle/oradata/test/sysaux01.dbf

restoring datafile 00004 to /opt/oracle/oradata/test/users01.dbf

restoring datafile 00005 to /opt/oracle/oradata/test/user32g.dbf

restoring datafile 00006 to /opt/oracle/oradata/test/xifenfei01.dbf

restoring datafile 00007 to /opt/oracle/oradata/test/user02.dbf

restoring datafile 00008 to /opt/oracle/oradata/test/odu02.dbf

restoring datafile 00009 to /opt/oracle/oradata/test/odu01.dbf

restoring datafile 00010 to /opt/oracle/oradata/test/odu03.dbf

restoring datafile 00011 to /opt/oracle/oradata/test/xifenfei02.dbf

restoring datafile 00012 to /opt/oracle/oradata/test/t_xifenfei01.dbf

channel ORA_DISK_1: reading from backup piece /tmp/test_full_01mrkqdh_1_1

channel ORA_DISK_1: restored backup piece 1

piece handle=/tmp/test_full_01mrkqdh_1_1 tag=TAG20111114T124433

channel ORA_DISK_1: restore complete, elapsed time: 00:07:08

Finished restore at 2011-11-14 13:07:42

RMAN> run

2> {

3> sql 'alter session set nls_date_format ="yyyy-mm-dd hh24:mi:ss"';

4> set until time='2011-11-14 12:49:10';

5> recover database;

6> }

sql statement: alter session set nls_date_format ="yyyy-mm-dd hh24:mi:ss"

executing command: SET until clause

Starting recover at 2011-11-14 13:18:09

using channel ORA_DISK_1

starting media recovery

unable to find archive log

archive log thread=1 sequence=248

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of recover command at 11/14/2011 13:18:10

RMAN-06054: media recovery requesting unknown log: thread 1 seq 248 lowscn 11517136

--另外打开一个会话查询当前最大的归档日志seq#情况

[oracle@ECP-UC-DB1 archivelog]$ ll -thr|tail -10

-rw-r----- 1 oracle oinstall  45M Nov  5 19:00 1_238_757860476.dbf

-rw-r----- 1 oracle oinstall  45M Nov  7 10:00 1_239_757860476.dbf

-rw-r----- 1 oracle oinstall  45M Nov  8 02:25 1_240_757860476.dbf

-rw-r----- 1 oracle oinstall  45M Nov  8 22:25 1_241_757860476.dbf

-rw-r----- 1 oracle oinstall  45M Nov  9 22:26 1_242_757860476.dbf

-rw-r----- 1 oracle oinstall  45M Nov 10 22:01 1_243_757860476.dbf

-rw-r----- 1 oracle oinstall  46M Nov 11 22:01 1_244_757860476.dbf

-rw-r----- 1 oracle oinstall  45M Nov 12 00:00 1_245_757860476.dbf

-rw-r----- 1 oracle oinstall  45M Nov 13 07:26 1_246_757860476.dbf

-rw-r----- 1 oracle oinstall  45M Nov 14 07:27 1_247_757860476.dbf

--证明最大的seq为247,而恢复需要日志的seq为248,就是说需要应用未归档的redo log

--那么我们采用在sqlplus中恢复

RMAN> exit

Recovery Manager complete.

[oracle@ECP-UC-DB1 oradata]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.4.0 - Production on Mon Nov 14 13:21:24 2011

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.

Connected to:

Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> alter session set nls_date_format ="yyyy-mm-dd hh24:mi:ss"

2  ;

Session altered.

SQL>  recover database until time '2011-11-14 12:49:10' using backup controlfile;

ORA-00279: change 11517136 generated at 11/14/2011 12:44:33 needed for thread 1

ORA-00289: suggestion : /opt/oracle/oradata/test/archivelog1_248_757860476.dbf

ORA-00280: change 11517136 for thread 1 is in sequence #248

Specify log: {<RET>=suggested | filename | AUTO | CANCEL}

/opt/oracle/oradata/test_bak/redo01.log

ORA-00310: archived log contains sequence 247; sequence 248 required

ORA-00334: archived log: '/opt/oracle/oradata/test_bak/redo01.log'

SQL> recover database until time '2011-11-14 12:49:10' using backup controlfile;

ORA-00279: change 11517136 generated at 11/14/2011 12:44:33 needed for thread 1

ORA-00289: suggestion : /opt/oracle/oradata/test/archivelog1_248_757860476.dbf

ORA-00280: change 11517136 for thread 1 is in sequence #248

Specify log: {<RET>=suggested | filename | AUTO | CANCEL}

/opt/oracle/oradata/test_bak/redo02.log

Log applied.

Media recovery complete.

SQL> alter database open resetlogs;

Database altered.

SQL> select name from v$tablespace;

NAME

------------------------------

SYSTEM

UNDOTBS1

SYSAUX

USERS

XFF

ODU

TEMP

XIFENFEI

8 rows selected.

SQL> select name from v$datafile;

NAME

--------------------------------------------------------------------

/opt/oracle/oradata/test/system01.dbf

/opt/oracle/oradata/test/undotbs01.dbf

/opt/oracle/oradata/test/sysaux01.dbf

/opt/oracle/oradata/test/users01.dbf

/opt/oracle/oradata/test/user32g.dbf

/opt/oracle/oradata/test/xifenfei01.dbf

/opt/oracle/oradata/test/user02.dbf

/opt/oracle/oradata/test/odu02.dbf

/opt/oracle/oradata/test/odu01.dbf

/opt/oracle/oradata/test/odu03.dbf

/opt/oracle/oradata/test/xifenfei02.dbf

/opt/oracle/oradata/test/t_xifenfei01.dbf

12 rows selected.

SQL> select count(*) from chf.t_xifenfei;

COUNT(*)

----------

50476

oracle视频教程请关注:http://u.youku.com/user_video/id_UMzAzMjkxMjE2.html

转载于:https://blog.51cto.com/19880614/1266528

oracle技术之使用rman找回被误删除表空间相关推荐

  1. mysql数据库as表恢复_使用flashback database找回被误删除表空间

    我个人不怎么推荐使用flashback database功能,因为在生产库中,谁能够承受得起整个库的回退(也许特别极端的情况下可能需要使用到),今天帮网友恢复了一个案例:删除表空间,然后尝试着flas ...

  2. Oracle误删除表空间的恢复

    对于误删除表空间的恢复,本文通过基于数据库的时间点恢复和基于表空间的时间点恢复分别加以讨论 一 通过基于数据库的时间点恢复被误删除的表空间 1 需要注意的事项 a 基于数据库的时间点恢复将会回退整个数 ...

  3. oracle误删除表空间的数据文件

    事故原因: 1.由于误操作用hp unix 命令 rm -f datafilename 删除表空间的数据文件 2.alter tablespace tablespacenaem drop datafi ...

  4. Oracle 11g常用管理命令(用户、表空间、权限)

    PS:下面是Oracle 11g最常用的基本管理命令,包括创建用户.表空间,权限分配等.以下命令本人都验证操作过,并加上了本人的小结与说明. 1.启动oracle数据库: 从root切换到oracle ...

  5. oracle 表复制 long,【学习笔记】Oracle数据库使用copy实现long类型转移表空间案例 ORA-00997...

    天萃荷净 使用copy实现long类型转移表空间,表空间的数据文件损坏,在转移该表空间相关表时,遇到让人郁闷的long类型.不能使用ctas和move来实现转移,最后通过古老的copy来实现该项工作. ...

  6. oracle如何删除物理表空间,oracle 如何删除被误删物理文件的表空间

    oracle 如何删除被误删物理文件的表空间 如何删除alter database ... offline drop掉文件的表空间? QL> connect / as sysdba Connec ...

  7. 达梦误删除表空间文件恢复

    误删除表空间文件恢复 此方法可以恢复误删除表空间文件后通过系统保留的副本文件进行恢复(目前只支持Linux系统).因此只能在数据库服务还在的情况和操作系统保留时间内才能进行恢复,如果数据库重启或者操作 ...

  8. Oracle RMAN实现“一键式”表空间TSPITR

    从Oracle 10g之后,小规模数据误删除.误操作其实已经有了很好的解决方案,就是flashback技术.Flashback Query和Flashback Drop,就可以从数据记录和数据表这类比 ...

  9. oracle rman表空间传输,rman 实现在线传输表空间(=10g)

    rman操作 RMAN> transport tablespace O_ORACLE 2> tablespace destination 'F:\rmanbackup\td' 3> ...

最新文章

  1. Windows客户端C/C++编程规范“建议”——指针
  2. 重磅 | 王劲被百度起诉后首露面:称打印机电脑已报废,赔了318块钱,没接到法院传票
  3. xml命名空间的作用类似于java中包名所起的限定范围的作用
  4. 【100题】第十六题(层序打印树的节点)
  5. SRIO学习(六)——Direct I/O 操作(一)
  6. 信息发布服务器hp3000,HPCS-3000型DCS系统维护说明….doc
  7. Django之缓存、信号和图片验证码
  8. 常用作业定义的T-SQL模板.sql
  9. 从博客专栏想到的数据分析
  10. java 25 - 2 网络编程之 网络通信三要素
  11. 各种PLC和触摸屏解密软件大全
  12. rk3128-android7.1 wifi拓展小功能
  13. 图灵程序设计丛书 精通JavaScript开发pdf
  14. 大专生三面蚂蚁金服,王道训练营java百度云盘
  15. linux python2.7安装pip_linux安装pip2.7
  16. 动手学TCP——CS144实验感想
  17. 我体验了禾多科技的自动驾驶汽车,离量产不远了!
  18. 原来证件照还可以这样拍?美炸了!再也不怕证件照丑到家了!
  19. 通向Golang的捷径【13. 错误处理和测试】
  20. 乐观人生VS悲观人生

热门文章

  1. 大学学习方法介绍之:使用两套教材
  2. 2019年4月最新勒索病毒样本分析及数据恢复
  3. 多线程-010-后台线程
  4. Python3学习之路
  5. Atitit.Java exe bat  作为windows系统服务程序运行
  6. AIX 操作系统日常维护须知
  7. Variational Bayes
  8. 数据库范式(1NF、2NF、3NF、BCNF)
  9. Python学习教程(Python学习路线):Python面试100题(二)
  10. Chatter 导入