ITPub博客

首页 > 数据库 > Oracle > 不完全恢复

不完全恢复

原创 Oracle 作者:leon830216 时间:2014-02-23 22:02:36 0 删除 编辑
用户管理的不完全恢复
-----------------------------------------------------------------
- 注意
-- 当前状态含有offline表空间(当前ctl文件识别)的情况下,不论是完全恢复还是不完全恢复,恢复后offline表空间数据文件均不可用,均需要删除。若要恢复到可用状态,需使用online时刻的备份控制文件来恢复到offline之前状态。
-- 不完全恢复时,各个数据文件可以不是同一状态的备份,但必须都早于要恢复到的时间点
-- resetlogs之后,之前的备份可以进行完全或不完全恢复,但恢复时间点只能是resetlogs之后的时间点,resetlogs之前的时间点不可恢复

???????????????????????只读表空间?????????????????????????
不完全恢复时,自动改变只读表空间的状态为恢复时间点时的状态

- 不完全恢复之前的全备份(所有datafile,ctlfile,redologfile)
-- ctl file
alter database backup controlfile to 'c:\aaa.bak'
alter database backup controlfile to trace;

-- redo log file
alter system switch logfile
alter system archivelog current

-- restore all data file
ctl file,redo log file保持当前状态,拷贝回所有数据文件 --- 必须为恢复时间点之前的备份

-- startup mount

-- recover database
recover [automatic] database until time '2009-01-01 12:00:00'
recover [automatic] database until scn 12345
recover [automatic] database until cancel

-- resetlogs
alter database open resetlogs;

-- 查看log,此时log序号为1
select group#,sequence#,status from v$log

-- 确认恢复成功,进行全库冷备

RMAN不完全恢复
-----------------------------------------------------------------
- 基于时间点恢复
startup mount;
run{
set until time="to_date('2009-11-07 21:20:56','yyyy-mm-dd hh24:mi:ss')";
restore database;
recover database;
}
alter database open resetlogs;

- 基于scn恢复
startup mount;
run{
set until scn=123456;
restore database;
recover database;
}
alter database open resetlogs;

- 基于log序号恢复
startup mount;
run{
set until sequence=123 thread 1;
restore database;
recover database;
}
alter database open resetlogs;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22558114/viewspace-1086574/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 重做日志的恢复
下一篇: RMAN备份脚本
请登录后发表评论 登录
全部评论

注册时间:2009-09-18

  • 博文量
    164
  • 访问量
    320016