一,环境背景
拥有全备数据库
全备脚本:
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 export TMP=/tmp 2 export TMPDIR=$TMP 3 export ORACLE_BASE=/u01 4 export ORACLE_SID=prod 5 export ORACLE_HOME=/u01/oracle/db_1 6 export ORACLE_TERM=xterm 7 export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin 8 export LANG=en_US 9 rman target / log /u01/backup/rman_full.log append<<EOF 10 run 11 {allocate channel c1 type disk; 12 allocate channel c2 type disk; 13 backup database filesperset 4 format '/u01/backup/full_%d_%T_%s_%p'; 14 sql 'alter system archive log current'; 15 sql 'alter system archive log current'; 16 sql 'alter system archive log current'; 17 backup archivelog all format '/u01/backup/arch_%d_%T_%s_%p' delete input; 18 backup current controlfile format '/u01/backup/ctl_%d_%T_%s_%p'; 19 crosscheck backup; 20 crosscheck archivelog all; 21 delete noprompt obsolete; 22 delete noprompt expired backup; 23 delete noprompt expired archivelog all; 24 } 25 EOF
故障发生:
最后在看一眼自己数据在哪里:
-------------------------------------1--------------------------------------
二,恢复章节
打开数据库,敲了几行命令,哎没报错呀..........数据库好像没事
突然查看了下一个视图发现
感觉 出问题了.......#!@#!
他说文件不存在我们打开看看是不是没有文件
这时候你知道数据没了
关机恢复开始
第一步: 启动数据库到nomount状态
startup nomount
第二步: 恢复控制文件
查看备份文件,,找到这种文件,对应时间
rman target / 登入rman 命令界面
恢复控制文件
restore controlfile from '/u01/backup/ctl_PROD_20190228_695_1';
第三步启动数据库到mount状态
第四步,恢复数据
第五步恢复归档:
第六步 打开数据库到resetlogs模式---重置redo
注意:一旦使用resetlogs之后,一定要立即备份全备
三,全备与数据查看
执行全备脚本
查看目录数据已经恢复回来了