Oracle只有數(shù)據(jù)文件恢復數(shù)據(jù)庫 恢復前準備工作 1?備份數(shù)據(jù)文件,文件路徑為%ORACLE_NOME%/oradata/xxxx(xxxx為數(shù)據(jù)庫實例) 2備份ORACLE安裝路徑下的D:\app\Administrator\diag\rdbms\orcl\orcl\trace\alert_xxxx.log (xxxx為數(shù)據(jù)庫實例) ?恢復步驟 1安裝oracle數(shù)據(jù)庫,安裝時不要創(chuàng)建數(shù)據(jù)庫實例 2創(chuàng)建數(shù)據(jù)庫實例:安裝完成后創(chuàng)建數(shù)據(jù)庫實例,實例名與原數(shù)據(jù)庫實例相同,并創(chuàng)建 監(jiān)聽服務(wù)。 3拷貝數(shù)據(jù)文件:停止oracle相關(guān)服務(wù),拷貝備份的數(shù)據(jù)文件(包括數(shù)據(jù)文件及日志文件)到新安裝的oracle數(shù)據(jù)庫 安裝位置對應(yīng)路徑下,刪除新成的控制文件及日志文件(%ORACLE_NOME%/oradata/下所有文件)、完成后重啟oracle相關(guān)服務(wù)。 4準備重建控制文件腳本:打開事先備份的alert_XXX.log文件,查找最后一個create controlfile語句并修改以下部分 若該語句中包含NORESETLOGS,則將其改為RESETLOGS;原因是重做日志文件已經(jīng)丟失。 LOGFILE段是指重做日志文件到期望的文件位置。 DATAFILE段是指定到數(shù)據(jù)文件的實際文件位置。不能包含臨時表空間用到的文件,否則報錯(ora-01503,ora-01160,ora-01110) 注意:creat controlfile語句中如果包含NOARCHIVELOG,則為非歸檔模式,如為ARCHIVELOG,則為歸檔模式,沒有則保持沒有。 5重建控制文件 打開sqlplus 使用DBA登錄數(shù)據(jù)庫 關(guān)閉數(shù)據(jù)庫 示例:SQL>shutdown immediate; 啟動數(shù)據(jù)庫,但不掛載數(shù)據(jù)文件 示例:SQL>startup nomount; 重建控制文件,執(zhí)行準備好的重建控制文件腳本 示例; Create controlfile reuse set database "orcl" MAXINSTANCES 8 MAXLOGHISTORY 1 MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 Datafile 'd:\app\Administrator\oradata\orcl\SYSTEM01.DBF', 'd:\app\Administrator\oradata\orcl\SYSAUX01.DBF', 'd:\app\Administrator\oradata\orcl\UNDOTBS01.DBF', 'd:\app\Administrator\oradata\orcl\USERS01.DBF', 'd:\app\Administrator\oradata\orcl\ZWILLING_USERS.DBF' LOGFILE GROUP 1 ('d:\app\Administrator\oradata\orcl\redo01.log') SIZE 51200K, GROUP 2 ('d:\app\Administrator\oradata\orcl\redo02.log') SIZE 51200K, GROUP 3 ('d:\app\Administrator\oradata\orcl\redo03.log') SIZE 51200K RESETLOGS; 帶resetlogs參數(shù)啟動數(shù)據(jù)庫,重新生成重做日志文件 SQL>alter database open resetlogs 注意:執(zhí)行啟動數(shù)據(jù)庫時報錯(ORA-01194,ORA-01110),解決辦法:recover重做日志文件。 示例:SQL>recover database using backup controlfile until cancel;回車,當提示Specify log:{=suggested|filename|AUTO|CANCEL} 輸入日志文件地址如:d:\app\Administrator\oradata\orcl\redo01.log 日志文件redo01.log還有錯誤,繼續(xù)SQL>alter database open resetlogs; SQL>recover database using backup controlfile until cancel; 輸入日志文件地址如:d:\app\Administrator\oradata\orcl\redo02.log 提示介質(zhì)恢復完成, 使用帶resetlogs參數(shù)啟動數(shù)據(jù)庫SQL>alter database open resetlogs 6添加臨時表空間 示例: SQL>alter tablespace temp add tempfile 2 'd:\app\Administrator\oradata\orcl\TEMP01.DBF' reuse; 7測試:退出sqlplus,重啟數(shù)據(jù)庫服務(wù),使用原數(shù)據(jù)庫普通用戶的用戶名密碼登錄; |
|