linux rman备份与恢复,RMAN备份与恢复 —— 完全恢复与不完全恢复
名词解释:
顾名思义,完全恢复就是指数据没有丢失的恢复了。不完全恢复是指恢复后有部分数据丢失。它们是数据库的两种恢复方式。
完全恢复:利用重做日志或增量备份将数据块恢复到最接近当前时间的时间点。之所以叫做完整恢复是由于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会查找目标恢复时间之前并与恢复时间最近的备份集。如果没有找到可用的备份集,就会报错。
--------------------------------------推荐阅读 --------------------------------------
--------------------------------------分割线 --------------------------------------
linux rman备份与恢复,RMAN备份与恢复 —— 完全恢复与不完全恢复相关推荐
- oracle数据库恢复aul_RMAN备份与恢复 —— 完全恢复与不完全恢复
名词解释: 顾名思义,完全恢复就是指数据没有丢失的恢复了.不完全恢复是指恢复后有部分数据丢失.它们是数据库的两种恢复方式. 完全恢复:利用重做日志或增量备份将数据块恢复到最接近当前时间的时间点.之所以 ...
- RMAN完全恢复与不完全恢复测试
RMAN完全恢复与不完全恢复测试 一.完全恢复 二.不完全恢复 2.1 基于时间点 2.2 基于日志序列号 2.3 基于SCN 恢复 2.4 通过INCARNATION不完全恢复 2.5 基于表空间时 ...
- Linux 下分区表的备份与恢复
Linux 下分区表的备份与恢复 分区表是磁盘分区的重要信息,一旦损坏磁盘将变得不可用,磁盘数据将会丢失,因此有必要备份磁盘分区表,并在分区表损坏的情况下利用备份信息对分区表进行恢复. 分区表备份 可 ...
- Linux 平台下 RMAN 全备 和 增量备份 shell 脚本
一. 一些准备知识 Oracle 分归档和非归档模式. 这两者的区别就是对redo log的处理.归档模式下,当一个redo log 写满之后,就会把这个redo log里的内容写入归档文件,等写完之 ...
- linux如何查看rman备份,linux下rman备份笔记
自动删除七天前的备份: crontab -e 00 00 * * * find /home/oracle/mybackup -name '*' -mtime +7 | xargs rm 即可! rma ...
- 【RMAN】RMAN脚本中使用替换变量
[RMAN]RMAN脚本中使用替换变量--windows 下rman全备脚本 一.1 BLOG文档结构图 一.2 前言部分 一.2.1 导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也 ...
- 【RMAN】RMAN脚本中使用替换变量--windows 下rman全备脚本
[RMAN]RMAN脚本中使用替换变量--windows 下rman全备脚本 一.1 BLOG文档结构图 一.2 前言部分 一.2.1 导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也 ...
- 使用RMAN工具-RMAN详解
<Oracle 11g 权威指南> 第21章 使用RMAN工具 21.2 RMAN资料档案库/恢复目录/控制文件 RMAN通过启用操作系统进程将数据备份到磁盘或者磁带上. 为了完成对目标 ...
- Oracle 运维篇+RAC集群转单实例/RMAN异机恢复/RMAN迁移/RMAN备份恢复操作概要
说明:本文为Oracle RAC集群转单实例/RMAN异机恢复/RMAN迁移/RMAN备份恢复操作概要方便用户查阅 温馨提示:如果您发现本文哪里写的有问题或者有更好的写法请留言或私信我进行修改优化 说 ...
- RMAN的rman: can't open target错误
在Linux上,安装完成之后,在测试RMAN时可能会遇到如下错误: [oracle@smsdbrac1 oracle]$ rman target / rman: can't open target 这 ...
最新文章
- python数据类型-Python3中六种标准数据类型的简单说明和理解
- 从javascript发展说到vue
- Gevent简明教程
- php显示表格,php – 显示所有表格行
- 手把手教你用7行代码实现微信聊天机器人 -- Python wxpy
- Hibernate架构概述
- 【渝粤教育】 国家开放大学2020年春季 1325妇产科学与儿科护理学 参考试题
- 日本語趣味読み 一 星とり
- 抓球球的机器人应该怎么玩_王者荣耀:在游戏中当自己优势队友劣势的时候应该怎么玩?...
- 网站微端服务器,微端服务器
- RHEL6.3 ftp服务器参数的戏说——不看白不看,看了不白看
- hdfs是nas_HDFS 协议是怎么回事
- java中else语句有错_java 菜鸟 If else有错误
- oracle test 卡死,oracle11g plsql调试存储过程卡死的处理技巧
- jqGrid Pager、Navigator和自定义按钮(转)
- Linux 下自动化脚本安装Jdk、Nginx等软件
- Hadoop基础教程之搭建开发环境及编写Hello World
- windows10下Qt安装及OpenCV配置
- 掂清自己在别人心中的分量,是人际…
- android 手机 拍 全景 java_android如何进行全景拍照怎么实现