不完全恢复分为用户不完全恢复和RMAN不完全恢复。若联机重做日志文件或者归档日志文件有丢失,则只能进行不完全恢复。
一.不完全恢复的分类
1.time recover选项,指定恢复到某个时间点,常用。
2.cancel recover选项,停止在某个日志切换序列号处,通常只在归档日志文件受损或丢失的情况下使用,从而无法进一步恢复。
3.change-base recover选项,指定到某个SCN号。
4.在所有情况下都将恢复到恰好在请求的停止点之前的变更向量,比如将不会应用到指定的SCN。
二.执行不完全恢复的步骤
1.关闭和备份数据库或者某些数据文件;
2.加载数据库。
3.还原数据文件(必要时还原控制文件);
4.将数据库恢复到某个时间点;
5.使用重置日志(resetlog)打开数据库。
三.基于时间的恢复
指定到某个时间点,但是要注意其时间的格式是不允许改变的,无论在SQL*PLUS会话中如何设置它的NLS_DATE_FORMAT ,日期必须是yyyy-mm-dd:hh24:mi:ss。
1.在用户Dave下创建个表sunny,插入数据,
SQL> create table sunny (id int,name char(10)) tablespace app1;
Table created.
SQL> insert into sunny values(0,'baby');
1 row created.
SQL> commit;
Commit complete.
手动发生检查点,
SQL> alter system checkpoint;
System altered.
这样数据写进了数据文件app1_01.dbf。
2.关闭数据库,对app1_01.dbf数据文件做个备份,插入新的数据
备份数据文件,
[oracle@oracle11g wilson]$ cp app1_01.dbf /u01/ubackup/cold
打开数据库,插入新数据
SQL> insert into sunny values(1,'Jasper');
1 row created.
SQL> commit;
Commit complete.
查看当前时间,
SQL> select to_char(sysdate,'DD-MON-YYYY HH24:MI:SS') from du