Oracle本機上錯刪非系統的DBF的檔案恢復

2021-09-22 07:33:47 字數 1435 閱讀 9045

情況是這樣的,昨天下午2點,我將oracle離線了,然後複製乙份e:\files\oracle\oradata\******目錄下的檔案。其中******為本機上的資料庫名。

然後晚上22點鐘時,我在arcgis中對錶空間yyyy_sde進行了致命錯誤的修改,便隨手一刪,把e:\files\oracle\oradata\******\tablespase\yyyy_sde.dbf刪除了,並用昨天下午2點鐘冷備份的該檔案替換了這個檔案。

結果資料庫一直啟動不了。報如下錯誤:

刪除系統原來'e:\files\oracle\oradata\******\tablespase\'目錄下的最新的hhch_sde.dbf, 想用冷備份的先前檔案恢復資料庫的該錶空間,結果重新啟動資料庫時例項後報以下錯誤:

ora-01113: 檔案 7 需要介質恢復

ora-01110: 資料檔案 7:

'e:\files\oracle\oradata\******\tablespase\yyyy_sde.dbf'

由於直接拷貝e:\files\oracle\oradata\******目錄並非為冷備份,之能算是只備份了一部分的檔案。所以無法用recover命令載入這個檔案,日誌檔案缺失。

問題演變為如何使用單一的.dbf檔案, 去恢復oracle資料庫的表空間了。

解決方案:

首先明確的是本機上的環境,僅乙個.dbf被錯誤替換的場景。

解決辦法是死馬當做活馬醫,還是希望能救活的。就把下午2點鐘備份的e:\files\oracle\oradata\******下的檔案,全部拷貝到資料庫的那個目錄下。

然後重啟資料庫,但是會報ora--00214錯誤,後來索性將control02.ctl控制檔案也給替換了,替換為control01.ctl,名字直接改為control02.ctl。也就是

然後替換掉e:\files\oracle\flash_recovery_area\******\control02.ctl為e:\files\oracle\oradata\******\control01.ctl

重啟資料庫,奇蹟出現了,竟然好了。謝天謝地!

總結:萬萬使不得,自己直接刪除oracle資料庫中的檔案;

萬萬記住不能看不靠譜的網路部落格,比如這次冷備份說直接讓我備份資料庫目錄下的檔案即可實現冷備份。錯了。完整的冷備份是應該是oracle空間資料庫的備份與恢復 ,備份的檔案絕非乙個資料夾的資料;

資料安全大於天,一定要做好資料定期備份與錯誤恢復的基本功,做到具備系統性的資料庫維護能力。

沒有整理與歸納的知識,一文不值!高度概括與梳理的知識,才是自己真正的知識與技能。 永遠不要讓自己的自由、好奇、充滿創造力的想法被現實的框架所束縛,讓創造力自由成長吧! 多花時間,關心他(她)人,正如別人所關心你的。理想的騰飛與實現,沒有別人的支援與幫助,是萬萬不能的。

Oracle本機上錯刪非系統的DBF的檔案恢復

情況是這樣的,昨天下午2點,我將oracle離線了,然後複製乙份e files oracle oradata 目錄下的檔案。其中 為本機上的資料庫名。然後晚上22點鐘時,我在arcgis中對錶空間yyyy sde進行了致命錯誤的修改,便隨手一刪,把e files oracle oradata tab...

oracle本機忘記密碼處理

之前在本機上裝了乙個oracle服務端,並自己建立了資料庫,但是今天在登入的時候發現自己忘記了密碼,通過網上查詢相關資料,成功重置並修改了密碼,具體流程如下 1.優先使用系統賬戶進行登入 sys system和scott 預設普通賬戶 三個賬戶,預設密碼為 sys的密碼是change on inst...

oracle的遷移從遠端機上到本地機上

對於同種資料庫oracle 1,資料 量小 表 可以用dblink的形式。如果在oracle資料庫之間複製資料,應該使用create table as 和insert的sql命令。create table om serv income sum month nologging as select pa...