下面就為您介紹重裝系統(tǒng)后ORACLE數(shù)據(jù)庫(kù)恢復(fù)的方法,希望對(duì)您學(xué)習(xí)ORACLE數(shù)據(jù)庫(kù)恢復(fù)方面能有所幫助。 第一種: 1、首先,將原來(lái)的ORACLE文件夾改名,原來(lái)的路徑是D:/oracle.我暫時(shí)改成D:/oracle_old.找來(lái)ORACLE(我用的是ORACLE 9I)安裝光盤(pán),將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)去了。第二種: 首先,備份數(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)一切正常。至此,大功告成。
創(chuàng)新互聯(lián)建站主營(yíng)尼開(kāi)遠(yuǎn)網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,App定制開(kāi)發(fā),尼開(kāi)遠(yuǎn)h5成都微信小程序搭建,尼開(kāi)遠(yuǎn)網(wǎng)站營(yíng)銷(xiāo)推廣歡迎尼開(kāi)遠(yuǎn)等地區(qū)企業(yè)咨詢
任何軟件都有可能在有意或無(wú)意的情況下被重新安裝,如Oracle重裝后數(shù)據(jù)庫(kù)怎么恢復(fù)呢?情況發(fā)生在你是無(wú)意的情況下!ORACLE數(shù)據(jù)庫(kù)恢復(fù)的方法我們經(jīng)常會(huì)用到,下面就為您介紹重裝系統(tǒng)后ORACLE數(shù)據(jù)庫(kù)恢復(fù)的方法,希望對(duì)您學(xué)習(xí)ORACLE數(shù)據(jù)庫(kù)恢復(fù)方面能有所幫助。\x0d\x0a\x0d\x0a我的電腦突然掛了,不得不重裝系統(tǒng),不過(guò)我的ORACLE裝在了D盤(pán),所有的文件都還在,我相信一定能夠恢復(fù),直到搞定工作,我才開(kāi)始整我的數(shù)據(jù)庫(kù),花了兩天時(shí)間,終于恢復(fù)了,慶祝一下,同時(shí)總結(jié)一下,希望有遇到同樣問(wèn)題的朋友能夠快速搞定此類(lèi)問(wèn)題\x0d\x0a\x0d\x0a第一種:\x0d\x0a\x0d\x0a首先,備份數(shù)據(jù)庫(kù)(X:\oracle\oradata)下的數(shù)據(jù)文件,重新命名即可(否則裝數(shù)據(jù)庫(kù)的時(shí)候會(huì)提示sid已存在)。重新安裝數(shù)據(jù)\x0d\x0a庫(kù),當(dāng)然數(shù)據(jù)庫(kù)的名字就是你要恢復(fù)的名字。安裝完成后,打開(kāi)控制面板,停止oracle的服務(wù)。把(X:\oracle\oradata)下新生成的文件\x0d\x0a改名,把原先目錄下的文件恢復(fù)名字。再重新啟動(dòng)oracle服務(wù)和監(jiān)聽(tīng)。用sys/as dba \x0d\x0a登陸數(shù)據(jù)庫(kù),可能會(huì)提示權(quán)限不夠(ora-01031)修改(X:\oracle\ora92\network\admin \x0d\x0a)文件夾下的sqlnet.ora文件,添加SQLNET.AUTHENTICATION_SERVICES= \x0d\x0a(NTS),增加權(quán)限。登陸進(jìn)去后,打開(kāi)table提示不能打開(kāi)。打開(kāi)common頁(yè),執(zhí)行命令alert database \x0d\x0aopen;這時(shí)再刷新table,發(fā)現(xiàn)原先的表可以打開(kāi)了。恢復(fù)成功了。再用原先數(shù)據(jù)庫(kù)的普通用戶進(jìn)入。發(fā)現(xiàn)一切正常。至此,大功告成。\x0d\x0a\x0d\x0a第二種:\x0d\x0a\x0d\x0a1、首先,將原來(lái)的ORACLE文件夾改名,原來(lái)的路徑是D:/oracle.我暫時(shí)改成D:/oracle_old.找來(lái)ORACLE(我用\x0d\x0a的是ORACLE 9I)安裝光盤(pán),將ORACLE安裝在原來(lái)安裝的目錄下,這樣恢復(fù)起來(lái)更加方便,主要是注冊(cè)表的內(nèi)容不用修改。\x0d\x0a\x0d\x0a2、安裝完了之后,系統(tǒng)中又有一個(gè)可以使用的ORACLE了。這個(gè)時(shí)候要做的就是將原來(lái)的文件和數(shù)據(jù)恢復(fù)過(guò)來(lái)。第一步,先關(guān)閉ORACLE的所\x0d\x0a有已經(jīng)啟動(dòng)的項(xiàng)目,在"服務(wù)"里面逐一關(guān)閉。然后,將安裝目錄改名。我現(xiàn)在用的是D:/oracle.改成D:/oracle_new.再將D:\x0d\x0a/oracle_old改成D:/oracle. \x0d\x0a這樣理論上說(shuō)從物理層面恢復(fù)了ORACLE了。但是我們發(fā)現(xiàn),現(xiàn)在還不能啟動(dòng)ORACLE的監(jiān)聽(tīng)程序和服務(wù)程序。我們還要從邏輯上解決。\x0d\x0a\x0d\x0a3、在dos環(huán)境下執(zhí)行一個(gè)刪除命令:oradim -delete -sid mm,其中mm為創(chuàng)建oracle時(shí)候創(chuàng)建的實(shí)例 \x0d\x0a建議執(zhí)行這個(gè)命令后重新啟動(dòng)機(jī)器,重啟后就可以建立和原來(lái)實(shí)例名相同的實(shí)例。當(dāng)然你懶,不重新啟動(dòng)也可以,但是你的實(shí)例名就不能和原來(lái)的一樣了。\x0d\x0a\x0d\x0a4、在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ù)的名稱。\x0d\x0a\x0d\x0a5、啟動(dòng)服務(wù),先打開(kāi)數(shù)據(jù)庫(kù),然后可以用以前的用戶名和密碼登陸進(jìn)去。 \x0d\x0a要補(bǔ)充的是,一般的ORACLE數(shù)據(jù)庫(kù)的監(jiān)聽(tīng)程序都是用電腦的名稱來(lái)識(shí)別地址的,而不是127.0.0.1或者localhost.所以,如果我們安裝系\x0d\x0a統(tǒng)的時(shí)候用的是不同的電腦名稱(比如我原來(lái)用的是wm_mm.重新安裝后用的是wenming_mm),那么我們還有一個(gè)工作要做,就是修改文件 \x0d\x0alistener.ora.將里面的相關(guān)的東西改過(guò)來(lái)就可以了。\x0d\x0a\x0d\x0a需要耐心、細(xì)心,可能在一步里有一個(gè)細(xì)小的差別就會(huì)出些古怪的錯(cuò)誤提示,有時(shí)需要根據(jù)錯(cuò)誤提示采取策略,總之原理是,先裝一個(gè)一模一樣的ORACLE,安裝目錄、數(shù)據(jù)庫(kù)名稱都一樣,這樣保證注冊(cè)表里不用更改;再覆蓋物理文件,最后重新實(shí)例化,打開(kāi)數(shù)據(jù)庫(kù)就可以進(jìn)去了。
1、導(dǎo)出數(shù)據(jù)
exp 數(shù)據(jù)庫(kù)用戶/密碼@數(shù)據(jù)庫(kù)連接 dumpfile ="導(dǎo)出文件" logfile = 日志文件_OUT
重裝完成,(用戶手工建)
2、導(dǎo)入數(shù)據(jù)
imp 數(shù)據(jù)庫(kù)用戶/密碼@數(shù)據(jù)庫(kù)連接 dumpfile ="導(dǎo)出文件" logfile = 日志文件_IN FULL=y;
1、一種方法是重裝數(shù)據(jù)庫(kù)后用IMP來(lái)導(dǎo)入原來(lái)的數(shù)據(jù),但使用這種方法的前提是你有以前數(shù)據(jù)的備份,并且這種方法還有許多不足的地方,如備份過(guò)舊,可能會(huì)丟失許多數(shù)據(jù)、導(dǎo)入數(shù)據(jù)太長(zhǎng)等。
一般情況下我們可以采用重用原來(lái)的數(shù)據(jù)庫(kù)的方法來(lái)恢復(fù)。在講步驟前先說(shuō)說(shuō)這種方法的原理。
數(shù) 據(jù)庫(kù)與實(shí)例對(duì)應(yīng),當(dāng)數(shù)據(jù)庫(kù)服務(wù)啟動(dòng)后,我們可以用SQLPLUS "/AS SYSDBA"方法連接到一個(gè)空閑的例程,當(dāng)執(zhí)行startup啟動(dòng)數(shù)據(jù)庫(kù)時(shí),首先會(huì)在%ORACLE_HOME%/database下找當(dāng)前SID對(duì)應(yīng) 的參數(shù)文件(PFILE或者SPFILE)和密碼文件,然后啟動(dòng)例程;接著根據(jù)參數(shù)文件記錄的信息找到控制文件,讀取控制文件的信息,這就是mount數(shù) 據(jù)庫(kù)了;最終根據(jù)控制文件的信息打開(kāi)數(shù)據(jù)庫(kù)。這個(gè)過(guò)程相當(dāng)于對(duì)數(shù)據(jù)庫(kù)著了一次冷備份的恢復(fù)。
下面的具體步驟:(我們假設(shè)原庫(kù)的所有相關(guān)文件都存在)1、安裝數(shù)據(jù)庫(kù)軟件只需安裝同版本的數(shù)據(jù)庫(kù)軟件即可,不需要?jiǎng)?chuàng)建數(shù)據(jù)庫(kù)。最好安裝在和原來(lái)數(shù)據(jù)庫(kù)同樣的%ORACLE_HOME%下,省得還要修改參數(shù)文件路徑等。(直接覆蓋原來(lái)的oracle即可)再次強(qiáng)調(diào),只安裝軟件,不創(chuàng)建數(shù)據(jù)庫(kù),否則將數(shù)據(jù)庫(kù)軟件安裝在同樣的目錄下舊的部分?jǐn)?shù)據(jù)文件會(huì)被覆蓋,這樣數(shù)據(jù)庫(kù)也不能被恢復(fù)了。
2、新建一個(gè)實(shí)例在cmd窗口執(zhí)行oradim -new -sid xinhai注意,這個(gè)SID名稱最好與你以前的SID一樣,否則在啟動(dòng)的數(shù)據(jù)需要指明pfile,并且需要重建密碼文件,比較麻煩。(當(dāng)然,如果你就不想用原來(lái)的SID也可以,把參數(shù)文件、密碼文件的名稱都改成與新SID對(duì)應(yīng)的名稱)。
3、啟動(dòng)數(shù)據(jù)庫(kù)做完以上兩步,就可以啟動(dòng)數(shù)據(jù)庫(kù)了。用net start 檢查oracle服務(wù)是否已經(jīng)啟動(dòng),如果oracle服務(wù)沒(méi)有啟動(dòng),則在cmd下運(yùn)行如下命令:net start oracleservicexinhai然后設(shè)定必要的環(huán)境變量,在cmd窗口運(yùn)行set ORACLE_SID=xinhai
接著連接數(shù)據(jù)庫(kù)sqlplus "/as sysdba"startup
如果正常的話,數(shù)據(jù)庫(kù)應(yīng)該就能起來(lái)了
4、啟動(dòng)監(jiān)聽(tīng)lsnrctl start
5、后續(xù)工作經(jīng)過(guò)以上幾步后,基本上就可以使用oracle了,但是使用起來(lái)有點(diǎn)不方便,如每次在cmd中啟動(dòng)數(shù)據(jù)庫(kù)都需要先SET ORACLE_SID、在本機(jī)連接數(shù)據(jù)庫(kù)也都需要加上@TNSNAME等。我們可以修改注冊(cè)表,添加ORACLE_SID的信息,避免這些麻煩。
在注冊(cè)表的HKEY_LOCAL_MACHINESOFTWAREORACLE下新建字符串值,名稱為ORACLE_SID,值為xinhai。也可以將以下內(nèi)容保持成一個(gè)后綴名為reg的文件(文件名隨便起),然后雙擊,即可將信息導(dǎo)入到注冊(cè)表中。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESOFTWAREORACLE]"ORACLE_SID"="xinhai"
注意,以上步驟都是在%ORACLE_HOME%、%ORACLE_SID%都與原庫(kù)一樣的情況下討論的,雖然%ORACLE_HOME%和%ORACLE_SID%可以與原庫(kù)不一樣,但為了減少麻煩和出錯(cuò)的幾率,建議不要改變則兩個(gè)值。
6、如果系統(tǒng)啟動(dòng)時(shí) 還不能啟動(dòng)oracle就增加以下
編輯一個(gè)oracle_startup.bat文檔 內(nèi)容為:
set sid=xinhailsnrctl starte:/oracle_startuplog.logsqlplus /nolog @e:oracle_startupsql.txte:/ oracle_startuplog.log
在e盤(pán)下增加文檔oracle_startuplog.log,內(nèi)容為:
connect / as sysdba;startup nomount;alter database mount;alter database open;quit
然后把oracle_startup.bat放到系統(tǒng)啟動(dòng)項(xiàng)里面,這樣每次啟動(dòng)系統(tǒng)時(shí)oracle就自動(dòng)啟動(dòng)了。