作業系統重灌後Oracle資料庫的恢復

regonly1發表於2010-10-19
上週五作業系統異常,關機後無法再啟動,求助於公司硬體技術人員得不到解決,於是只好換機器。由於原來硬碟上仍有大量資料,因此以行動硬碟的方式從原始硬碟中複製出了資料。

最麻煩的是Oracle的資料檔案,只是複製檔案還沒用,還需要恢復。但是我只是有個初步的概念,沒有實際的操作經驗,看到了一堆資料檔案卻不知道如何處理。
不過總是要試試看的嘛,所以我大概搜尋了下此類方法。

首先,安裝資料庫軟體肯定是必須的;

然後,就是如何將資料庫與資料檔案關聯起來了。我們知道,現在的資料檔案和資料庫軟體是毫無關係的,根本無從啟動。那如何繫結這個關係呢?

按照網上的說法,就是用一個新的例項來掛載這些資料庫檔案。那如何建立例項呢?例項,我們知道,有個例項名,所以我們先設定例項名:
set ORACLE_SID=orcl(windows環境,unix環境則用export ORACLE_SID=orcl)

然後就是建立例項:
oradim -new -sid orcl -startmode m
(刪除例項:oradim -delete -sid orcl)

這裡是關鍵,有些地方指定了啟動的pfile,即:
oradim -new -sid orcl startmode m pfile=E:\oracle\product\10.2.0\admin\orcl\pfile\initorcl.ora
需要注意的是,oradim是oracle在windows下開發的一個特有的命令,用於向系統註冊啟動服務,它在unix/linux下是不存在的,因為此類系統下,無需註冊啟動的服務。因此要建立例項,直接透過sqlplus建立例項即可(未經驗證)。

但是實際操作中發現,在這個步驟指定這個檔案後,如果在sqlplus啟動中不重新指定(startup nomount),始終都會報“ora-01263”錯誤。一開始以為是引數檔案中指定的dump路徑有問題,但每個都檢查了一遍都正常,甚至只剩下db_name引數時也還是報這個錯誤,所以我分析應該不是這個引數檔案導致的,所以在startup的時候,重新指定了pfile檔案:
startup nomount pfile=E:\oracle\product\10.2.0\admin\orcl\pfile\initorcl.ora
便能正常啟動了。一般情況下,只要引數檔案中配置的路徑跟實際資料檔案的路徑一致,且資料檔案都正常,資料庫便能正常掛載和啟動了。注意,該引數檔案也是從原來的地方拷出來的。
 
總結一下:
在恢復資料庫之前,首先要具備以下幾個條件:
1、pfile或spfile。這個是啟動的關鍵,必須讓oradim知道是那個引數檔案才能啟動,可以透過create pfile from spfile或者create spfile from pfile來備份;
2、tnsnames.ora。這個是歷史配置的連線名,在恢復之前最好是備份此檔案。不然的話,下次連線資料庫的時候又得一個個重新配置這些連線名了。
3、所有控制檔案、資料檔案、日誌檔案等。

如何根據資料檔案恢復資料庫。
1、安裝Oracle軟體;
2、複製資料檔案到引數檔案中指定的路徑下;
3、增加例項:oradim -new -sid orcl -syspwd passwd -pfile '...';
4、指定pfile引數檔案,啟動例項到nomount狀態;
5、如果啟動正常,則建立spfile:create spfile from pfile=....;
6、重啟動資料庫,以spfile(預設方式)啟動;
7、恢復完成。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12932950/viewspace-676264/,如需轉載,請註明出處,否則將追究法律責任。

相關文章