僅僅丟失一個普通使用者資料檔案的恢復A(聯機恢復)

楊奇龍發表於2010-04-23

(例如,丟失D:\BACKUPDB\USERS01.DBF

準備工作, 透過下面的工作,如果完全恢復,應該可以看到;

insert into test1 values(2);

SQL> conn lunar/lunar

SQL> select * from tab;

TESTBACKUP3 TABLE

SQL> create table test1 (a number);

SQL> insert into test1 values(1);

SQL> alter system switch logfile;

SQL> commit;

SQL> alter system switch logfile;

SQL> insert into test1 values(2);

SQL> commit;

SQL> alter system switch logfile;

SQL> conn internal

SQL> archive log list

資料庫日誌模式 存檔模式

自動存檔 啟用

存檔終點 d:\BACKUPDB\archive

最早的概要資訊日誌序列 3

下一個存檔日誌序列 5

當前日誌序列 5

shutdown abort關閉例程,模擬資料檔案丟失

SQL> shutdown abort

ORACLE 例程已經關閉。

Mount資料庫

SQL> startup mount  

資料庫裝載完畢。

 

使損壞的資料檔案離線

SQL> alter database datafile 'D:\BACKUPDB\USERS01.DBF' offline;

開啟資料庫

SQL> alter database open;

複製剛才熱備的資料檔案(USERS01.DBF

恢復損壞的資料檔案

SQL> recover datafile 'D:\BACKUPDB\USERS01.DBF';

ORA-00279: ?? 424116 (? 10/20/2002 20:42:04 ??) ???? 1 ????

ORA-00289: ??: D:\BACKUPDB\ARCHIVE\BACKUPT001S00001.ARC

ORA-00280: ?? 424116 ???? 1 ???? # 1 ???

 

指定日誌: {=suggested | filename | AUTO | CANCEL}

auto

ORA-00279: ?? 424125 (? 10/20/2002 20:44:14 ??) ???? 1 ????

ORA-00289: ??: D:\BACKUPDB\ARCHIVE\BACKUPT001S00002.ARC

ORA-00280: ?? 424125 ???? 1 ???? # 2 ???

ORA-00278: ??????????? 'D:\BACKUPDB\ARCHIVE\BACKUPT001S00001.ARC'

……………………..

已應用的日誌。

完成介質恢復。

 

使恢復完成的資料檔案聯機

SQL> alter database datafile 'D:\BACKUPDB\USERS01.DBF' online;

驗證恢復的結果:完全恢復

SQL> select * from tab;

TNAME TABTYPE CLUSTERID

SQL> select * from test1;

 

說明:

1.  shutdown abort關閉例程,模擬資料檔案丟失  

2.  Mount資料庫  

3.  使損壞的資料檔案離線  

4.  開啟資料庫  

5.  複製剛才熱備的資料檔案(USERS01.DBF  

6.  恢復損壞的資料檔案  

7.        使恢復完成的資料檔案聯機

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

相關文章