1、首先安裝一個全新的Oracle,包括服務(wù)名、SID,安裝目錄應(yīng)最好與原來的ORACLE目錄一致。
2、刪除安裝目錄下所有的datafile、logfile.(oradata目錄下的文件)
3、Copy原來的數(shù)據(jù)文件到oradata目錄下,包括系統(tǒng)數(shù)據(jù)文件等。
4、alter database backup controlfile to trace; 備份當前數(shù)據(jù)庫控制文件,控制文件一般備份到D:/oracle/PRoduct/10.2.0/admin/bstest/udump下,請注意最新一個就是了。
刪除原控制文件,重新創(chuàng)建一個控制文件,請注意修改各個路徑的位置,如下:
CREATE CONTROLFILE SET DATABASE "TEST" RESETLOGS NOARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 'D:/ORACLE/PRODUCT/10.2.0/ORADATA/BSTEST/REDO01.LOG' SIZE 50M,
GROUP 2 'D:/ORACLE/PRODUCT/10.2.0/ORADATA/BSTEST/REDO02.LOG' SIZE 50M,
GROUP 3 'D:/ORACLE/PRODUCT/10.2.0/ORADATA/BSTEST/REDO03.LOG' SIZE 50M
-- STANDBY LOGFILE
DATAFILE
'D:/ORACLE/PRODUCT/10.2.0/ORADATA/BSTEST/SYSTEM01.DBF',
'D:/ORACLE/PRODUCT/10.2.0/ORADATA/BSTEST/UNDOTBS01.DBF',
'D:/ORACLE/PRODUCT/10.2.0/ORADATA/BSTEST/SYSAUX01.DBF',
'D:/ORACLE/PRODUCT/10.2.0/ORADATA/BSTEST/USERS01.DBF',
'D:/ORACLE/PRODUCT/10.2.0/ORADATA/BSTEST/TEST.DAT'
CHARACTER SET ZHS16GBK
;
注意修改數(shù)據(jù)文件的路徑,如果是原數(shù)據(jù)文件,加上你原來所有的數(shù)據(jù)文件路徑,如紅色則是我原來的數(shù)據(jù)文件。
11、重啟,啟動到startup mount;然后
執(zhí)行recover database;成功,
再執(zhí)行alter database open;打開成功了。
12、現(xiàn)在已基本成功了,但是經(jīng)過這樣處理,為了安全起見,
最好用EXP先將數(shù)據(jù)全部導(dǎo)出,然后再重新安裝ORACLE,然后再用IMP重新導(dǎo)入。
而當我導(dǎo)出時卻出現(xiàn)錯誤:提示臨時表空間為空。
用select name from v$tempfile;查看,確實為空,則:
如temp01.dbf已存在,則如下:
alter tablespace temp add tempfile 'D:/oracle/product/10.2.0/oradata/bstest/temp01.dbf'
否則:
alter tablespace temp add tempfile 'D:/oracle/product/10.2.0/oradata/bstest/temp01.dbf' size 10M;
再用EXP導(dǎo)出,成功!
還是打不開。出現(xiàn)以下錯誤:
alter database open RESETLOGS
*
ERROR 位于第 1 行:
ORA-01092: ORACLE 例程終止。強行斷開連接
10、 將UNDO日志改為手動模式:
alter system set undo_management='manual' scope=spfile;
5、startup nomount;啟動到nomount狀態(tài),然后執(zhí)行以上控制文件重建語句。
6、執(zhí)行recover database using backup controlfile until cancel;
輸入cancel回車,后出現(xiàn)錯誤。
7、alter database open resetlogs;執(zhí)行后出現(xiàn)以下錯誤。
ORA-01194: 文件1需要更多的恢復(fù)來保持一致性
ORA-01110: 數(shù)據(jù)文件 1: 'D:/ORACLE/ORADATA/ZQKH/SYSTEM01.DBF'
8、#系統(tǒng)文件出錯,看到“一致性”自然想到 _allow_resetlogs_corruption的隱含命令
alter system set "_allow_resetlogs_corruption"=true scope=spfile;
9、alter database open RESETLOGS;
新聞熱點
疑難解答
圖片精選