只有.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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【資料庫資料恢復】透過恢復NDF檔案修復資料庫的資料恢復過程資料庫資料恢復
- 【資料庫資料恢復】MongoDB資料庫檔案損壞的資料恢復案例資料庫資料恢復MongoDB
- 【資料庫資料恢復】Sql Server資料庫檔案丟失的資料恢復過程資料庫資料恢復SQLServer
- 資料庫資料恢復-SQL SERVER資料庫檔案大小變為“0”的資料恢復方案資料庫資料恢復SQLServer
- 【資料庫資料恢復】EXT3檔案系統下MYSQL資料庫恢復案例資料庫資料恢復MySql
- 資料庫資料恢復—MongoDB資料庫檔案丟失,啟動報錯的資料恢復案例資料庫資料恢復MongoDB
- 【資料庫資料恢復】Oracle資料庫檔案出現壞塊報錯的資料恢復案例資料庫資料恢復Oracle
- 如何透過.dbf檔案還原資料庫資料庫
- MongoDB資料庫報錯,資料庫檔案丟失資料恢復案例MongoDB資料庫資料恢復
- 【資料庫資料恢復】SAP資料庫資料恢復案例資料庫資料恢復
- MSSQL資料庫資料恢復案例:ndf檔案大小變為0KB恢復資料SQL資料庫資料恢復
- 【資料庫資料恢復】mdb_catalog.wt檔案丟失的MongoDB資料恢復案例資料庫資料恢復MongoDB
- 【資料庫資料恢復】Sql Server資料庫資料恢復案例資料庫資料恢復SQLServer
- SQL SEVER 缺少LOG檔案資料庫恢復SQL資料庫
- 伺服器資料恢復-ext3檔案系統下oracle資料庫資料恢復案例伺服器資料恢復Oracle資料庫
- 寶塔資料庫恢復 mysql資料庫丟失恢復 mysql資料庫刪除庫恢復 寶塔mysql資料庫恢復資料庫MySql
- 【資料庫資料恢復】windows server下SqlServer資料庫的資料恢復資料庫資料恢復WindowsServerSQL
- 【資料庫資料恢復】如何恢復Oracle資料庫truncate表的資料資料庫資料恢復Oracle
- 資料庫修復資料恢復資料庫資料恢復
- 【伺服器資料恢復】linux ext3檔案系統下mysql資料庫資料恢復案例伺服器資料恢復LinuxMySql資料庫
- 【資料庫資料恢復】LINUX EXT3檔案系統下ORACLE資料庫誤操作導致資料丟失的資料恢復案例資料庫資料恢復LinuxOracle
- 【資料庫資料恢復】MS SQL資料庫附加資料庫出錯怎麼恢復資料?資料庫資料恢復SQL
- 【資料庫資料恢復】Oracle資料庫誤truncate table的資料恢復案例資料庫資料恢復Oracle
- 【資料庫資料恢復】誤truncate table的Oracle資料庫資料恢復方案資料庫資料恢復Oracle
- 【資料庫資料恢復】oracle資料庫誤truncate table怎麼恢復資料?資料庫資料恢復Oracle
- 【資料庫資料恢復】linux系統下MYSQL資料庫資料恢復案例資料庫資料恢復LinuxMySql
- 歸檔路徑更改後,如何對資料庫進行恢復(轉)資料庫
- 資料恢復新姿勢——通過ibd和frm檔案恢復資料資料恢復
- 【伺服器資料恢復】StorNext檔案系統資料恢復案例伺服器資料恢復
- 帝國cms如何進行恢復資料庫教程資料庫
- 伺服器資料恢復—透過拼接資料庫碎片恢復SqlServer資料庫資料的資料恢復案例伺服器資料恢復資料庫SQLServer
- 【分散式儲存資料恢復】hbase和hive資料庫底層檔案誤刪的資料恢復案例分散式資料恢復Hive資料庫
- 如何恢復在全備後新增了資料檔案的資料庫資料庫
- 資料庫資料恢復—NTFS分割槽損壞如何恢復SqlServer資料庫資料資料庫資料恢復SQLServer
- 【資料庫資料恢復】sql server資料庫連線失效的資料恢復案例資料庫資料恢復SQLServer
- 【資料庫資料恢復】Oracle資料庫ASM磁碟組掉線如何恢復資料?資料庫資料恢復OracleASM
- 【資料庫資料恢復】SqlServer資料庫無法讀取的資料恢復案例資料庫資料恢復SQLServer
- 【北亞資料恢復】oracle資料庫執行truncate table命令怎麼恢復資料?資料恢復Oracle資料庫
- 【儲存資料恢復】WAFL檔案系統下raid資料恢復案例資料恢復AI