Oracle檔案恢復成例項的過程

2021-12-30 02:26:52 字數 1920 閱讀 4452

oracle檔案恢復成例項的過程

1.   適用條件

www.2cto.com  

1. 擁有原例項的資料檔案(oracle全路徑最好),比如系統重灌之後,或通過其它的機器上將oracle的冷備進行恢復的情況。這時原有的oracle資料庫檔案還在,但程式及服務無法開啟,需要使用本文所使用的方法進行恢復。

2. 擁有和原資料庫相同版本號的oracle安裝檔案。注:大版本小版本必須都一致。

2.   解決方案

2.1. 方案一:使用oradim建立例項方式 (推薦使用)

oradim工具是oracle在windows上的乙個命令列工具,用於手工進行oracle服務的建立、修改、刪除等工作。具體操作步驟如下。

2.1.1.安裝資料庫軟體

只需安裝同版本的資料庫軟體即可,不需要建立資料庫。最好安裝在和原來資料庫同樣的%oracle_home%下,省得還要修改引數檔案路徑等。

要點:資料庫版本必須一致。原oracle目錄要做好備份備用。安裝時要把原來的oracle刪乾淨。不要建立例項(這個預設是選中建立orcl例項的,要點掉)。

2.1.2.檔案拷備

將資料檔案(包括控制檔案),日誌檔案,spfile拷到對應位置。以10.1.0.2.0, 例項名為orcl為例:資料檔案為:%oracle_home%下的database\orcl資料夾複製過來。%oracle_home%下的admin\orcl資料夾複製過來。%oracle_home%下的db1\database下的spfileorcl.ora,hc_orcl.dat,pwdorcl.ora拷過來。

要點:目錄結構一致。資料檔案如果有未放到database\orcl下的,也要一併拷過來並放到與原始檔相同的目錄下。

2.1.3.建立同名例項

在cmd下, 使用oradim -new -sid orcl建立例項。注意例項名要和原例項名一致。

2.1.4.啟動例項

在cmd下, c:\> set oracle_sid=orcl, 然後c:\>sqlplus / as sysdba. 會提示連線到空閒例程。然後sql> startup. 例項啟動完成。

過程中如果有提示檔案找不到的時候請檢查是否檔案未拷完整。

檢查: 可以通過使用原有的使用者及密碼進行測試連線及表的查詢。

2.1.5.設定oracle例項自動啟動

oracle的服務是自動啟動的,但是資料庫不能自動啟動在登錄檔裡的\hkey_local_machines\software\oracle\home0下面的ora_sid_autostart改為true

2.1.6.啟動listener

將源%oracle_home%下的\db_1\network\admin下的listener.ora及tnsnames.ora兩個檔案拷到對應的目錄下,這兩個檔案為文字檔案,可以開啟進行更改,但不是很懂的時候建議不要做任務改動。

然後在cmd下輸入 c:\> lsnrctl start 進行啟動listener.

2.1.7.檢查及後續處理

經過上面五步的操作已經恢復成功了。現在要進行一下檢查。開啟服務檢視oracleserviceorcl 及oracleoradb10g_home1tnslistener是否已經啟動。啟動就是ok的。注意此時這兩個服務為手動啟動的,如果有需要請自行打到自動方式。

使用需要使用此資料庫的程式進行連線,測試。

至此方案1已經結束。

dbca是oracle進行例項建立,解除安裝的工具,一般在安裝資料庫時不建立例項的時候都是使用dbca進行建立例項的。此方案就是使用dbca建立乙個同名的例項。然後停掉此例項,再用資料檔案進行替換。再次啟動資料庫。

此方案成功率較低,因為多數情況下原資料庫建立過程中所選的引數及資料檔案等都不一定會選擇正確。所以此方案不建議使用。

而對於版本號不同的情況下是可以使用此方案的,但操作極為複雜,這裡就簡單提一下,如果需要的時候再多查資料進行完整測試再進行操作。

此方案未經過完整測試, 不建議使用。

Oracle例項恢復

例項恢復會在資料庫沒有安全關閉的情況下會發生,在資料庫shutdown abort和資料庫異常 down 掉,或者斷電會發生例項恢復。例項恢復的原因就是,在資料庫 down 掉那一刻,有部分修改過的資料沒有寫到磁碟上面,雖然資料在記憶體裡面丟掉了,但是 redo 寫到磁碟上面了,所以例項恢復用 re...

Oracle例項恢復

oracle例項恢復原理 首先從事物說起,當執行update開啟乙個事物的時候,首先需要在buffer cache中找到可用的塊 block 更新資料,然後構造cr塊,將update之前的資料放入到undo中,同時會在log buffer內寫日誌,log buffer內資料每隔3秒通過lgwr程序將...

Oracle 例項恢復詳解 MTTR

mttr mean time to recover mtbf mean time between failures 先要明白一些概念 日誌檔案中的資訊為了當系統出現failure時,保證事務可以恢復。當使用者事務完成發出commit時,總是先等待lgwr程序將事務所需的redo資訊寫到日誌檔案 之前...