一、不完全恢复特性
1、不完全恢复
不完全恢复仅仅是将数据恢复到某一个特定的时间点或特定的SCN,而不是当前时间点。不完全恢复会影响整个数据库,需要在MOUNT状 态下进行。在不完全恢复成功之后,通常需要使用 resetlogs 选项来打开数据库。当使用resetlogs后,SCN 计数器不会被重置,原来的日
志序号 log sequence 会结束,从新开始新的日志序列号。在Oracle里称之为产生一个新的incarnation。同时Oracle还会重置联机重做日
志内容,因此resetlogs之后建议重新全备数据库。
2、不完全恢复的情形
介质故障(media failure)导致部分或全部联机重做日志(online redo log)损坏
用户操作失误(user error)导致数据丢失,例如,用户由于疏忽而移除了表,提交了无效的数据到表
由于归档重做日志(archived redo log)丢失而无法进行完全恢复(complete recovery)
当前控制文件(control file)丢失,必须使用备份的控制文件打开(open)数据库
3、不完全恢复的步骤
关闭数据库并备份数据库(以防止恢复失败)
启动数据库到mount 状态
还原所有数据文件,同时可以选择还原控制文件(注意需要还原所有数据文件,而不仅仅是受损文件)
将数据库恢复至某个时间点、序列、或系统改变号
使用RESETLOGS关键字打开数据库
5、不完全介质恢复的几种类型
基于时间的恢复(Time-based recovery) 将数据恢复到指定的时间点
基于SCN 的恢复(Change-based recovery) 将数据恢复到指定的SCN
按重做日志序号恢复(Log sequence recovery)将数据恢复到指定的重做日志序号(仅使用RMAN时有效)
create user weisi_huifu identified by weisi default tablespace RMAN_TBS
grant select on DBA_OBJECTS to WEISI_HUIFU;
grant connect to WEISI_HUIFU;
grant resource to WEISI_HUIFU;
RMAN> backup database;
sqlplus weisi_huifu/weisi@weisi
create table t as select * from sys.dba_objects;
select count(1) from t;
145088
select dbms_flashback.get_system_change_number, SCN_TO_TIMESTAMP(dbms_flashback.get_system_change_number) from dual;
2641340
t_norecover
22290564
insert into t select * from t;
commit;
alter system switch logfile;
alter system checkpoint;
shutdown immediate;
RMAN> startup mount;
restore database from /opt/soft/recover/ORCL/backupset/2016_04_23/o1_mf_nnndf_TAG20160423T195019_ckprcw0l_.bkp;
recover database until scn 22290564;
alter database open resetlogs;
SQL> select count(1) from t_norecover;
网友评论