名词解释:

顾名思义,完全恢复就是指数据没有丢失的恢复了。不完全恢复是指恢复后有部分数据丢失。它们是数据库的两种恢复方式。

 
     完全恢复:利用重做日志或增量备份将数据块恢复到最接近当前时间的时间点。之所以叫做完整恢复是由于Oracle应用了归档日志和联机重做日志中所有的修改。
     不完全恢复:利用备份产生一个非当前版本的数据库。换句话说,恢复过程中不会应用备份产生后生成的所有的重做日志。
 
     通常在下列情况下生成整个数据库的不完整恢复
     ● 介质失败损坏了几个或全部的联机重做日志文件;
     ● 用户操作造成的数据丢失,比如,用户误删除了一张表;
     ● 由于个别归档日志文件的丢失无法进行完整的恢复;
     ● 丢失了当前的控制文件,必须使用备份的控制文件打开数据库。
     为了执行不完整介质恢复,必须使用恢复时间点以前的备份来还原数据文件,并在恢复完成后使用RESETLOG选项打开数据库。
 
resetlogs参数
     在不完全恢复期间,通常需要使用resetlogs命令打开数据库,这是因为我们要从已经建立的现有重做日志流中脱离出来。resetlogs参数表示一个数据库逻辑生存期的结束了另一个数据库逻辑生存期的开始。数据库的逻辑生存期也称为一个对应物(incarnation)。每次使用resetlogs命令时,SCN计数器不会被重置,但是Oracle会重置其他计数器(如日志序列号),同时还会重置联机重做日志的内容。
 
     经过测试,当在非归档模式下尝试执行完全恢复时,发出alter database open 后,RMAN会报如下错误:
     SQL> alter database open;
     alter database open
     *
     ERROR at line 1:
     ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
但是如果加上resetlogs,就不会报错了。而且从恢复的过程来看,期间确实使用在联机日志文档,也就是说它执行的是完全恢复。这说明在非归档模式下执行完全恢复后,打开数据库时也要重置重做日志。其实这也很好想,非归档模式下,没有归档的重作日志,完全恢复时使用联机日志后,这些联机日志文件就没什么用了,因此Oracle就重置日志文件序列号(个人觉得:理论上来说,是可以不重置的,日志文件的序号直接在现有的日志序号上增加,但是这样日志序号会越来越大。Oracle应该是考虑到这一点就在非归档模式下执行完全恢复和不完全恢复时都重置了重做日志)。
 
完全恢复
     完全恢复很简单,不多说,如下:
     $ rman target /                       ##登录rman工具,如果使用了catalog,则登陆方法rman targetsys/Oracle@lscatalogcata/cata@leo
     RMAN> startup mount           ##必须为mount状态,才能restore 和 recover 数据库
     RMAN> restore database;     ##复制旧数据文件覆盖损坏的数据文件
     RMAN> recover database;    ##数据文件头SCN号同步当前日志中最后一个SCN号【完全恢复】
     RMAN> alter database open [resetlogs];    
     
 
不完全恢复
     不完全恢复有一个核心要领需要牢记:不完全恢复影响的是整个数据库,不能只对数据库的一部分执行不完全恢复。不完全恢复使用的方法通常有:基于时间、SCN、日志序列、还原点或基于删除的恢复。
      $ rman target /  
     RMAN> startup mount
     RMAN>run
     2> {
     3> set until time "to_date('07/01/2015 15:00:00', 'mm/dd/yyyy hh24:mi:ss')";
     4> restore database;
     5> recover database;
     6> alter database open;
     7> }
     从执行过程来看,不完全恢复就是加了一个限制条件,时间/SCN等。如上基于时间点的恢复,Oracle会查找目标恢复时间之前并与恢复时间最近的备份集。如果没有找到可用的备份集,就会报错。
 

