控制文件数据文件 备份不同时 恢复尝试
【问题与背景】
使用备份控制文件恢复,是不是一定恢复不了在线日志中的数据吗?
答案是错误的,其实也能完全恢复(当然我们用trace更好)
还原用到的主要语句
select GROUP#,SEQUENCE#,archived, STATUS from v$log;
GROUP# SEQUENCE# ARC STATUS
---------- ---------- --- ----------------
1 5 NO CURRENT
2 3 YES ACTIVE
3 4 YES ACTIVE
查看当前归档日志情况
select resetlogs_change# - 1,CONTROLFILE_CHANGE# from v$database;
查找当前数据库重作日志文件scn号和控制文件scn号
SQL> recover database using backup controlfile until cancel; -->>这个cancel是表示每次应用一个日志时都提示一下,直到输入cancel后结束
cancel选项允许每次前滚一个日志文件,当需要停止恢复时,输入cancel
,在这种方式下不会自动运用联机日志文件.
原理:
在用备份redo日志还原到最接近控制文件scn号的时候在指定在在线日志文件进行恢复
使得在线日志文件强制应用来恢复数据文件
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
C:\oracle\oradata\testdb\REDO01.LOG
现在开始模拟
有控制文件备份,先于控制文件备份的所有数据文件备份
使用在线日志进行完全恢复
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 101784276 bytes
Fixed Size 453332 bytes
Variable Size 75497472 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
数据库已经打开。
SQL> create table arch (status varchar(2)) tablespace users;
表已创建。
SQL> alter system switch logfile;
系统已更改。
SQL> insert into arch select 'ok' from dba_objects;
已创建6166行。
<