alter database recover datafile VS recover datafile

November 2nd, 2007 | Categories: Boring | Tags:

最近被alter database recover datafile恶搞了一把,记之。

alter database recover datafile当数据文件需要使用已经归档的archived log file进行恢复的时候,会提示警告,但不会继续恢复;但数据库还处于media recovery模式,这种情况下,可以使用alter database recover logfile 继续media recovery。当数据库文件仅仅需要online redo log file就可以完成恢复的时候,alter database recover datafile会自动恢复。

比recover datafile恶搞多了。

该测试库上只有2个online redo log file group,

SQL> alter database datafile '/export/home/oracle/base10202/product/10.2.0.2/haozhu/bdump/viadea.dbf' offline;
 
Database altered.
 
SQL> alter system switch logfile;
 
System altered.
 
SQL> alter database recover datafile '/export/home/oracle/base10202/product/10.2.0.2/haozhu/bdump/viadea.dbf' ;
 
Database altered.
 
SQLalter database datafile '/export/home/oracle/base10202/product/10.2.0.2/haozhu/bdump/viadea.dbf' online;
 
Database altered.
 
SQLalter system switch logfile;
 
System altered.
 
SQLalter system switch logfile;
 
System altered.
 
SQLalter system switch logfile;
 
System altered.
 
SQLalter system switch logfile;
 
System altered.
 
SQL> alter database datafile '/export/home/oracle/base10202/product/10.2.0.2/haozhu/bdump/viadea.dbf' offline;
 
Database altered.
 
SQLalter system switch logfile;
 
System altered.
 
SQLalter system switch logfile;
 
System altered.
 
SQLalter system switch logfile;
 
System altered.
 
SQLalter system switch logfile;
 
System altered.
 
SQLalter database recover datafile '/export/home/oracle/base10202/product/10.2.0.2/haozhu/bdump/viadea.dbf' ;
 
alter database recover datafile '/export/home/oracle/base10202/product/10.2.0.2/haozhu/bdump/viadea.dbf'
*
ERROR at line 1:
ORA-00279: change 3183156 generated at 11/02/2007 15:31:52 needed for thread 1
ORA-00289: suggestion : /export/home/oracle/base10202/product/10.2.0.2/dbs/arch1_415_631145392.dbf
ORA-00280: change 3183156 for thread 1 is in sequence #415
 
 
这时候可以使用
alter database recover logfile '/export/home/oracle/base10202/product/10.2.0.2/dbs/arch1_415_631145392.dbf';继续恢复的。不过这个命令以前从来没有见过。
 
 
SQLrecover datafile '/export/home/oracle/base10202/product/10.2.0.2/haozhu/bdump/viadea.dbf' ;
ORA-00275: media recovery has already been started
 
SQLalter database recover cancel;
 
Database altered.
 
SQLrecover datafile '/export/home/oracle/base10202/product/10.2.0.2/haozhu/bdump/viadea.dbf' ;
ORA-00279: change 3183156 generated at 11/02/2007 15:31:52 needed for thread 1
ORA-00289: suggestion : /export/home/oracle/base10202/product/10.2.0.2/dbs/arch1_415_631145392.dbf
ORA-00280: change 3183156 for thread 1 is in sequence #415
 
 
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
auto
Log applied.
Media recovery complete.
SQL>

之前只记得有”alter database recover datafile”这样的语法,忘记了recover datafile,搞的我花费了好多时间。

Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪 ViVi 365Key 网摘 天极网摘 和讯网摘 博拉网 POCO 网摘 饭否 QQ 书签 Digbuzz 我挖网 Mister Wong
  1. ignu
    July 25th, 2008 at 10:34
    Quote | #1

    不错。
    还是用recover datafile file# 好啊