表空間級資料庫備份恢復

foreverlee發表於2005-03-08

案例:
最後一次對錶空間aaa備份是在2005年03月03日上午
2005年04月03日上午應用報sp表不能查詢,經查詢user_tables發現
sp表處於aaa表空間.aaa表空間需要恢復

[@more@]

案例:
最後一次對錶空間aaa備份是在2005年03月03日上午
2005年04月03日上午應用報sp表不能查詢,經查詢user_tables發現
sp表處於aaa表空間.aaa表空間需要恢復

現象:
SQL> select * from sp;
select * from sp
              *
ERROR 位於第 1 行:
ORA-00376: 此時無法讀取檔案 13
ORA-01110: 資料檔案 13: 'D:ORACLEORADATALIYONGAAA.DBF'

SQL> select table_name,tablespace_name from user_tables;

TABLE_NAME                     TABLESPACE_NAME
------------------------------ ------------------------------
SP                             AAA

SQL> select file_name,
  2            tablespace_name
  3      from dba_data_files
  4     where tablespace_name='AAA';

FILE_NAME
----------------------------------------

TABLESPACE_NAME
------------------------------
D:ORACLEORADATALIYONGAAA.DBF
AAA

表空間對應資料檔案為D:ORACLEORADATALIYONGAAA.DBF.
D:ORACLEORADATALIYONGAAA.DBF需要恢復.

1>
將需要介質恢復的表空間offline
SQL> alter tablespace aaa offline temporary;

表空間已更改。

2> 將最近備份的表空間資料檔案放置在磁碟上,並告訴控制檔案你放置的位置.
SQL> alter database rename file 'D:ORACLEORADATALIYONGAAA.DBF'
  2  to 'D:oracleoradatatsbkaaa.dbf';

資料庫已更改。

3> 恢復表空間aaa
SQL> recover tablespace aaa;
完成介質恢復。

4> online 表空間aaa.
SQL> recover tablespace aaa;
完成介質恢復。
SQL> alter tablespace aaa online;

表空間已更改。

SQL> show user
USER 為"LIYONG"
SQL> select count(*) from sp;

  COUNT(*)
----------
        13
至此丟失的資料已經找回.

總結:
完全恢復成功的前提是:最近一次備份表空間aaa後的所有歸檔和聯機日誌存在.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/76065/viewspace-791938/,如需轉載,請註明出處,否則將追究法律責任。

相關文章