程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> ORACLE11g中毒恢復

ORACLE11g中毒恢復

編輯:Oracle教程

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,成功!

連接生產用戶,成功!!!

差點哭了……

如果上天給我再來一次的機會,我一定搞成每天自動備份!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved