重裝系統后ORACLE數據庫恢復的方法


如果我們的操作系統出現問題,重裝系統后,ORACLE數據庫應該如何恢復呢?下文就為您列舉了兩個重裝系統后ORACLE數據庫恢復的方法,供您參考。

ORACLE數據庫恢復的方法我們經常會用到,下面就為您介紹重裝系統后ORACLE數據庫恢復的方法,希望對您學習ORACLE數據庫恢復方面能有所幫助。

我的電腦突然掛了,不得不重裝系統,不過我的ORACLE裝在了D盤,所有的文件都還在,我相信一定能夠恢復,直到搞定工作,我才開始整我的數據庫,花了兩天時間,終於恢復了,慶祝一下,同時總結一下,希望有遇到同樣問題的朋友能夠快速搞定此類問題

第一種: 
首先,備份數據庫(X:\oracle\oradata)下的數據文件,重新命名即可(否則裝數據庫的時候會提示sid已存在)。重新安裝數據庫,當然數據庫的名字就是你要恢復的名字。安裝完成后,打開控制面板,停止oracle的服務。把(X:\oracle\oradata)下新生成的文件改名,把原先目錄下的文件恢復名字。再重新啟動oracle服務和監聽。用sys/as dba 登陸數據庫,可能會提示權限不夠(ora-01031)修改(X:\oracle\ora92\network\admin )文件夾下的sqlnet.ora文件,添加SQLNET.AUTHENTICATION_SERVICES= (NTS),增加權限。登陸進去后,打開table提示不能打開。打開common頁,執行命令alert database open;這時再刷新table,發現原先的表可以打開了。恢復成功了。再用原先數據庫的普通用戶進入。發現一切正常。至此,大功告成。

第二種:

1、首先,將原來的ORACLE文件夾改名,原來的路徑是D:/oracle。我暫時改成D:/oracle_old。找來ORACLE(我用的是ORACLE 9I)安裝光盤,將ORACLE安裝在原來安裝的目錄下,這樣恢復起來更加方便,主要是注冊表的內容不用修改。

2、安裝完了之后,系統中又有一個可以使用的ORACLE了。這個時候要做的就是將原來的文件和數據恢復過來。第一步,先關閉ORACLE的所有已經啟動的項目,在“服務”里面逐一關閉。然后,將安裝目錄改名。我現在用的是D:/oracle。改成D:/oracle_new。再將D:/oracle_old改成D:/oracle。 這樣理論上說從物理層面恢復了ORACLE了。但是我們發現,現在還不能啟動ORACLE的監聽程序和服務程序。我們還要從邏輯上解決。

3、在dos環境下執行一個刪除命令:oradim -delete -sid mm,其中mm為創建oracle時候創建的實例 建議執行這個命令后重新啟動機器,重啟后就可以建立和原來實例名相同的實例。當然你懶,不重新啟動也可以,但是你的實例名就不能和原來的一樣了。

4、在dos環境下執行命令 oradim -new -sid mm -startmode a -pfile "D:\oracle\admin\mm\pfile\initmm.ora "創建一個新的實例,其中 “mm“為新數據庫的名稱。

5、啟動服務,先打開數據庫,然后可以用以前的用戶名和密碼登陸進去。 要補充的是,一般的ORACLE數據庫的監聽程序都是用電腦的名稱來識別地址的,而不是127.0.0.1或者localhost。所以,如果我們安裝系統的時候用的是不同的電腦名稱(比如我原來用的是wm_mm。重新安裝后用的是wenming_mm),那么我們還有一個工作要做,就是修改文件 listener.ora。將里面的相關的東西改過來就可以了。 
需要耐心、細心,可能在一步里有一個細小的差別就會出些古怪的錯誤提示,有時需要根據錯誤提示采取策略,總之原理是,先裝一個一模一樣的ORACLE,安裝目錄、數據庫名稱都一樣,這樣保證注冊表里不用更改;再覆蓋物理文件,最后重新實例化,打開數據庫就可以進去了。

注:恢復必須要有以下文件 a、初始化參數文件INIT.ORA b、所有數據文件 .dbf c、所有重做日志文件(聯機日志、歸檔日志)redo d、所有控制文件 crtl e、internal密碼文件 
 

 

摘自:http://space.itpub.net/231499/viewspace-63722

WINDOWS是很脆弱的系統,可能裝完沒幾天就會崩潰,如果你在WINDOWS下裝有oracle,那怎么來恢復這個數據庫呢?

一種方法是重裝數據庫后用IMP來導入原來的數據,但使用這種方法的前提是你有以前數據的備份,並且這種方法還有許多不足的地方,如備份過舊,可能會丟失許多數據、導入數據太長等。


一般情況下我們可以采用重用原來的數據庫的方法來恢復。在講步驟前先說說這種方法的原理。

數 據庫與實例對應,當數據庫服務啟動后,我們可以用SQLPLUS "/AS SYSDBA"方法連接到一個空閑的例程,當執行startup啟動數據庫時,首先會在%ORACLE_HOME%/database下找當前SID對應 的參數文件(PFILE或者SPFILE)和密碼文件,然后啟動例程;接着根據參數文件記錄的信息找到控制文件,讀取控制文件的信息,這就是mount數 據庫了;最終根據控制文件的信息打開數據庫。這個過程相當於對數據庫着了一次冷備份的恢復。

下面的具體步驟:(我們假設原庫的所有相關文件都存在)
1、安裝數據庫軟件
只需安裝同版本的數據庫軟件即可,不需要創建數據庫。最好安裝在和原來數據庫同樣的%ORACLE_HOME%下,省得還要修改參數文件路徑等。(直接覆蓋原來的oracle即可)
再次強調,只安裝軟件,不創建數據庫,否則將數據庫軟件安裝在同樣的目錄下舊的部分數據文件會被覆蓋,這樣數據庫也不能被恢復了。

2、新建一個實例
在cmd窗口執行
oradim -new -sid oracle9i
注意,這個SID名稱最好與你以前的SID一樣,否則在啟動的數據需要指明pfile,並且需要重建密碼文件,比較麻煩。(當然,如果你就不想用原來的SID也可以,把參數文件、密碼文件的名稱都改成與新SID對應的名稱)。

3、啟動數據庫
做完以上兩步,就可以啟動數據庫了。
用net start 檢查oracle服務是否已經啟動,如果oracle服務沒有啟動,則在cmd下運行如下命令:
net start oracleserviceoracle9i
然后設定必要的環境變量,在cmd窗口運行
set ORACLE_SID=oracle9i

接着連接數據庫
sqlplus "/as sysdba"
startup

如果正常的話,數據庫應該就能起來了

4、啟動監聽
lsnrctl start

5、后續工作
經過以上幾步后,基本上就可以使用oracle了,但是使用起來有點不方便,如每次在cmd中啟動數據庫都需要先SET ORACLE_SID、在本機連接數據庫也都需要加上@TNSNAME等。我們可以修改注冊表,添加ORACLE_SID的信息,避免這些麻煩。

在注冊表的HKEY_LOCAL_MACHINESOFTWAREORACLE下新建字符串值,名稱為ORACLE_SID,值為oracle9i。
也可以將以下內容保持成一個后綴名為reg的文件(文件名隨便起),然后雙擊,即可將信息導入到注冊表中。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESOFTWAREORACLE]
"ORACLE_SID"="oracle9i"


注意,以上步驟都是在%ORACLE_HOME%、%ORACLE_SID%都與原庫一樣的情況下討論的,雖然%ORACLE_HOME%和%ORACLE_SID%可以與原庫不一樣,但為了減少麻煩和出錯的幾率,建議不要改變則兩個值。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM