通过以下事例来说明表空间的恢复,删除表空间内的数据文件,删除后在针对位于该表空间的表进行插入记录以及实施检查点进程

SQL> select a.tablespace_name from dba_tablespaces a;

TABLESPACE_NAME
------------------------------
SYSTEM
SYSAUX
UNDOTBS1
TEMP
USERS

1.1查询表空间

RMAN> backup tablespace users format '/data2/backup/tb_%d_%T_%U';

Starting
using channel ORA_DISK_1
using channel ORA_DISK_2
using channel ORA_DISK_3
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile  name=/data2/orcl/user01.dbf
channel ORA_DISK_1: starting piece  at
channel ORA_DISK_1: finished piece  at
piece handle=/data2/backup/tb_ORCL_20151014_24qjn1b5_1_1 tag=TAG20151014T172700 comment=NONE
channel ORA_DISK_1: ::
Finished 

Starting Control
piece handle/o1_mf_s_893093222_c1w7z7xo_.bkp comment=NONE
Finished Control 

1.2备份表空间

SQL> ! rm /data2/orcl/user01.dbf;

.查看数据文件是否存:
[oracle@TEST144239 ~]$ ll /data2/orcl/
总用量
-rw-r----- 1 oracle oinstall   9846784 10月 14 17:35 control01.ctl
-rw-r----- 1 oracle oinstall   9748480 10月 12 15:18 control01.ctl.bak
drwxr oracle oinstall       10月  : recover_log
-rw-r----- 1 oracle oinstall  52429312 10月 14 17:35 redo01.log
-rw-r----- 1 oracle oinstall  52429312 10月 14 16:03 redo02.log
-rw-r----- 1 oracle oinstall  52429312 10月 14 16:03 redo03.log
-rw-r----- 1 oracle oinstall 723525632 10月 14 17:35 sysaux01.dbf
-rw-r----- 1 oracle oinstall 754982912 10月 14 17:33 system01.dbf
-rw-r----- 1 oracle oinstall  30416896 10月 14 17:10 temp01.dbf
-rw-r----- 1 oracle oinstall  94380032 10月 14 17:35 undotbs01.dbf
SQL> insert into scott.dept
     (deptno, dname, loc)
    values
     (, 'xuzhengzhu', '中国');

 row created.

SQL> commit;
Commit complete.

.手工执行一次检查点(进行检查点时,会触发数据块从数据缓存区写入到数据文件)
SQL> alter system checkpoint;
alter system checkpoint
*
ERROR at line :
ORA: end-of-file on communication channel
Process ID:
Session ID:  Serial 

.强制检查点后,告警日志出现错误提示,视图v$recover_file给出了故障数据文件:
[oracle@TEST144239 alert]$ cd /
[oracle@TEST144239 /]$ cd /u01/app/oracle/diag/rdbms/orcl/orcl/alert
[oracle@TEST144239 alert]$ ll
总用量
-rw-r----- 1 oracle oinstall 652116 10月 14 17:39 log.xml
 log.xml
 </txt>
</msg>
<msg time='2015-10-14T17:39:08.856+08:00' org_id='oracle' comp_id='rdbms'
 client_id'
 host_id='TEST144239.localdomain' host_addr='10.88.144.239' module=''
 pid'>
 <txt>Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ckpt_18394.trc:
ORA: data file suffered media failure
ORA: error
ORA: data : &apos;/data2/orcl/user01.dbf&apos;
ORA: unable to open file
Linux: No such file or directory
Additional information: 

1.3试验(删除表空间)

使用RMAN命令恢复数据文件,此时数据库处于OPEN状态,因此首先需要将表空间脱机,恢复完成之后再将其联机。

RMAN> run{
> sql 'alter tablespace users  offline immediate';
 to '/data2/orcl/user01.dbf';
> restore tablespace users ;
> switch datafile all;
> recover tablespace users ;
> sql 'alter tablespace users  online';
> }

sql statement: alter tablespace users  offline immediate

executing command: SET NEWNAME

Starting
using channel ORA_DISK_1
using channel ORA_DISK_2
using channel ORA_DISK_3
RMAN: ===========================================================
RMAN: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN: ===========================================================
RMAN: failure  ::
RMAN: database not set
RMAN: could not translate tablespace name "users"

2.1恢复表空间

问题解决:需要在nomount 的运行状态下,设置BDID,例如该数据库,
RMAN> startup nomount force;
Oracle instance started
Total System Global Area     bytes
Fixed Size                      bytes
Variable Size                bytes
 bytes
Redo Buffers                    bytes

RMAN;
executing command: SET DBID

RMAN> startup mount force;
Oracle instance started
database mounted
Total System Global Area     bytes
Fixed Size                      bytes
Variable Size                bytes
 bytes
Redo Buffers                    bytes

RMAN> alter database open;

database opened

RMAN> run{
> sql 'alter tablespace users offline immediate';
 to '/data2/orcl/user01.dbf';
> restore tablespace users ;
> switch datafile all;
> recover tablespace users ;
> sql 'alter tablespace users online';
> }

sql statement: alter tablespace users offline immediate

executing command: SET NEWNAME

Starting
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID device type=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: SID device type=DISK
allocated channel: ORA_DISK_3
channel ORA_DISK_3: SID device type=DISK

channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile  to /data2/orcl/user01.dbf
channel ORA_DISK_1: reading from backup piece /data2/backup/tb_ORCL_20151014_24qjn1b5_1_1
channel ORA_DISK_1: piece handle=/data2/backup/tb_ORCL_20151014_24qjn1b5_1_1 tag=TAG20151014T172700
channel ORA_DISK_1: restored
channel ORA_DISK_1: ::
Finished 

Starting recover at
using channel ORA_DISK_1
using channel ORA_DISK_2
using channel ORA_DISK_3

starting media recovery

archived   .dbf
archived   .dbf
archived   .dbf
archived   .dbf
archived   .dbf
archived .dbf thread sequence
archived .dbf thread sequence
media recovery complete, elapsed time: ::
Finished recover at 

sql statement: alter tablespace users online

2.2解决恢复失败问题

SQL@study as sysdba;
Connected.
SQL> select * from  scott.dept;

    DEPTNO DNAME          LOC
---------- -------------- -------------
         ACCOUNTING     NEW YORK
         RESEARCH       DALLAS
         SALES          CHICAGO
         OPERATIONS     BOSTON
         xuzhengzhu     ??????

3.0查看恢复后结果

  另外: 也可以使用下面的命令完成同样的功能,注意表空间内有多个数据文件的情形,而仅有单个数据文件损坏则采用下面的方式处理更为妥当。

 run{
 sql 'alter database datafile 4 offline';
  to '/data2/orcl/user01.dbf';
 ;
 switch datafile all;
 recover datafile ;
 sql 'alter database datafile 4 online';}

恢复单个数据文件

RMAN备份与恢复之表空间的更多相关文章

  1. 【RMAN】TSPITR--RMAN表空间基于时间点的自动恢复

    [RMAN]TSPITR--RMAN表空间基于时间点的自动恢复 一.1  BLOG文档结构图 一.2  前言部分 一.2.1  导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其 ...

  2. RMAN恢复 增加表空间后控制文件丢失

    查看目前的控制文件位置 SQL> select name from v$controlfile; NAME-------------------------------------------- ...

  3. 如何通过RMAN使用传输表空间迁移到不同的Endian平台 (Doc ID 371556.1)

    How to Migrate to different Endian Platform Using Transportable Tablespaces With RMAN (Doc ID 371556 ...

  4. 转://RMAN跨平台可传输表空间和数据库

    参考链接: http://blog.itpub.net/23135684/viewspace-776048/ http://blog.sina.com.cn/s/blog_69e7b8d7010164 ...

  5. SYSTEM 表空间管理及备份恢复

    标签: systemoraclesqldatabasefile数据库 2010-11-28 18:14 12689人阅读 评论(0) 收藏 举报 分类: -----Oracle备份恢复(16) 版权声 ...

  6. Oracle DB 执行表空间时间点恢复

    • 列出在执行表空间时间点恢复(TSPITR) 时会发生的操作 • 阐释TSPITR 使用的术语的定义 • 确定适合将TSPITR 用作解决方案的情况 • 确定时间点恢复的正确目标时间 • 确定不能使 ...

  7. Oracle 阅读器-刚看完表空间回复的详细解释

    (一) 当使用一个控制文件的备份恢复,例如下面的附图.使用备份控制文件恢复位置 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGVtb25zb24=/fo ...

  8. 数据泵 TTS(传输表空间技术)

    1.源库准备环境 --创建被传输的表空间create tablespace tts logging datafile '/home/oracle/app/oradata/orcl/tts01.dbf' ...

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

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

随机推荐

  1. 浅谈压缩感知(三十):压缩感知重构算法之L1最小二乘

    主要内容: l1_ls的算法流程 l1_ls的MATLAB实现 一维信号的实验与结果 前言 前面所介绍的算法都是在匹配追踪算法MP基础上延伸的贪心算法,从本节开始,介绍基于凸优化的压缩感知重构算法. ...

  2. android 使用两个surfaceview 在摄像机画面上绘图

    转载自http://blog.csdn.net/jesse__zhong/article/details/24934083 使用双surface,将第一个设置为透明背景,在摄像机上绘制图像,纠结搞了一 ...

  3. Condition-线程通信更高效的方式

    接近一周没更新<Java线程>专栏了,主要是这周工作上比较忙,生活上也比较忙,呵呵,进入正题,上一篇讲述了并发包下的Lock,Lock可以更好的解决线程同步问题,使之更面向对象,并且Rea ...

  4. sqlserver2012的审计功能的相关理解

    1.sqlserver2012可以做实例的审计,以及数据库的审计,基本包括了所有的操作.可以符合我们的要求.   2.审计功能需要实例级别的配置数据库级别的配置,实例上建立“审核”,数据库上建立“数据 ...

  5. 【PhotoShop】采用PS让美丽的咖啡泡沫

    稀土一杯咖啡,如何你不能击败张(常苦黑咖啡饮料实在受不了! ) 得到例如以下图 看着还不错,但是总感觉空空荡荡的,所以就拿来PS练手了.终于效果图例如以下: 以下讲下制作过程: 首先是给照片加下咖啡泡 ...

  6. Confluence5.4.4迁移至6.3.1

    1.数据备份 服务器查看: 2.安装破解文件及安装包至服务器 3.停止旧版本并启动安装 4.访问8090端口开始安装 5.获取授权码,需要能访问国外网站,并且有atlassian账号 6.将数据库连接 ...

  7. Python之面向对象四

    面向对象进阶 一.关于面向对象的两个内置函数 isinstance   判断类与对象的关系    isinstance(obj,cls)检查obj是否是类 cls 的对象,返回值是bool值 issu ...

  8. C# 高级编程04----类

    一.类和结构: 相同点: 1. 类和结构都是创建对象的模板,包含数据成员和方法成员 不同点: 1.在内存中的存储方式: 1)类是存储在堆内存上的引用类型,结构是存储在栈内存的值类型 2)结构不支持继承 ...

  9. BugPhobia开发篇章:Beta阶段第VII次Scrum Meeting

    0x01 :Scrum Meeting基本摘要 Beta阶段第七次Scrum Meeting 敏捷开发起始时间 2015/12/19 00:00 A.M. 敏捷开发终止时间 2015/12/21 23 ...

  10. springboot 集成swagger

    了解到swagger 就记录下用法 pom.xml <dependency> <groupId>io.springfox</groupId> <artifac ...