逐步恢复Oracle 11gR2 数据库
set nls_date_format=YYYY-MM-DD HH24:MI:SS
rman target /
backup as compressed backupset
incremental level 0 database
format 'c:\app\full_%U' tag 'full';
插入数据1
sqlplus "/as sysdba"
archive log list;
create table t1 (a int);
insert into t1 values (111);
commit;
SQL> archive log list;
数据库日志模式 存档模式
自动存档 启用
存档终点 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 5
下一个存档日志序列 7
当前日志序列 7
alter system switch logfile;
insert into t1 values (222);
commit;
---当前日志序列 8
alter system switch logfile;
insert into t1 values (333);
commit;
---当前日志序列 11
--只备份部分归档日志
backup as compressed backupset archivelog until sequence=10;
backup current controlfile format 'c:\app\con_%U';
shutdown abort
删除所有的控制文件、数据文件、日志文件 模拟全库损坏
开始恢复 查看 再恢复过程
恢复控制文件 先恢复较小的sequence
rman target /
shutdown abort;
startup nomount;
restore controlfile from 'C:\APP\CON_1CLSM02M_1_1';
startup mount;
run {
set until sequence=9; # <-- 先到较前的一个号 这里oracle会恢复到8,是小于此值的最大值!!!
restore database;
recover database;
}
exit
只读打开,看看是否符合要求了
conn /as sysdba
alter database open read only;
select * from t1;
shutdown immediate;
startup mount;
继续修复
rman target /
recover database until sequence=9; # 逐步恢复 10 11 12 13
exit
重复以上只读打开、继续恢复的步骤 检查