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;