rman命令详解(三)
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命令详解(三)的更多相关文章
- RMAN命令详解和常用汇总
RMAN命令详解和常用汇总转摘汇集,日后使用本文链接:https://blog.csdn.net/EVISWANG/article/details/50448370http://blog.itpub. ...
- Oracle rman 命令详解
一.list常用命令总结备忘 list命令列出控制文件.RMAN恢复目录中备份信息, 是我们对所有可见的数据库备份文件的一个最直观的了解的方法 list incarnation; list ba ...
- Linux命令详解 三
Linux用户和组的属性与权限本章结构1.用户账号和组账号概述2.用户账号和组账号管理3.查询账号信息4.查看目录或文件的属性5.设置目录或文件的权限6.设置目录或文件的归属 前言在linux中一切都 ...
- Linux防火墙iptables学习笔记(三)iptables命令详解和举例[转载]
Linux防火墙iptables学习笔记(三)iptables命令详解和举例 2008-10-16 23:45:46 转载 网上看到这个配置讲解得还比较易懂,就转过来了,大家一起看下,希望对您工作能 ...
- Hexo系列(三) 常用命令详解
Hexo 框架可以帮助我们快速创建一个属于自己的博客网站,熟悉 Hexo 框架提供的命令有利于我们管理博客 1.hexo init hexo init 命令用于初始化本地文件夹为网站的根目录 $ he ...
- linux awk命令详解
linux awk命令详解 简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分 ...
- Git 常用命令详解
Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如:linux kernel),管理私人的文档和源代码也有很多优势(如:wsi-lgame-pro) Git 的更多介绍 ...
- Linux上的free命令详解、swap机制
Linux上的free命令详解 解释一下Linux上free命令的输出. 下面是free的运行结果,一共有4行.为了方便说明,我加上了列号.这样可以把free的输出看成一个二维数组FO(Free ...
- scp命令详解
\ svn 删除所有的 .svn文件 find . -name .svn -type d -exec rm -fr {} \; linux之cp/scp命令+scp命令详解 名称:cp 使用权限: ...
随机推荐
- FineUIPro中如何支持多语言(全局资源文件和本地资源文件)
一个客户在邮件中问到了FineUIPro的多语言实现问题,其实 FineUIPro 并没有对此做特殊处理,因此直接使用 ASP.NET 原生支持的资源文件就能实现. 下面我们就以FineUIPro的空 ...
- gIt 常用 操作
git提交代码流程git status -- 查看当前仓库状态git add -- 添加到临时仓库git commit -m '注释' -- 添加到临时仓库git status -- 查看当前仓库 ...
- jsp联合javascript操作html
1 执行的先后顺序 jsp先处理,给页面里面的变量赋值等等.然后整个页面发送给客户端,在客户端执行javascipt相关的代码. 2 jsp文件的构成 html文件+java程序片段+jsp标签=js ...
- 【python】-- Socket粘包问题 ,解决粘包的几种方法、socket文件下载,md5值检验
上一篇随笔:“socket 接收大数据”,在win系统上能够运行,并且解决了大数据量的数据传输出现的问题,但是运行在linux系统上就会出现如下图所示的情况: 就是服务端两次发送给客户端的数据(第一次 ...
- oracle decode的用法
需求:分别统计emp表中1980,1981,1982,1987年入职的同事的数量. 这里用decode很容易就解决了: select sum(t.num_1980) as "1980&quo ...
- mybatis中查询结果进行分组
在用mybatis进行数据库查询时,对查询结果进行自动分组,在mapper.xml中的配置有些注意的地方,下面是实际项目中一个例子.在数据库中查询中如下: 在结果集中需要对alarmDate进行分组, ...
- LeetCode:验证回文串【125】
LeetCode:验证回文串[125] 题目描述 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 示例 1: 输入: ...
- Kattis - horrorfilmnight 【贪心】
题意 有两个人想去一起看电影,然后分别给出两个人 分别喜欢看的电影都在哪些天 然后 同一个人 不能连续看两天他不喜欢的电影 求他们最多可以看多少次电影 思路 先将两人喜欢看的电影进行排序, ① 选择两 ...
- 前端绘图方式Canvas和SVG的区别
Canvas和SVG是html5中支持2种可视化技术,都是可以在画布上绘制图形和放入图片.下面来介绍和分析一下他们. 一.Canvas 和 SVG 简介 1.什么是Canvas? Canvas 是H5 ...
- 有关java是编译型语言还是解释性语言
博客分类: 技术杂谈 JavaD语言JVMC++C# 小生现在大二, java学习的时间不到一年 但是自认学习效率还是比较高的,同时在java上用时也比较多 在周末,放假,暑假. 每天能花费12+个小 ...