【控制檔案丟失恢復】

楊奇龍發表於2010-07-22

oracle文件裡有這麼一個案例,我整理了一下:

1.        設定ORACLE_SID
export ORACLE_SID=central

2.        啟動RAMN
rman TARGET / NOCATALOG

3. 設定DBID
SET DBID 1331322689;

4. 啟動資料庫(no mount狀態)
STARTUP NOMOUNT
會出現以下資訊
startup failed: ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/net/hostb/oracle/dbs/inittrgta.ora'

trying to start the Oracle instance without parameter files ...
Oracle instance started

#5. 恢復引數檔案

  RESTORE SPFILE TO PFILE '?/oradata/test/inittrgta.ora' FROM AUTOBACKUP;
  SHUTDOWN ABORT;

#6. 編輯引數檔案中的檔案路徑
如路徑和原來一樣,則不需修改
eg:
  - *_DUMP_DEST
  - LOG_ARCHIVE_DEST*
  - CONTROL_FILES

#7. 重啟例項,使用已編輯好的引數檔案
STARTUP FORCE NOMOUNT PFILE='?/oradata/test/inittrgta.ora';

8.恢復控制檔案,裝載資料庫
  RESTORE CONTROLFILE FROM AUTOBACKUP;
  ALTER DATABASE MOUNT;

9.查詢記錄在控制檔案中的資料檔案資訊
        % sqlplus '/ AS SYSDBA'
SQL> COLUMN NAME FORMAT a60
SQL> SPOOL LOG 'db_filenames.out'
SQL> SELECT FILE# AS "File/Grp#", NAME FROM V$DATAFILE
     UNION
     SELECT GROUP#,MEMBER FROM V$LOGFILE;
SQL> SPOOL OFF

10.資料庫恢復
        如果路徑和原來的一樣,則不需要指定資料檔案的恢復路徑
       
        RUN
{
  # rename the datafiles and online redo logs
  SET NEWNAME FOR DATAFILE 1 TO '?/oradata/test/system01.dbf';
  SET NEWNAME FOR DATAFILE 2 TO '?/oradata/test/undotbs01.dbf';
  SET NEWNAME FOR DATAFILE 3 TO '?/oradata/test/cwmlite01.dbf';
  SET NEWNAME FOR DATAFILE 4 TO '?/oradata/test/drsys01.dbf';
  SET NEWNAME FOR DATAFILE 5 TO '?/oradata/test/example01.dbf';
  SET NEWNAME FOR DATAFILE 6 TO '?/oradata/test/indx01.dbf';
  SET NEWNAME FOR DATAFILE 7 TO '?/oradata/test/tools01.dbf';
  SET NEWNAME FOR DATAFILE 8 TO '?/oradata/test/users01.dbf';

  SQL "ALTER DATABASE RENAME FILE ''/dev3/oracle/dbs/redo01.log''
      TO ''?/oradata/test/redo01.log'' ";
  SQL "ALTER DATABASE RENAME FILE ''/dev3/oracle/dbs/redo02.log''
      TO ''?/oradata/test/redo02.log'' ";

  # Do a SET UNTIL to prevent recovery of the online logs
  #SET UNTIL SCN 123456;
  
# restore the database and switch the datafile names
  RESTORE DATABASE;
  SWITCH DATAFILE ALL;

  # recover the database
  RECOVER DATABASE;
}

11.以重置日誌的方式開啟資料庫
        ALTER DATABASE OPEN RESETLOGS;


 

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

相關文章