RMAN备份与恢复 —— 完全恢复与不完全恢复的更多相关文章

  1. Oracle【IT实验室】数据库备份与恢复之四:RMAN(备份与恢复管理器)

    RMAN是ORACLE提供的一个备份与恢复的工具,可以用来备份和还原数据库文件. 归档日志和控制文件.它也可以用来执行完全或不完全的数据库恢复. RMAN可以由命令行接口或者 OEM的 Backup ...

  2. RMAN 备份与恢复深入解析(二)

    RMAN 备份与恢复深入解析(一)  http://space.itpub.net/26686207/viewspace-760869 更多精彩内容尽在 www.leonarding.com < ...

  3. RMAN备份与恢复实践(转)

    1   RMAN备份与恢复实践 1.1  备份 1.1.1 对数据库进行全备 使用backup database命令执行备份 RMAN> BACKUP DATABASE; 执行上述命令后将对目标 ...

  4. RMAN备份与恢复之概念二

      1   RMAN备份恢复 1.1  基础理论 恢复可以分为完全恢复和不完全恢复 完全数据库恢复是恢复到故障发生前的状态,所有已经提交的操作都进行恢复,确保数据库不丢失任何数据,完全恢复只用于归档模 ...

  5. RMAN备份与恢复(一)--认识RMAN

    RMAN(Recovery Manager)是Oracle恢复管理器的简称,是集数据库备份(backup).修复(restore)和恢复(recover)于一体的工具.接下来了解一下RMAN中的几个重 ...

  6. RMAN备份与恢复之不完全恢复

    要点:对于RMAN的不完全恢复,有如下步骤: 1)加载数据到mount状态(建议恢复前先做备份) 2)为高并发分配多个通道 3)还原所有(所需)的数据文件 4)使用until time,until s ...

  7. 【RMAN】使用RMAN备份将数据库不完全恢复到指定时间点

    RMAN作为Oracle强大的备份恢复工具,可以协助我们恢复数据库到指定时间点,这便是Oracle不完全恢复的一种体现,通过这种方法可以找回我们曾经丢失的数据.这里以找回误TRUNCATE表数据为例给 ...

  8. oracle 备份恢复篇(二)---rman 增备恢复--不完全恢复

    一,环境准备 全备脚本: export TMP=/tmp export TMPDIR=$TMP export ORACLE_BASE=/u01 export ORACLE_SID=prod expor ...

  9. RMAN备份与恢复实例

    1. 检查数据库模式:   sqlplus /nolog    conn /as sysdba   archive log list (查看数据库是否处于归档模式中) 若为非归档,则修改数据库归档模式 ...

随机推荐

  1. 【ZJOI2008】树的统计

    题目 一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w. 我们将以下面的形式来要求你对这棵树完成一些操作: I. CHANGE u t : 把结点u的权值改为t II. QMAX u v: ...

  2. echart-折线图,数据太多想变成鼠标拖动和滚动的效果?以及数据的默认圈圈如何自定义圆圈的样式

    1.数据太多怎么办???想拖拽,想滑动 dataZoom: [ { type: 'slider', } ] dataZoom: [ { type: 'inside',  }] 两种功能都需要,还想调样 ...

  3. 原生js控制控制--弹窗的显示和隐藏

    以防浪费大家的时间,还是先上效果图吧,满足您的需求就往下look吧. 重要知识点:点击其他地方,也就是除了小叉子之外的地方也能够关闭弹窗哦.代码已标红    html代码: <button id ...

  4. mysql ORDER BY语句 语法

    mysql ORDER BY语句 语法 作用:用于对结果集进行排序. 语法:顺序:SELECT * from 表名 ORDER BY 排序的字段名  倒序:SELECT * from 表名 ORDER ...

  5. Deque 容器

    1.Deque (1)定义 deque容器是C++标准模版库(STL,Standard Template Library)中的部分内容.deque容器类与vector类似,支持随机访问和快速插入删除, ...

  6. Android-Studio:Cannot reload AVD list

    Android-Studio:Cannot reload AVD list 今天用Android-Studio时点击"RUN"后出现如下错误,特此记录一下解决方案. Cannot ...

  7. 转载:mybatis中<![CDATA[]]>的作用

    作者:QH_JAVA 来源:CSDN 原文:https://blog.csdn.net/qh_java/article/details/50755655?utm_source=copy 在使用myba ...

  8. h5离线缓存

    离线缓存:application cache 什么是离线缓存: 离线缓存可以将站点的一些文件缓存到本地,它是浏览器自己的一种机制,将需要的文件缓存下来,以便后期即使没链接网络,被缓存的页面也可以展示 ...

  9. SSH 连接慢 等好久

    SSH连接慢,要等好久好久,有时出现输入密码提示符,输入密码回车立即就超时了. ssh -v xxx.xxx.xxx.xxx   看到是GSS的问题. 解决办法,在两边SSH上配置,UseDNS如果被 ...

  10. 高清摄像头MIPI接口与ARM连接【转】

    本文转载自:http://www.cnblogs.com/whw19818/p/5811299.html MIPI摄像头常见于手机.平板中,支持500万像素以上高清分辨率.它的全称为“Mobile I ...