1. Report 命令
用户判断数据库的当前可恢复状态和提供数据库备份的特定信息
1.1 指定最近没有备份的数据文件
查询3天内没有备份过的表空间,可以用如下命令:
RMAN> report need backup days=3;
1.2 报告备份冗余或恢复窗口
可以用report need backup redundancy 命令来确定为满足备份冗余策略而需要备份的数据文件。
RMAN> report need backup redundancy =4;
RMAN> report need backup recovery window of 2 days;
1.3 报告数据文件的不可用恢复操作
如果对于表空间中对象和组成这些表空间的数据文件执行了某些不可恢复操作,那么会导致在恢复的时候出现异常,我们可以用report查看这些不可用的对象。
RMAN> report unrecoverable;
1.4 报告数据库模式(Schema)
这里的Schema指的是数据库的物理结构,包括数据文件名,数据文件号,为这些数据文件指派的表空间,数据文件的大小,以及数据文件是否含有回滚段。
RMAN> report schema;

2. Validate
2.1 效验所有的数据文件和控制文件,如果使用spfile 文件,也会效验。
RMAN> VALIDATE DATABASE; (11g 新特性)
2.2 验证某一个备份集
RMAN> validate backupset 8;
2.3 validate 某一个数据块
RMAN> VALIDATE DATAFILE 1 BLOCK 10;

3. BACKUP ... VALIDATE
backup…validate 命令做如下的效验:
(1) 检查数据文件是否存在物理或者逻辑的坏块
(2) 检查所有的数据文件是否都存在,并且存在正确的位置。
当运行backup validate时,RMAN 会按照正常的备份来读取所有的数据文件。 但是RMAN 不会产生任何的backup sets 和 image copy。
当我们使用backup validate时,不能使用backupset,maxcorrupt,proxy参数。如果想要效验某个指定的备份集,可以使用我们之前讲的validate命令。
3.1如果我们想要效验所有的数据文件和归档日志,可以运行如下命令: ( 只效验物理的损坏 )
RMAN>backup validate database archivelog all;
3.2 既效验物理的损坏,又效验逻辑的坏块
(注意: 如果加上了archivelog all,就必须要有归档文件存在,如果没有归档文件,会报如下错误:rman-20242、rman-03002 )
RMAN>backup validate check logical database archivelog all;

4. List
4.1 查看 backupset 的编号
RMAN> list backup summary;
Key TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag
------- -- -- - ----------- --------------- ------- ------- ---------- ---
36 B 0 A DISK 11-JUL-13 1 1 NO ORA11GR2_LEVEL0
37 B 0 A DISK 11-JUL-13 1 1 NO ORA11GR2_LEVEL0
39 B A A DISK 11-JUL-13 1 1 NO ARC_BAK
43 B F A DISK 11-JUL-13 1 1 NO TAG20130711T203435
KEY(关键字): 表示备份集序列号
TY(类型)和LV列表示列的备份类型:
B[Backup] 表示备份
F[Full] 表示完全备份
A[Archivelog]
0和1 表示增量备份[Incremental backup]
S 列说明备份的状态: A 表示Available,X 表示Expired.
Device Type: 说明备份的设备是磁带还是磁盘
4.2 按备份类型列出备份
列出数据文件备份,归档日志备份,控制文件和spfile文件备份列出备份信息。
RMAN> list backup by file;
RMAN> list backup of controlfile;
RMAN> list backup of spfile;
4.3 列出到期的备份
RMAN> list expired backup;
RMAN> list expired backup of archivelog all;
4.4 按表空间名和数据文件号列出备份
RMAN> list backup of tablespace users;
RMAN> list backup of datafile 3;
4.5 列出归档日志备份
4.5.1 查看当前存在的归档日志(并不意味着它们已经备份)
RMAN> list archivelog all;
4.5.2 列出归档日志备份
RMAN> list backup of archivelog all;
4.5.2 列出备份中过期的归档
RMAN> list expired backup of archivelog all;
设定时间或日志序列号来限制报告中显示的内容,如:
RMAN> list expired backup of archivelog until sequence 3;
RMAN> list expired backup of archivelog until time "to_date('2013-4-1','yyyy-mm-dd')";
4.6 列出incarnation
RMAN> list incarnation;
DB Key Inc Key DB Name DB ID STATUS Reset SCN Reset Time
------- ------- -------- ---------------- --- ---------- ----------
1 1 ORCL 1388303183 PARENT 1 15-AUG-09
2 2 ORCL 1388303183 PARENT 945184 09-OCT-14
3 3 ORCL 1388303183 ORPHAN 2000932 11-DEC-14
。。。
7 7 ORCL 1388303183 CURRENT 3450137 12-MAR-15
Status 列:该列列出的是incarnation的状态 (下面是几个状态值的含义)
Parent:表明对应物是非当前的incarnation
Current:当前的incarnation
ORPHAN:孤立的incarnation, 即在resetlogs命令之后进行恢复
重置SCN(Reset SCN)和重置时间(Reset Time):
说明创建数据库incarnation的时间,这也是第一个条目的Reset SCN为1的原因。 该列对使用resetlogs命令进行恢复有用,并使得能较容易的恢复到前面的incarnation。
注意一点:
使用恢复目录和不使用恢复目录这里的输出在Inc Key 上有差异。

