Oracle 11g 資料庫恢復-場景5:部分檔案損壞恢復,開庫狀態,低可用恢復方式

LuiseDalian發表於2014-04-30

sys@TESTDB11>select status from v$instance;

 

STATUS

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

OPEN

 

--刪除系統表空間的檔案

sys@TESTDB11>select name from v$datafile;

 

NAME

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

/u01/app/oracle/oradata/TestDB11/system01.dbf

/u01/app/oracle/oradata/TestDB11/sysaux01.dbf

/u01/app/oracle/oradata/TestDB11/undotbs01.dbf

/u01/app/oracle/oradata/TestDB11/users01.dbf

/u01/app/oracle/oradata/TestDB11/example01.dbf

/u01/app/oracle/oradata/TestDB11/rotbs01.dbf

 

6 rows selected.

 

sys@TESTDB11>!rm /u01/app/oracle/oradata/TestDB11/system01.dbf

 

--此時使用者都登入不了(當然已經登入的使用者還是可以登入的)-----做個實驗

[oracle@S1011:/export/home/oracle]$ sqlplus hr/hr

 

SQL*Plus: Release 11.2.0.3.0 Production on Sat Aug 10 11:49:12 2013

 

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

 

ERROR:

ORA-00604: error occurred at recursive SQL level 1

ORA-01116: error in opening database file 1

ORA-01110: data file 1: '/u01/app/oracle/oradata/TestDB11/system01.dbf'

ORA-27041: unable to open file

Solaris-AMD64 Error: 2: No such file or directory

Additional information: 3

 

 

Enter user-name:

 

--此時使用前面的方法,使系統表空間資料檔案離線已經不可能了

sys@TESTDB11>alter database datafile 1 offline;

alter database datafile 1 offline

*

ERROR at line 1:

ORA-01541: system tablespace cannot be brought offline; shut down if necessary

 

--關庫,重啟動到MOUNT狀態

sys@TESTDB11>startup mount force;

ORACLE instance started.

 

Total System Global Area  855982080 bytes

Fixed Size                  2230792 bytes

Variable Size             641730040 bytes

Database Buffers          209715200 bytes

Redo Buffers                2306048 bytes

Database mounted.

 

--只還原一個資料檔案

sys@TESTDB11>!cp /backup/inconsistent_backup/system01.dbf /u01/app/oracle/oradata/TestDB11

 

--檢視一致性狀態

sys@TESTDB11>select name, checkpoint_change# from v$datafile_header;

 

NAME                                               CHECKPOINT_CHANGE#

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

/u01/app/oracle/oradata/TestDB11/system01.dbf                 2654775

/u01/app/oracle/oradata/TestDB11/sysaux01.dbf                 2727508

/u01/app/oracle/oradata/TestDB11/undotbs01.dbf                2727508

/u01/app/oracle/oradata/TestDB11/users01.dbf                  2728854

/u01/app/oracle/oradata/TestDB11/example01.dbf                2727508

/u01/app/oracle/oradata/TestDB11/rotbs01.dbf                  2727508

 

6 rows selected.

 

--進行恢復

sys@TESTDB11>recover database;

ORA-00279: change 2654775 generated at 08/09/2013 21:25:44 needed for thread 1

ORA-00289: suggestion : /archive2/1_98_813665348.dbf

ORA-00280: change 2654775 for thread 1 is in sequence #98

 

 

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

auto

ORA-00279: change 2660981 generated at 08/09/2013 22:19:48 needed for thread 1

ORA-00289: suggestion : /archive2/1_99_813665348.dbf

ORA-00280: change 2660981 for thread 1 is in sequence #99

 

 

ORA-00279: change 2667783 generated at 08/10/2013 00:00:55 needed for thread 1

ORA-00289: suggestion : /archive2/1_100_813665348.dbf

ORA-00280: change 2667783 for thread 1 is in sequence #100

 

 

ORA-00279: change 2679804 generated at 08/10/2013 03:00:28 needed for thread 1

ORA-00289: suggestion : /archive2/1_101_813665348.dbf

ORA-00280: change 2679804 for thread 1 is in sequence #101

 

 

ORA-00279: change 2699110 generated at 08/10/2013 08:29:58 needed for thread 1

ORA-00289: suggestion : /archive2/1_102_813665348.dbf

ORA-00280: change 2699110 for thread 1 is in sequence #102

 

 

ORA-00279: change 2725650 generated at 08/10/2013 10:27:18 needed for thread 1

ORA-00289: suggestion : /archive2/1_103_813665348.dbf

ORA-00280: change 2725650 for thread 1 is in sequence #103

 

 

ORA-00279: change 2726122 generated at 08/10/2013 10:29:03 needed for thread 1

ORA-00289: suggestion : /archive2/1_104_813665348.dbf

ORA-00280: change 2726122 for thread 1 is in sequence #104

 

 

Log applied.

Media recovery complete.

 

--檢視一致性狀態

sys@TESTDB11>select name, checkpoint_change# from v$datafile_header;

 

NAME                                               CHECKPOINT_CHANGE#

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

/u01/app/oracle/oradata/TestDB11/system01.dbf                 2749172

/u01/app/oracle/oradata/TestDB11/sysaux01.dbf                 2749172

/u01/app/oracle/oradata/TestDB11/undotbs01.dbf                2749172

/u01/app/oracle/oradata/TestDB11/users01.dbf                  2749172

/u01/app/oracle/oradata/TestDB11/example01.dbf                2749172

/u01/app/oracle/oradata/TestDB11/rotbs01.dbf                  2749172

 

6 rows selected.

 

--開庫

sys@TESTDB11>alter database open;

 

Database altered.

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

相關文章