手动——rman 不完全恢复

如果出现了日志断点就要进行不完全恢复

不完全恢复可以用手动,也可以用rman,当然最好用flashback。不管用那种方式,都需要用控制文件。无论控制文件是新的还是旧的都可以用来恢复。

如果是控制文件时最新的,则不完全恢复后,不能recover database,不然就将数据文件恢复到控制文件记录的scn的地方,直接到最新了。
如果用旧的控制文件恢复,数据文件和控制文件一起恢复到指定的scn或时间点。因为控制文件和数据文件始终同步,那recover database就没有意义了。因为recover database就是让数据文件前进到和控制文件同步


手动   不完全恢复(用新的控制文件恢复
1、将所有备份的数据文件考回数据目录下
2、startup mount
3、控制文件,数据文件中scn不一致
SQL> select checkpoint_change# from v$datafile;                                       控制文件中

CHECKPOINT_CHANGE#
------------------
    836757
SQL> select checkpoint_change# from v$datafile_header;                           数据文件中

CHECKPOINT_CHANGE#
------------------
    836575                                                                                  scn  较小, 数据文件太旧

4、不完全恢复
SQL>  recover database until cancel
5、查看数据文件,控制文件的scn
SQL> select checkpoint_change# from v$datafile;                                       控制文件中

CHECKPOINT_CHANGE#
------------------
    836757
SQL> select checkpoint_change# from v$datafile_header; ;                           数据文件中

CHECKPOINT_CHANGE#
------------------
    836700                                                                                     scn前进了,但是还是不一致
6、打开数据库
alter database open resetlogs
7、查看数据文件,控制文件的scn
SQL> select checkpoint_change# from v$datafile;                                       控制文件中

CHECKPOINT_CHANGE#
------------------
    836702                                                                                   scn回退了,但是一致了
SQL> select checkpoint_change# from v$datafile_header; ;                           数据文件中

CHECKPOINT_CHANGE#
------------------
    836702


rman  不完全恢复(用旧的控制文件恢复
1、导回旧的控制文件
RMAN> restore controlfile from '/opt/oracle/flash_recovery_area/ORCL/backupset/2013_06_29/o1_mf_ncsnf_TAG20130629T182624_8wxfnb87_.bkp';
2、挂载数据库
RMAN> alter database mount;
3、执行脚本
RMAN> @/home/oracle/a.sql 

run{
sql 'alter session set nls_date_format="yyyy-mm-dd hh24:mi:ss"';
set until time '2013-06-29 18:27:51'; 
restore database;
recover database;
alter database open resetlogs; 
}
run{
set until scn 877131;
restore database;
recover database;
alter database open resetlogs;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值