5. crosscheck
5.1检查备份集和实际的文件
备份集有两种状态:
A(Available,RMAN认为该项存在于备份介质上),
X(Expired,备份存在于控制文件或恢复目录中,但是并没有物理存在于备份介质上)
说明:当设置备份保存策略后,一个备份过期,crosscheck之后标记为丢弃的备份状态依旧为availabel。备份策略不会删除过期的备份集,可以使用report obsolete命令查看过期的备份,delete obsolete 命令删除过期的备份。
5.2 交叉验证归档日志示例:
RMAN> crosscheck archivelog all;
补充:假如我们在oracle数据库在迁移当中不小心丢失了一个归档文件, 此时RMAN 会因为缺少归档日志而不能完成备份
解决方法,执行下面2条命令即可: (原理是datafiles都存在,而归档都是记录已经commit的事务,所以数据库是一致的)
RMAN>crosscheck archivelog all; -- 检查控制文件和实际物理文件的差别
RMAN>delete expired archivelog all; -- 同步控制文件的信息和实际物理文件的信息

6. delete
Rman备份中obsolete和expired的区别
obsolete:与retention policy相关,当备份或者副本根据保存策略而被丢弃的时候,就会被标记为该状态。
expired:使用crosscheck对备份进行校验,当备份或者副本被存储在rman目录中,但是并没有物理存在于备份介质上时,就会被标记为该状态;在操作系统层删除备份集后,用crosscheck 检测后就标志为X(expired)。通常指丢失(被删除)的备份。
Delete expired;
Delete obsolete;

7. RESTORE…VALIDATE
RESTORE…VALIDATE命令可以效验备份集中的某个特殊的datafile 或者backupset 能否用来进行restore操作。
必须在数据库mounted 状态或者open状态才可以使用该命令。 当我们效验数据文件时,不需要将datafiles offline。 因为我们效验数据文件时,仅仅从备份集中读取,不会影响生产环境中的数据文件。当我们效验的文件存在磁盘或者磁带上, RMAN 会读取备份片或者image copy中的所有blocks, 以验证这些备份片能否用来进行一个真实的restore操作。
7.1 效验整个数据库和所有归档的命令:
restore controlfile validate;
restore spfile validate;
RESTORE DATABASE VALIDATE;
RESTORE ARCHIVELOG ALL VALIDATE;
--如果出现类似如下的错误,就表示这个备份集不能够用来进行恢复:
RMAN-06026: some targets not found - aborting restore
The following sample output shows that RMAN encountered a problem reading the specified backup:
RMAN-03009: failure of restore command on c1 channel at 12-DEC-06 23:22:30
ORA-19505: failed to identify file "oracle/dbs/1fafv9gl_1_1"
ORA-27037: unable to obtain file status
SVR4 Error: 2: No such file or directory
Additional information: 3
7.2 验证spfile 有效性
RMAN> restore spfile validate;
7.3 验证控制文件
RMAN> restore controlfile validate;
7.4 验证归档有效性
RMAN> restore archivelog all validate;
7.5 单独效验某些归档文件:
RMAN> restore archivelog sequence 54 validate;

8 change
Change 命令允许用户修改备份集的状态。我们可能会遇到备份介质设备在某个时间段中无效的情况(如突然断电)。这时,我们就可以使用change 命令来指示这个设备上的备份是不可用的。解决硬件故障和修复磁盘后,可以再次执行change 命令,将备份改为可用的状态。
也可以将备份修改为不可用的状态。在还原和恢复操作期间,不会考虑哪些不可用的备份,但在执行delete expired命令期间这些备份记录不会被删除。
RMAN> list backup summary;
RMAN> Change backupset 16 unavailable;
RMAN> list backup summary;
RMAN> Change backupset 16 available;

