一、冷備份:
1、操作系統無法進入,需要利用啟動盤進入winpe系統進行操作。
2、進入PE系統后,搜索所有盤符確認沒有其它被作為oracle數據文件存放的目錄,也就是說所有oracle有關的文件都存放在oralce的安裝目錄下,所以就直接將oracle的安裝目錄下所有文件都拷貝一份到移動硬盤。 3、記錄下oralce的版本號、安裝路徑、數據庫名(可以在pfile文件中查看到)、實例名保證后續重建數據庫的時候配置和原數據庫統一。
4、到此冷備份結束。
二、恢復:
1、徹底清除原安裝路徑下的oralce文件;
2、重新安裝oralce10g,到原安裝路徑下,所有文件的路徑都保持一致;
3、安裝完成后檢查oralce服務是否成功啟動,數據庫是否能夠通過sqlplus / as sysdba;命令訪問;
4、查看當前數據庫的啟動狀態,為open,到此數據庫安裝成功。
5、接着將移動硬盤中備份的admin目錄,pfile目錄,spfile文件,(控制文件,數據文件,日志文件)都覆蓋掉新裝的oralce的對應的目錄和文件;
6、進入sqlplus,輸入命令: recover database using backup controlfile until cancel;
在輸出的內容后面,敲入redo日志文件的絕對路徑,然后回車,如果沒有成功,就換一個redo日志文件接着試,直到成功為止。 成功后提示:已應用的日志。完成介質恢復。
7、接着輸入命令: alter database open resetlogs; 重置redolog並打開數據庫。
8、通過遠程訪問,成功。
三、問題:
1、在使用應用程序的時候發現某條sql(查詢待辦)的執行報了oralce的內部錯誤,經過分析發現是某個字段(辦理狀態)只要被作為條件查詢就會導致此錯誤,可能是恢復的過程中出了問題,或者本身備份的原數據文件就已經有問題了, 解決的方法是用新的字段替換出問題的字段,然后將舊字段刪除即可。
四、總結:
1、在此過程中其實遇到了很多沒有遇見過的故障,究其原因還是因為沒有同時覆蓋(控制文件,數據文件,日志文件)和沒有做最后的恢復命令導致的;
2、還是有一些問題沒有理解的透徹,回頭需要進行一番研究以徹底弄清楚恢復的原理和過程。
3、整個過程花費時長7.5小時。
五、待驗證的想法:其實很可能不需要重新安裝oralce,也能恢復數據,具體做法如下:
1、不要刪除原來的oralce安裝目錄;
2、tnsnames.ora 和listener.ora文件換成初始狀態;
3、運行命令,打開數據庫創建向導:
D:\oracle\product\10.2.0\db_1\BIN\launch.exe "D:\oracle\product\10.2.0\db_1\assistants\dbca" ..\assistants\dbca\dbca.cl
4、在打開數據庫創建向導中,建立一個數據庫,其名稱和路徑要和原數據庫保持一致;
5、之后的操作同上面的5、6、7;
6、運行命令,打開監聽創建向導:
D:\oracle\product\10.2.0\db_1\BIN\launch.exe "D:\oracle\product\10.2.0\db_1\NETWORK\tools" ..\NETWORK\tools\netmgr.cl
7、創建監聽。