ORACLE11g中毒恢複,oracle11g中毒
非常不幸的,win2003伺服器疏於管理,中毒了,清理了病毒以後,oracle也癱瘓了。上次備份還在一周前,這一周的資料咋辦?
首先的想法,是另找一台機器,裝個一模一樣的oracle,再把被刪的檔案複製過來。
實施起來發現被刪掉的檔案不止幾個exe這麼簡單,dll檔案還有oracle服務也被刪掉了,恢複起來還挺麻煩的。
然後就選擇第二條路,重裝oracle,首先記得要把原有的oracle主目錄備份了。
第1次嘗試:
選擇不建立資料庫,僅安裝軟體,選擇原目錄,然後報錯,說安裝位置衝突
[INS-32025]所選安裝與指定Oracle主目錄中已安裝的軟體衝突
解決辦法:刪除C:\Program Files\Oracle目錄,安裝繼續
然後又提示原目錄有內容,選擇繼續,安裝完成。
但是安裝完成後,啥都沒變,刪除的檔案沒有回來。
第2次嘗試
把原product目錄刪掉,再裝。這次刪除的exe和dll檔案回來了,但是oracle服務沒有恢複,運行資料庫配置助手,發現它也沒有識別並載入到原資料庫檔案。
第3次嘗試
先卸載,提示要使用deinstall.exe,照做,一路斷行符號,卸載完畢。然後徹底刪除原oracle,包括註冊表、主目錄、和其它檔案,詳細參見網路文章。
再次安裝,這次選擇了建立資料庫,執行個體名還是保持原來的一樣。
安裝過程中出現了一些問題,比如無權修改鍵,監聽建立失敗,資料庫建立失敗等,心都涼了,也只能一路忽略繼續。
裝完後探索服務回來了,手工啟動TNSListener監聽服務,啟動OracleService執行個體服務,所幸沒有影響,正常啟動,能夠正常登入串連熟悉的scott,哦也。
然後就是恢複資料了,停掉OracleService服務,把備份的原庫主目錄下的oradata目錄全部覆蓋過去。
串連提示:ORA-12528: TNS: 監聽程式: 所有適用常式都無法建立新串連
別慌,開啟主目錄\product\11.2.0\dbhome_1\NETWORK\ADMIN下的listener.ora檔案,在SID_LIST_LISTENER配置修改成:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = C:\oracle\product\10.1.0\db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = 資料庫執行個體名)
(ORACLE_HOME = c:\oracle\product\10.1.0\db_1)
(SID_NAME = 資料庫執行個體名)
)
)
藍色是添加的,儲存後重啟TNSListener。
這次似乎成功了,sysdba可以串連上了,可是串連scott時又報錯了:ora-01033:oracle initializationg or shutdown in progress
用cmd方式,執行sqlpuls /nolog,開啟sqlplus,
SQL>connect sys/password@orcl as sysdba 用sysdba串連資料庫
SQL>shutdown immediate 停止服務
出現一個ORA-01507的報錯,不過還是顯樣本程已關閉,那就別管這個錯了。
SQL>startup 啟動服務
發現報錯:
ORACLE 常式已經啟動。
Total System Global Area 778387456 bytes
Fixed Size 1374808 bytes
Variable Size 234882472 bytes
Database Buffers 536870912 bytes
Redo Buffers 5259264 bytes
ORA-00211: ???????????????
ORA-00202: ????: ''D:\ORACLE11G\FLASH_RECOVERY_AREA\ORCL\CONTROL02.CTL''
那就是這個檔案有問題羅
SQL>shutdown immediate 再次停止服務
把備份的原庫主目錄下的FLASH_RECOVERY_AREA目錄全部覆蓋過去。
SQL>startup 再次啟動服務
串連scott,成功!
串連生產使用者,成功!!!
差點哭了……
如果上天給我再來一次的機會,我一定搞成每天自動備份!
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。