最近,系統(tǒng)突然出現(xiàn)故障,不得已,格式化后重裝了系統(tǒng)。格式化后突然想起,oracle數(shù)據(jù)庫(kù)未作備份。心懷忐忑的裝完系統(tǒng)后,趕緊上網(wǎng)查有沒(méi)有這方面的信息。經(jīng)過(guò)一番努力,終于恢復(fù)過(guò)來(lái)。特記錄下來(lái)備案。
首先,備份數(shù)據(jù)庫(kù)(X:\oracle\oradata)下的數(shù)據(jù)文件,重新命名即可(否則裝數(shù)據(jù)庫(kù)的時(shí)候會(huì)提示sid已存在)。重新安裝數(shù)據(jù)庫(kù),當(dāng)然數(shù)據(jù)庫(kù)的名字就是你要恢復(fù)的名字。安裝完成后,打開(kāi)控制面板,停止oracle的服務(wù)。把(X:\oracle\oradata)下新生成的文件改名,把原先目錄下的文件恢復(fù)名字。再重新啟動(dòng)oracle服務(wù)和監(jiān)聽(tīng)。用sys/as dba 登陸數(shù)據(jù)庫(kù),可能會(huì)提示權(quán)限不夠(ora-01031)修改(X:\oracle\ora92\network\admin )文件夾下的sqlnet.ora文件,添加SQLNET.AUTHENTICATION_SERVICES= (NTS),增加權(quán)限。登陸進(jìn)去后,打開(kāi)table提示不能打開(kāi)。打開(kāi)common頁(yè),執(zhí)行命令alert database open;這時(shí)再刷新table,發(fā)現(xiàn)原先的表可以打開(kāi)了。恢復(fù)成功了。再用原先數(shù)據(jù)庫(kù)的普通用戶進(jìn)入。發(fā)現(xiàn)一切正常。至此,大功告成。
不知道有沒(méi)有朋友有與我相似的遭遇,希望會(huì)對(duì)你有所幫助。
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
重裝系統(tǒng)后ORACLE的恢復(fù)
[來(lái)源:http://topic.csdn.net/u/20070413/16/ea52d5b1-4b2e-46b5-a2c3-e27be8c10248.html] 我的電腦突然掛了,不得不重裝系統(tǒng),不過(guò)我的ORACLE裝在了D盤,所有的文件都還在,我相信一定能夠恢復(fù),直到搞定工作,我才開(kāi)始整我的數(shù)據(jù)庫(kù),花了兩天時(shí)間,終于恢復(fù)了,慶祝一下,同時(shí)總結(jié)一下,希望有遇到同樣問(wèn)題的朋友能夠快速搞定此類問(wèn)題。
1、首先,將原來(lái)的ORACLE文件夾改名,原來(lái)的路徑是D:/oracle。我暫時(shí)改成D:/oracle_old。找來(lái)ORACLE(我用的是ORACLE 9I)安裝光盤,將ORACLE安裝在原來(lái)安裝的目錄下,這樣恢復(fù)起來(lái)更加方便,主要是注冊(cè)表的內(nèi)容不用修改。
2、安裝完了之后,系統(tǒng)中又有一個(gè)可以使用的ORACLE了。這個(gè)時(shí)候要做的就是將原來(lái)的文件和數(shù)據(jù)恢復(fù)過(guò)來(lái)。第一步,先關(guān)閉ORACLE的所有已經(jīng)啟動(dòng)的項(xiàng)目,在“服務(wù)”里面逐一關(guān)閉。然后,將安裝目錄改名。我現(xiàn)在用的是D:/oracle。改成D:/oracle_new。再將D:/oracle_old改成D:/oracle。
這樣理論上說(shuō)從物理層面恢復(fù)了ORACLE了。但是我們發(fā)現(xiàn),現(xiàn)在還不能啟動(dòng)ORACLE的監(jiān)聽(tīng)程序和服務(wù)程序。我們還要從邏輯上解決。
3、在dos環(huán)境下執(zhí)行一個(gè)刪除命令:oradim -delete -sid mm,其中mm為創(chuàng)建oracle時(shí)候創(chuàng)建的實(shí)例
建議執(zhí)行這個(gè)命令后重新啟動(dòng)機(jī)器,重啟后就可以建立和原來(lái)實(shí)例名相同的實(shí)例。當(dāng)然你懶,不重新啟動(dòng)也可以,但是你的實(shí)例名就不能和原來(lái)的一樣了。
4、在dos環(huán)境下執(zhí)行命令 oradim -new -sid mm -startmode a -pfile "D:\oracle\admin\mm\pfile\initmm.ora "創(chuàng)建一個(gè)新的實(shí)例,其中 “mm“為新數(shù)據(jù)庫(kù)的名稱。
5、啟動(dòng)服務(wù),先打開(kāi)數(shù)據(jù)庫(kù),然后可以用以前的用戶名和密碼登陸進(jìn)去。
要補(bǔ)充的是,一般的ORACLE數(shù)據(jù)庫(kù)的監(jiān)聽(tīng)程序都是用電腦的名稱來(lái)識(shí)別地址的,而不是127.0.0.1或者localhost。所以,如果我們安裝系統(tǒng)的時(shí)候用的是不同的電腦名稱(比如我原來(lái)用的是wm_mm。重新安裝后用的是wenming_mm),那么我們還有一個(gè)工作要做,就是修改文件 listener.ora。將里面的相關(guān)的東西改過(guò)來(lái)就可以了。
需要耐心、細(xì)心,可能在一步里有一個(gè)細(xì)小的差別就會(huì)出些古怪的錯(cuò)誤提示,有時(shí)需要根據(jù)錯(cuò)誤提示采取策略,總之原理是,先裝一個(gè)一模一樣的ORACLE,安裝目錄、數(shù)據(jù)庫(kù)名稱都一樣,這樣保證注冊(cè)表里不用更改;再覆蓋物理文件,最后重新實(shí)例化,打開(kāi)數(shù)據(jù)庫(kù)就可以進(jìn)去了。
//////////////////////////////////////////////////////////////////////////////////////////////////
[來(lái)源:http://zhidao.baidu.com/question/31533729.html]
不知道你重裝前都備份了哪些文件,只要你那五種文件都有備份,恢復(fù)起來(lái)不是很難。主要?dú)w納為以下幾步: 1.將原來(lái)的oracle文件夾重命名,比如oracle_old;然后重新安裝oracle
到原目錄,即跟重裝操作系統(tǒng)前同一目錄,假設(shè)為d:\oracle;安裝過(guò)程選擇"只安裝軟件"
即不創(chuàng)建數(shù)據(jù)庫(kù),這樣可以節(jié)省很多時(shí)間.
注:恢復(fù)必須要有以下文件 a、初始化參數(shù)文件INIT.ORA b、所有數(shù)據(jù)文件 .dbf c、所有重做日志文件(聯(lián)機(jī)日志、歸檔日志)redo d、所有控制文件 crtl e、internal密碼文件
2.配置listener和tns: 運(yùn)行l(wèi)snrctl start,即可在創(chuàng)建監(jiān)聽(tīng)服務(wù); 使用net manager配置tns,但不要測(cè)試(數(shù)據(jù)庫(kù)沒(méi)有起來(lái)肯定測(cè)試不通過(guò)的);
3.將oradata文件夾拷貝回原目錄(如d:\oracle\oradata);
4.將spfile拷貝回原目錄(如d:\oracle\ora92\database);
5.創(chuàng)建實(shí)例服務(wù): oradim -new -sid orcl -startmode auto
6.重建口令文件:或是復(fù)制原來(lái)的pwdorcl.ora orcl為實(shí)例名 orapwd file=d:\oracle\ora92\database password=orcl entries=5
7.重啟監(jiān)聽(tīng)和實(shí)例.
8.如果數(shù)據(jù)庫(kù)沒(méi)有啟動(dòng)就進(jìn)入sqlplus手工打開(kāi)數(shù)據(jù)庫(kù)
sqlplus /nolog sql>conn sys/orcl@orcl as sysdba sql>startup;
一定要有提示成功打開(kāi),否則重復(fù)以上辦法解決。
9.如果數(shù)據(jù)庫(kù)順利打開(kāi),整個(gè)實(shí)例恢復(fù)過(guò)程即完成.
經(jīng)驗(yàn)證通過(guò)以上操作,完全可以恢復(fù)成功。需要的是耐心、細(xì)心。 如果中間有報(bào)錯(cuò),則一步步根據(jù)報(bào)錯(cuò)到網(wǎng)上查找解決辦法。
|