日期:2014-05-17  浏览次数:20818 次

关于备份恢复的一个小问题,(冷备+当前的控制文件能不能跑归档?)
问题描述:①我将库shutdown immediate后冷备(数据文件、控制文件、日志文件)
          ②然后把库startup起来,做一系列的操作,提交,切归档。shutdown immediate
          ③然后把冷备的数据文件和日志文件拿来+做了一系列操作后的控制文件;我能不能跑归档把这个库恢复出来?

实验过程:
1、停库做冷备份
[oracle@dba oradata]$ cp -R tt ttbak
[oracle@dba oradata]$ ls
testbak  testyd  tt  ttbak

---其中tt目录是库的数据文件、控制文件、日志文件

2、把库起来做一系列的操作:

Database opened.
SQL> conn scott/tiger
Connected.
SQL> create table t1 as select * from emp;

Table created.

SQL> insert into t1 select * from t1;

14 rows created.

SQL> /

28 rows created.

SQL> /

56 rows created.

SQL> commit;

Commit complete.

SQL> conn /as sysdba
Connected.
SQL> alter system switch logfile;

System altered.

SQL> alter system switch logfile;

System altered.

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down

3、现在我用我的冷备份的数据文件和日志文件+做了一系列操作后的控制文件去跑归档恢复数据库

[oracle@dba oradata]$ ls
testbak  testyd  tt  ttbak
[oracle@dba oradata]$ mv tt tt001
[oracle@dba oradata]$ cp -R ttbak tt
[oracle@dba oradata]$ rm -rf tt/*.ctl
[oracle@dba oradata]$ cp tt001/*.ctl tt/
[oracle@dba oradata]$ ls
testbak  testyd  tt  tt001  ttbak

------现在tt目录下是冷备份的数据文件和日志文件+做了操作后的控制文件------

好,准备工作做完了,下面就是重点了


SQL> conn /as sysdba
Connected to an idle instance.
SQL> startup
ORACLE instance started.

Total System Global Area 1224736768 bytes
Fixed Size                  1219112 bytes
Variable Size             318768600 bytes
Database Buffers          889192448 bytes
Redo Buffers               15556608 bytes
Database mounted.
ORA-01113: file 1 needs media recovery
ORA-01110: data file 1: '/u01/app/oracle/oradata/tt/system01.dbf'


SQL> select status from v$instance;

STATUS
------------
MOUNTED

SQL> recover database until cancel
ORA-00279: change 5571109 generated at 07/24/2013 15:07:32 needed for thread 1
ORA-00289: suggestion :
/u01/app/oracle/flash_recovery_area/TT/archivelog/2013_07_24/o1_mf_1_2