现在轮到测试using backup controlfile
先进行全库备份
[oracle@linuxsvr oradata]$ cp ./ora10r2/*.dbf ./ora10r2_bak
数据库打开之后进行,再次进行controlfile的离线备份,即controlfile比datafile要新
16:19:48 SQL> shutdown abort
ORACLE instance shut down.
[oracle@linuxsvr ora10r2]$ cp control01.ctl control01.ctl.bak
16:21:33 SQL> alter database open;
Database altered.
16:22:13 SQL> alter system switch logfile;
System altered.
16:25:58 SQL> /
System altered.
16:25:59 SQL> /
16:26:16 SQL> shutdown abort
ORACLE instance shut down.
进行数据文件和控制文件恢复
[oracle@linuxsvr oradata]$ mv ora10r2 ora10r2_new
[oracle@linuxsvr oradata]$ mv ora10r2_bak ora10r2
[oracle@linuxsvr oradata]$ cp ora10r2_new/control01.ctl ./ora10r2
16:26:41 SQL> startup mount
ORACLE instance started.
Total System Global Area 285212672 bytes
Fixed Size 1218968 bytes
Variable Size 88082024 bytes
Database Buffers 188743680 bytes
Redo Buffers 7168000 bytes
Database mounted.
16:29:45 SQL> select checkpoint_change# from v$datafile;
CHECKPOINT_CHANGE#
------------------
568284
568284
568284
568284
526657
16:30:03 SQL> select checkpoint_change# from v$datafile_header;
CHECKPOINT_CHANGE#
------------------
527735
527735
527735
527735
526657
可以看到由于controlfile为离线备份,且比数据文件新,故不用using backup controlfile选项
16:30:12 SQL> recover database;
ORA-00279: change 527735 generated at 12/19/2010 16:15:38 needed for thread 1
ORA-00289: suggestion : /oradata/archlog/1_6_738173171.dbf
ORA-00280: change 527735 for thread 1 is in sequence #6
16:30:37 Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
auto
ORA-00279: change 547852 generated at 12/19/2010 16:19:09 needed for thread 1
ORA-00289: suggestion : /oradata/archlog/1_7_738173171.dbf
ORA-00280: change 547852 for thread 1 is in sequence #7
ORA-00278: log file '/oradata/archlog/1_6_738173171.dbf' no longer needed for
this recovery
。。。
Media recovery complete.
16:33:36 SQL> alter database open;
Database altered.
先进行全库备份
[oracle@linuxsvr oradata]$ cp ./ora10r2/*.dbf ./ora10r2_bak
数据库打开之后进行,再次进行controlfile的离线备份,即controlfile比datafile要新
16:19:48 SQL> shutdown abort
ORACLE instance shut down.
[oracle@linuxsvr ora10r2]$ cp control01.ctl control01.ctl.bak
16:21:33 SQL> alter database open;
Database altered.
16:22:13 SQL> alter system switch logfile;
System altered.
16:25:58 SQL> /
System altered.
16:25:59 SQL> /
16:26:16 SQL> shutdown abort
ORACLE instance shut down.
进行数据文件和控制文件恢复
[oracle@linuxsvr oradata]$ mv ora10r2 ora10r2_new
[oracle@linuxsvr oradata]$ mv ora10r2_bak ora10r2
[oracle@linuxsvr oradata]$ cp ora10r2_new/control01.ctl ./ora10r2
16:26:41 SQL> startup mount
ORACLE instance started.
Total System Global Area 285212672 bytes
Fixed Size 1218968 bytes
Variable Size 88082024 bytes
Database Buffers 188743680 bytes
Redo Buffers 7168000 bytes
Database mounted.
16:29:45 SQL> select checkpoint_change# from v$datafile;
CHECKPOINT_CHANGE#
------------------
568284
568284
568284
568284
526657
16:30:03 SQL> select checkpoint_change# from v$datafile_header;
CHECKPOINT_CHANGE#
------------------
527735
527735
527735
527735
526657
可以看到由于controlfile为离线备份,且比数据文件新,故不用using backup controlfile选项
16:30:12 SQL> recover database;
ORA-00279: change 527735 generated at 12/19/2010 16:15:38 needed for thread 1
ORA-00289: suggestion : /oradata/archlog/1_6_738173171.dbf
ORA-00280: change 527735 for thread 1 is in sequence #6
16:30:37 Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
auto
ORA-00279: change 547852 generated at 12/19/2010 16:19:09 needed for thread 1
ORA-00289: suggestion : /oradata/archlog/1_7_738173171.dbf
ORA-00280: change 547852 for thread 1 is in sequence #7
ORA-00278: log file '/oradata/archlog/1_6_738173171.dbf' no longer needed for
this recovery
。。。
Media recovery complete.
16:33:36 SQL> alter database open;
Database altered.