標籤:
1,安裝oracle 10g資料庫並建立一個要恢複的資料庫相同一的執行個體(注意:最好是新安裝的資料庫,並且安裝的資料庫盡量和要恢複的資料庫的版本一致,並且執行個體必須一致);
2,以sysdba身份登入:對控制檔案進行備份;
sqlplus /nolog;(此處不能加分號,否則黑屏視窗會一閃而過)
conn /as sysdba;登入
2,備份控制項檔案到udmp目錄的trace檔案 alter database backup controlfile totrace;
找到oracle的安裝目錄:..\oracle\product\10.2.0\db_1\admin\執行個體名\udump檔案夾下(其中10.1的檔案路徑為E:\oracle\product\10.1.0\admin\orcl,此處可在oracle的檔案夾下搜尋.trc進行尋找),按修改時間降序,找到最近的trace檔案。備份好。
3,shutdownimmediate停止資料庫執行個體;
4,備份..\oracle\product\10.2.0\oradata目錄下的該執行個體檔案夾(例如:orcl),接著將該執行個體檔案夾刪除(必須是全部刪除吧要恢複的執行個體檔案夾放到此位置,不能只把要恢複的DBF直接替換原來orcl,否則建立控制檔案時會報如下錯誤),把需恢複的資料庫的oradata目錄下所有檔案拷到此目錄下。
5,以sysdba進入並執行startupnomount。把資料庫啟動到nomount狀態。
6,從第2步備份出來trace檔案中拷貝CREATECONTROLFILE部分語句來重建控制檔案:
注意:1,改為ARCHIVELOG;2,增加你的DBF檔案,只增加*_DATA.DBF,*_TEMP.DBF不能在這添加
此處應根據實際情況增刪資料表空間檔案記錄,如以下黑體部分則為新增記錄。
CREATE CONTROLFILE REUSE DATABASE "ORCL"NORESETLOGS ARCHIVELOG
MAXLOGFILES16
MAXLOGMEMBERS 3
MAXDATAFILES100
MAXINSTANCES8
MAXLOGHISTORY 454
LOGFILE
GROUP 1‘D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\REDO01.LOG‘ SIZE 10M,
GROUP 2‘D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\REDO02.LOG‘ SIZE 10M,
GROUP 3‘D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\REDO03.LOG‘ SIZE 10M
-- STANDBY LOGFILE
DATAFILE
‘D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\SYSTEM01.DBF‘,
‘D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\UNDOTBS01.DBF‘,
‘D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\SYSAUX01.DBF‘,
‘D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\USERS01.DBF‘,
‘D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\EXAMPLE01.DBF‘,
‘D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\YC_DATA.DBF‘,
‘D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\PE_DATA.DBF‘,
‘D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\HS.ORA‘
CHARACTER SET ZHS16GBK
;
7,RECOVERDATABASE;
(這個地方錯誤暫時不用理會。)
8ALTERDATABASE OPEN;
恢複完成,登入資料庫進行測試。
oracle通過DBF恢複資料