天天看點

手工完全恢複(将資料檔案恢複到新的位置)

實驗環境:red hat 5.8

oracle環境:11.2.0.3

隻壞一個檔案

實驗前先備份

使用腳本,冷備份和熱備份

1、首先建立一張測試用的表。

sys@TEST0910> conn scott/tiger

Connected.

scott@TEST0910> create table test4 as select * from emp;

Table created.

2、插入三次資料,分别為送出歸檔,送出不歸檔,不送出不歸檔

sys@TEST0910> insert into scott.test4 select * from scott.emp;

14 rows created.

sys@TEST0910> commit;

Commit complete.

sys@TEST0910> alter system archive log current;

System altered.

sys@TEST0910> select count(*) from scott.test4;

  COUNT(*)

----------

        28

        42

sys@TEST0910>  select count(*) from scott.test4;

        56

3、模拟斷電。

sys@TEST0910> shutdown abort;

ORACLE instance shut down.

4、删除資料檔案

[oracle@rtest ~]$ rm /u01/app/oracle/oradata/test0910/users01.dbf

5、起庫,報錯,查詢哪個檔案損壞。

sys@TEST0910> startup

ORACLE instance started.

Total System Global Area 2505338880 bytes

Fixed Size                  2230952 bytes

Variable Size             587203928 bytes

Database Buffers         1895825408 bytes

Redo Buffers               20078592 bytes

Database mounted.

ORA-01157: cannot identify/lock data file 4 - see DBWR trace file

ORA-01110: data file 4: '/u01/app/oracle/oradata/test0910/users01.dbf'

sys@TEST0910> select file#,error from v$recover_file;

     FILE# ERROR

---------- -----------------------------------------------------------------

         4 FILE NOT FOUND

6、使用高可用模式,先開庫,後恢複

先讓datafile offline

sys@TEST0910> alter database datafile 4 offline;

Database altered.

sys@TEST0910> alter database open;

7、轉儲到新的位置

[oracle@rtest disk1]$  cp /u01/app/oracle/bak/hot_bak/users01.dbf /u01/app/oracle/oradata/test0910/disk1/users01.dbf

[oracle@rtest disk1]$ ls

users01.dbf

8、使用rename改變位置

sys@TEST0910> alter database rename file '/u01/app/oracle/oradata/test0910/users01.dbf' to  '/u01/app/oracle/oradata/test0910/disk1/users01.dbf';

9、恢複資料檔案,容乃公資料檔案online

sys@TEST0910> recover datafile 4;

ORA-00279: change 1647795 generated at 09/19/2013 20:16:10 needed for thread 1

ORA-00289: suggestion :

/u01/app/oracle/fast_recovery_area/TEST0910/archivelog/2013_09_19/o1_mf_1_39_93q4z4lt_.arc

ORA-00280: change 1647795 for thread 1 is in sequence #39

Specify log: {<RET>=suggested | filename | AUTO | CANCEL}

auto

ORA-00279: change 1648611 generated at 09/19/2013 20:16:35 needed for thread 1

/u01/app/oracle/fast_recovery_area/TEST0910/archivelog/2013_09_19/o1_mf_1_40_93qc5g30_.arc

ORA-00280: change 1648611 for thread 1 is in sequence #40

ORA-00279: change 1656909 generated at 09/19/2013 22:02:21 needed for thread 1

/u01/app/oracle/fast_recovery_area/TEST0910/archivelog/2013_09_20/o1_mf_1_41_93rysdc1_.arc

ORA-00280: change 1656909 for thread 1 is in sequence #41

ORA-00279: change 1682384 generated at 09/20/2013 12:43:24 needed for thread 1

/u01/app/oracle/fast_recovery_area/TEST0910/archivelog/2013_09_20/o1_mf_1_42_93ryywvd_.arc

ORA-00280: change 1682384 for thread 1 is in sequence #42

ORA-00279: change 1682485 generated at 09/20/2013 12:46:20 needed for thread 1

/u01/app/oracle/fast_recovery_area/TEST0910/archivelog/2013_09_20/o1_mf_1_43_93s0lg0r_.arc

ORA-00280: change 1682485 for thread 1 is in sequence #43

ORA-00279: change 1702534 generated at 09/20/2013 13:13:48 needed for thread 1

/u01/app/oracle/fast_recovery_area/TEST0910/archivelog/2013_09_20/o1_mf_1_44_93s106lj_.arc

ORA-00280: change 1702534 for thread 1 is in sequence #44

ORA-00279: change 1703113 generated at 09/20/2013 13:21:10 needed for thread 1

/u01/app/oracle/fast_recovery_area/TEST0910/archivelog/2013_09_20/o1_mf_1_45_93s1bwhd_.arc

ORA-00280: change 1703113 for thread 1 is in sequence #45

ORA-00279: change 1723137 generated at 09/20/2013 13:26:52 needed for thread 1

/u01/app/oracle/fast_recovery_area/TEST0910/archivelog/2013_09_20/o1_mf_1_46_93s2kccp_.arc

ORA-00280: change 1723137 for thread 1 is in sequence #46

ORA-00279: change 1724278 generated at 09/20/2013 13:47:23 needed for thread 1

/u01/app/oracle/fast_recovery_area/TEST0910/archivelog/2013_09_20/o1_mf_1_47_93s32w3k_.arc

ORA-00280: change 1724278 for thread 1 is in sequence #47

ORA-00279: change 1744396 generated at 09/20/2013 13:56:43 needed for thread 1

/u01/app/oracle/fast_recovery_area/TEST0910/archivelog/2013_09_20/o1_mf_1_48_93ss22cp_.arc

ORA-00280: change 1744396 for thread 1 is in sequence #48

ORA-00279: change 1758153 generated at 09/20/2013 20:11:45 needed for thread 1

/u01/app/oracle/fast_recovery_area/TEST0910/archivelog/2013_09_20/o1_mf_1_49_93szgs9j_.arc

ORA-00280: change 1758153 for thread 1 is in sequence #49

ORA-00279: change 1766481 generated at 09/20/2013 22:00:56 needed for thread 1

/u01/app/oracle/fast_recovery_area/TEST0910/archivelog/2013_09_21/o1_mf_1_50_93tvkm26_.arc

ORA-00280: change 1766481 for thread 1 is in sequence #50

ORA-00279: change 1783681 generated at 09/21/2013 06:00:18 needed for thread 1

/u01/app/oracle/fast_recovery_area/TEST0910/archivelog/2013_09_21/o1_mf_1_51_93vdmv7w_.arc

ORA-00280: change 1783681 for thread 1 is in sequence #51

ORA-00279: change 1792730 generated at 09/21/2013 10:51:38 needed for thread 1

/u01/app/oracle/fast_recovery_area/TEST0910/archivelog/2013_09_21/o1_mf_1_52_93vdzvnf_.arc

ORA-00280: change 1792730 for thread 1 is in sequence #52

Log applied.

Media recovery complete.

sys@TEST0910> alter database datafile 4 online;