只有.dbf資料檔案進行資料庫恢復
由於資料庫伺服器崩潰,造成了無法進入系統進行資料庫備份,只能把oracle相關檔案複製出來。對於複製出來的檔案在測試機上進行一次不完全恢復,具體流程如下所示:
1、安裝oracle 10g服務端並建立一個與要進行恢復的資料庫相同名稱的例項(db_name,sid,字符集一樣,因為在建立控制檔案時,會判斷你要恢復的dbf檔案中檔案頭資訊中的資料庫名是否與所在的例項名是否一樣)
2、以sysdba身份進行備份控制元件檔案到udmp目錄的trace檔案(語句:alter database backup controlfile to trace)
3、Shutdown immediate停止資料庫,備份當前~\oracle\product\10.2.0\oradata目錄中的檔案,接著刪除這些檔案並把需恢復的資料庫的所有.dbf檔案拷到此目錄下。其中 system01.dbf,sysaux01.dbf和儲存真實資料的.dbf檔案是必要的
(只要DBF就可以了,日誌和控制檔案不要)。
4、以sysdba進入並執行startup nomount。把資料庫啟動到nomount狀態。
5、從第2步備份出來trace檔案中複製CREATE CONTROLFILE部分語句來重建控制檔案。此處應根據實際情況增刪表空間檔案記錄,如以下黑體部分則為新增記錄。
CREATE CONTROLFILE set Database ocp Resetlogs
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 'C:\oracle\product\10.2.0\oradata\ocp\RED001.LOG'SIZE 50M,
GROUP 2 'C:\oracle\product\10.2.0\oradata\ocp\RED002.LOG'SIZE 50M,
GROUP 3 'C:\oracle\product\10.2.0\oradata\ocpRED003.LOG'SIZE 50M
DATAFILE
'D:\oradata\SYSTEM01.DBF',--要恢復的資料所在的dbf檔案
'D:\oradata\UNDOTBS01.DBF',--要恢復的資料所在的dbf檔案
'D:\oradata\SYSAUX01.DBF',--要恢復的資料所在的dbf檔案
'D:\oradata\USERS01.DBF',--要恢復的資料所在的dbf檔案
'D:\oradata\EXAMPLE01.DBF',--要恢復的資料所在的dbf檔案
'D:\oradata\HYGEIA01.DBF',--要恢復的資料所在的dbf檔案
'D:\oradata\HYGEIA02.DBF',--要恢復的資料所在的dbf檔案
'D:\oradata\HYGEIA03.DBF'--要恢復的資料所在的dbf檔案
CHARACTER SET ZHS16GBK
6 alter database open resetlogs;
7 重新建立臨時表空間
8 檢視恢復後結果
第二種情況(其實要恢復資料庫只要system01.dbf,sysaux01.dbf和儲存真實資料的.dbf檔案)
1、安裝oracle 10g服務端並建立一個與要進行恢復的資料庫相同名稱的例項(db_name,sid,字符集一樣,因為在建立控制檔案時,會判斷你要恢復的dbf檔案中檔案頭資訊中的資料庫名是否與所在的例項名是否一樣)
2、以sysdba身份進行備份控制元件檔案到udmp目錄的trace檔案(語句:alter database backup controlfile to trace)
3、Shutdown immediate停止資料庫,備份當前~\oracle\product\10.2.0\oradata目錄中的檔案,接著刪除這些檔案並把需恢復的資料庫的所有.dbf檔案拷到此目錄下。其中 system01.dbf,sysaux01.dbf和儲存真實資料的.dbf檔案是必要的
(只要DBF就可以了,日誌和控制檔案不要)。
4、以sysdba進入並執行startup nomount。把資料庫啟動到nomount狀態。
5、從第2步備份出來trace檔案中複製CREATE CONTROLFILE部分語句來重建控制檔案。此處應根據實際情況增刪表空間檔案記錄,如以下黑體部分則為新增記錄。
CREATE CONTROLFILE set Database ocp resetlogs
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 'D:\oracle\product\10.2.0\oradata\ocp\RED001.LOG'SIZE 50M,
GROUP 2 'D:\oracle\product\10.2.0\oradata\ocp\RED002.LOG'SIZE 50M,
GROUP 3 'D:\oracle\product\10.2.0\oradata\ocp\RED003.LOG'SIZE 50M
DATAFILE
'D:\oracle\product\10.2.0\oradata\ocp\SYSTEM01.DBF',--損壞的資料庫的system表空間的資料檔案
'D:\oracle\product\10.2.0\oradata\ocp\SYSAUX01.DBF',--損壞的資料庫的sysaux表空間的資料檔案
'D:\oracle\product\10.2.0\oradata\ocp\HYGEIA01.DBF',--要恢復的資料所在的dbf檔案
'D:\oracle\product\10.2.0\oradata\ocp\HYGEIA02.DBF', --要恢復的資料所在的dbf檔案
'D:\oracle\product\10.2.0\oradata\ocp\HYGEIA03.DBF' --要恢復的資料所在的dbf檔案
CHARACTER SET ZHS16GBK
6、Shutdown immediate
7、在admin\pfile目錄下的init.ora里加入隱含引數:
_allow_resetlogs_corruption=true
_allow_terminal_recovery_corruption=true
undo_tablespace='SYSTEM'
undo_management='MANUAL'
8、執行startup pfile='D:\oracle\product\10.2.0\admin\orcl\pfile\init.ora(檔名和目錄按照實際情況而定)' mount force;
9、Recover database\ recover database until cancel進行介質恢復。
10、 Alter database open resetlogs開啟資料庫可能不成功:此處出現了ORA-03113 " ORA-03113: 通訊通道的檔案結尾"的錯誤提示。
11、 重新啟動資料庫(startup) ,結果出現以下錯誤提示:
ora-01113:檔案1需要介質恢復
ora-01110:資料檔案1:'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF'
12、 從新恢復表空間檔案recover datafile D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF(其它表空間檔案可能也需要恢復)
13、 alter database open; 資料庫已更新
14.重新建立UNDOTBS1表空間
create undo tablespace undotbs1 DATAFILE
'D:\oracle\product\10.2.0\oradata\orcl\undotbs01.dbf' SIZE 200M
15、Shutdown immediate
16、在admin\pfile目錄下的init.ora里加入隱含引數:
刪除_allow_resetlogs_corruption=true
刪除_allow_terminal_recovery_corruption=true
undo_tablespace='UNDOTBS1'
undo_management='AUTO'
17.startup pfile='D:\oracle\product\10.2.0\admin\orcl\pfile\init.ora
18、 full export備份資料庫。
19 重新建立臨時表空間
20 檢視恢復後結果
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26015009/viewspace-714742/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- rman恢復時跳過資料檔案,進行恢復
- 【資料庫資料恢復】透過恢復NDF檔案修復資料庫的資料恢復過程資料庫資料恢復
- 【資料庫資料恢復】MongoDB資料庫檔案損壞的資料恢復案例資料庫資料恢復MongoDB
- 資料庫複製方式進行資料庫恢復資料庫
- 【資料庫資料恢復】Sql Server資料庫檔案丟失的資料恢復過程資料庫資料恢復SQLServer
- 資料庫資料恢復-SQL SERVER資料庫檔案大小變為“0”的資料恢復方案資料庫資料恢復SQLServer
- Bak檔案恢復到資料庫資料庫
- 【資料庫資料恢復】EXT3檔案系統下MYSQL資料庫恢復案例資料庫資料恢復MySql
- 【資料庫資料恢復】Oracle資料庫檔案出現壞塊報錯的資料恢復案例資料庫資料恢復Oracle
- 資料庫資料恢復—MongoDB資料庫檔案丟失,啟動報錯的資料恢復案例資料庫資料恢復MongoDB
- 基於已有引數檔案進行資料恢復資料恢復
- 【資料庫資料恢復】SAP資料庫資料恢復案例資料庫資料恢復
- MongoDB資料庫報錯,資料庫檔案丟失資料恢復案例MongoDB資料庫資料恢復
- MSSQL資料庫資料恢復案例:ndf檔案大小變為0KB恢復資料SQL資料庫資料恢復
- SQL Server資料庫多資料檔案恢復技術SQLServer資料庫
- 如何透過.dbf檔案還原資料庫資料庫
- 【資料庫資料恢復】Sql Server資料庫資料恢復案例資料庫資料恢復SQLServer
- 使用netbackup進行資料庫恢復案例資料庫
- 【資料庫資料恢復】mdb_catalog.wt檔案丟失的MongoDB資料恢復案例資料庫資料恢復MongoDB
- 修復DBF資料表檔案的簡單方法 (轉)
- 伺服器資料恢復-ext3檔案系統下oracle資料庫資料恢復案例伺服器資料恢復Oracle資料庫
- 使用blockrecover 對有壞塊的資料檔案進行恢復BloC
- 【資料庫資料恢復】如何恢復Oracle資料庫truncate表的資料資料庫資料恢復Oracle
- 【資料庫資料恢復】windows server下SqlServer資料庫的資料恢復資料庫資料恢復WindowsServerSQL
- 寶塔資料庫恢復 mysql資料庫丟失恢復 mysql資料庫刪除庫恢復 寶塔mysql資料庫恢復資料庫MySql
- SQLServer 2000日誌檔案缺失只有MDF恢復資料庫的辦法SQLServer資料庫
- RMAN資料庫恢復 之歸檔模式有(無)備份-丟失資料檔案的恢復資料庫模式
- 恢復之重建資料檔案
- 資料庫resetlogs後進行rman恢復7資料庫
- 資料庫resetlogs後進行rman恢復6資料庫
- 資料庫resetlogs後進行rman恢復5資料庫
- 資料庫resetlogs後進行rman恢復4資料庫
- 資料庫resetlogs後進行rman恢復3資料庫
- 資料庫resetlogs後進行rman恢復2資料庫
- 資料庫resetlogs後進行rman恢復1資料庫
- 使用dbms_backup_restore進行資料庫恢復REST資料庫
- 透過RMAN進行資料庫恢復(step by step)資料庫
- 資料檔案誤刪--但有資料檔案的copy恢復