rman命令详解(三)的更多相关文章

  1. RMAN命令详解和常用汇总

    RMAN命令详解和常用汇总转摘汇集,日后使用本文链接:https://blog.csdn.net/EVISWANG/article/details/50448370http://blog.itpub. ...

  2. Oracle rman 命令详解

    一.list常用命令总结备忘 list命令列出控制文件.RMAN恢复目录中备份信息, 是我们对所有可见的数据库备份文件的一个最直观的了解的方法 list incarnation;    list ba ...

  3. Linux命令详解 三

    Linux用户和组的属性与权限本章结构1.用户账号和组账号概述2.用户账号和组账号管理3.查询账号信息4.查看目录或文件的属性5.设置目录或文件的权限6.设置目录或文件的归属 前言在linux中一切都 ...

  4. Linux防火墙iptables学习笔记(三)iptables命令详解和举例[转载]

     Linux防火墙iptables学习笔记(三)iptables命令详解和举例 2008-10-16 23:45:46 转载 网上看到这个配置讲解得还比较易懂,就转过来了,大家一起看下,希望对您工作能 ...

  5. Hexo系列(三) 常用命令详解

    Hexo 框架可以帮助我们快速创建一个属于自己的博客网站,熟悉 Hexo 框架提供的命令有利于我们管理博客 1.hexo init hexo init 命令用于初始化本地文件夹为网站的根目录 $ he ...

  6. linux awk命令详解

    linux awk命令详解 简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分 ...

  7. Git 常用命令详解

    Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如:linux kernel),管理私人的文档和源代码也有很多优势(如:wsi-lgame-pro) Git 的更多介绍 ...

  8. Linux上的free命令详解、swap机制

    Linux上的free命令详解   解释一下Linux上free命令的输出. 下面是free的运行结果,一共有4行.为了方便说明,我加上了列号.这样可以把free的输出看成一个二维数组FO(Free ...

  9. scp命令详解

    \ svn 删除所有的 .svn文件 find . -name .svn -type d -exec rm -fr {} \; linux之cp/scp命令+scp命令详解   名称:cp 使用权限: ...

随机推荐

  1. Mybatis中的关联映射和查询

    一.商品订单数据模型 1.数据表 这里定义了四个表,分别表示用户,商品,订单,和订单详情. 用户表user CREATE TABLE `user` ( `id` int(11) NOT NULL AU ...

  2. 《Java线程池》:任务拒绝策略

    在没有分析线程池原理之前先来分析下为什么有任务拒绝的情况发生. 这里先假设一个前提:线程池有一个任务队列,用于缓存所有待处理的任务,正在处理的任务将从任务队列中移除.因此在任务队列长度有限的情况下就会 ...

  3. 九度OJ 1214:丑数 (整除)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:2180 解决:942 题目描述: 把只包含因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含因 ...

  4. 【python】-- 面向对象引子、概念

    面向过程编程 1.编程范式 编程是 程序 员 用特定的语法+数据结构+算法组成的代码来告诉计算机如何执行任务的过程 , 一个程序是程序员为了得到一个任务结果而编写的一组指令的集合,正所谓条条大路通罗马 ...

  5. Java基础 - 变量转换

    在java中变量转发分为两种,隐式转换和强制转换 隐式转换: byte a = 10; int b = 20; byte c = a + b; // 该方法会报错,转换过程中字节数只能从小变大,不能从 ...

  6. 如何将gedit变成c++编译器

    本蒟蒻的第一篇文章,分享一下神佬教我的好东西 ——将Ubuntu 16.04上gedit变为编译器! 1° 新建文档.然后点击编辑,打开首选项. 2° 勾选外部工具,然后退出.打开工具,选择Manag ...

  7. android 自定义progressbar 样式

    在res下创建drawable文件夹,新建文件drawable/progressbar_color.xml <layer-list xmlns:android="http://sche ...

  8. python基础13 ---函数模块3(正则表达式)

    正则表达式 一.正则表达式的本质 1.正则表达式的本质(或 RE)是一种小型的.高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过 re 模块实现.正则表达式模式被编译成一系列的 ...

  9. vim 光标的移动和跳转文件的位置

    刚启动vim进入的就是命令模式 在命令模式下 h等于左箭头 j等于下箭头 k等于上箭头 l等于右箭头 想要多次移动可以使用30j或30↓向下移动30行 在命令模式下输入0跳到行头 在命令模式下输入$跳 ...

  10. vi使用方法详细介绍

    vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令.由于对Unix及Linux系统的任何版本,vi编辑器是完全相 ...