练习rman 逐步恢复归档日志
时间:2010-11-10 来源:brjl
逐步恢复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 重复以上只读打开、继续恢复的步骤 检查
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 重复以上只读打开、继续恢复的步骤 检查
相关阅读 更多 +