1. 完整恢复:
2. 不完整恢复:应对误操作的情况
DRA(Data Recovery Advisor): 数据恢复顾问
有RMAN和em两种界面
Health Monitor :一组检查,会在特定条件出现的时候自动运行,也能够根据dba的指示以手动方式去运行
检查结果不储存在db,而是储存在文件系统中,
不同的阶段运行不同的health monitor 检查
1. 在nomount模式中,仅检查控制文件完整性
2. mount模式中,检查控制文件,online redo,和数据文件头的完整性,并且还将运行Redo Integrity Check来检查redo和archivelog的可用性及其是否受损
3. 在open模式中,可能运行扫描整个数据库块是否受损的检查,并检查数据字典和撤销段的完整性
只有DB处于打开的状态时,才允许手动运行health monitor检查的界面
来个最简单的真实案例:
rman target /
list backup of tablespace sysaux; //是否有sysaux的备份
backup as backupset tablespace sysaux; //假如没有FULL类型的,新建一个
关闭实例,退出RMAN:
shutdown immediate;
exit;
在OS中删除sysaux的位置
使用sqlplus连接后启动,发现卡在了mount-->open状态
#开始解决问题
#1. 诊断问题
list failure
#2. 生成有关故障的建议
advise failure
#仔细阅读,写的非常清楚,里面提到了大体解决方法,注意,一般只有在list failure完成之后才能正确执行advise failure
repair failure;
#按照提示走,提示里面有具体的操作步骤,假如认同,那么同意就好
非归档日志日志下的数据库文件恢复
注意:假如在非归档日志模式下,那么只能进行还原,只能返回上一次备份的时刻,会丢失备份创建后所做的所有工作
结论:假如处于非归档日志模式下,那么数据文件丢失后的唯一选择就是还原数据库或者是删除相关的表空间,不能进行恢复
非归档情况下还原数据库的RMAN命令:
shutdown abort; //注意是强制关闭,不然可能会在往数据文件中刷新的时候卡住
startup mount; //打开加载模式(加载上控制文件)
restore database; //从最近的完整或者增量0备份还原所有数据文件
alter database open resetlogs; //重新创建联机日志文件成员,将日志序列号设置为1并打开数据库
假如使用了增量备份,那么需要recover命令应用增量备份:
recover database noredo;
将会定位所有的level 1 备份并应用,需要NOREDO限定指示RMAN不需要任何重做数据