(08)資料檔案恢複之二通過RMAN恢複

來源:互聯網
上載者:User

      Sqlplus在歸檔全的情況下,能搞定一部份的資料檔案的恢複,但真正要做備份恢複,RMAN才是專業的。
下面列了一些資料檔案損壞情況下的恢複做法.
     1. 資料表空間的資料檔案損壞,但存放盤沒壞。
     2. 資料表空間單個資料檔案所在存放盤壞。
     3. close狀態下,所有資料表空間資料檔案存放盤都壞了。
     4. 在資料庫open狀態下,有資料檔案損壞,報ORA-00376:此時無法讀取檔案xxx
 
 1. 資料表空間的資料檔案損壞,但存放盤沒壞。
     通過恢複資料表空間即可解決問題。
  以SYSTEM資料表空間為例:         

   run{    startup force mount; restore tablespace system; recover tablespace system; alter database open; }

  2. 資料表空間單個資料檔案所在存放盤壞。
          這種情況下,只能另找地方恢複和存放資料檔案了。
 以SYSTEM資料表空間為例: 
  run{  startup force mount;set newname for datafile 1 to '/u01/app/oracle/oradata/xcldb/system01.dbf';restore datafile 1;switch datafile 1;recover datafile 1;alter database open;}
       這種方法與Sqlplus採用的alter database create datafile與rename file方法差不多,
但RMAN可以處理任意(包含SYSTEM)資料表空間的資料檔案恢複。

 3. close狀態下,所有資料表空間資料檔案存放盤都壞了。   
run{         startup force mount;set newname for datafile 1 to '/u01/app/oracle/oradata/xcldb/system01.dbf';......  --列出要更改存放路徑並恢複的所有資料檔案restore database;switch datafile all;recover database;alter database open;}
    小提醒:
      這種技巧不只可用在這種情況下,在異機重新導向恢複或單一實例與RAC互轉時也有用。
 
  4. 在資料庫open狀態下,有資料檔案損壞,報ORA-00376:此時無法讀取檔案xxx
       a.磁碟沒壞,但某個資料檔案壞了。    
run{        sql 'alter database datafile xxx offline';restore datafile xxx;recover datafile xxx;sql 'alter database datafile xxx online';}
 b. 資料檔案所在磁碟都壞了。
   參考上面,只需加上set newname與switch datafile即可。

    上面幾種情況中,不管資料庫open狀態下的恢複與close狀態下,差別就是,open狀態下,在恢複前,資料檔案要設為離線狀態。
恢複後在設為線上,還有一點要注意SYSTEM這類特殊的資料表空間需在mount狀態下才能恢複。

   另外,只要歸檔齊全,上面幾種情況都可以恢複。這種不需要太在意損壞前這個資料檔案有沒有做RMAN備份,日誌都可以重演出來。


MAIL: xcl_168@aliyun.com

BLOG: http://blog.csdn.net/xcl168


相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.