誤刪Oracle數(shù)據(jù)庫實例的控制文件
誤刪Oracle數(shù)據(jù)庫實例的控制文件會給Oracle數(shù)據(jù)庫的操作帶來很多的麻煩,下文中將為大家?guī)砹嗽敿毜闹v解,希望對大家能夠有所幫助。
前兩天我在備份數(shù)據(jù)時,發(fā)現(xiàn)C:\oracle\product\10.2.0\oradata\GXSN\TEMP01.DBF文件大小竟然為23G多,完全消耗掉C盤空間,匆忙間我以為oradata/GXSN整個文件夾下文件為臨時文件,將其完全刪除。
因為Oracle的數(shù)據(jù)文件都存放在E盤下,不知道oradata/GXSN存放的是控制文件,造成數(shù)據(jù)庫無法使用。我通過查詢相關(guān)資料想重建控制文件,但發(fā)現(xiàn)重建控制文件是在ORACLE控制文件已經(jīng)備份的前提下的,我之前沒有備份過Oracle的控制文件,所以無法恢復(fù)。
在整個解決問題的過程中,我曾嘗試了多種思路。雖然失敗,但鍛煉了解決問題的能力,也總結(jié)了一些經(jīng)驗。
0.求助Oracle中國技術(shù)支持,竟然周末無人服務(wù),需要等待工作日。(失?。?/p>
1.使用EasyRecovery恢復(fù)刪除的控制文件,因為服務(wù)器的E盤較大,達到3T,EasyRecovery無法使用。又使用了其他數(shù)據(jù)恢復(fù)軟件,都無法恢復(fù)刪除的數(shù)據(jù)。(失?。?/p>
2.查詢相關(guān)資料,嘗試重建控制文件。(失?。?/p>
CREATE CONTROLFILE reuse set DATABASE orcl RESETLOGS noARCHIVELOG
MAXLOGFILES 32
MAXLOGMEMBERS 3
MAXDATAFILES 32
MAXINSTANCES 16
MAXLOGHISTORY 1600
LOGFILE
group 1 ('E:\oracle\product\10.2.0\oradata\orcl\redo01.log') size 100k ,
group 2 ('E:\oracle\product\10.2.0\oradata\orcl\redo02.log') size 100k,
group 3 ('E:\oracle\product\10.2.0\oradata\orcl\redo03.log') size 100k,
datafile
'E:\oracle\product\10.2.0\oradata\orcl\users01.dbf',
'E:\oracle\product\10.2.0\oradata\orcl\undotbs01.dbf',
'E:\oracle\product\10.2.0\oradata\orcl\system01.dbf',
'E:\oracle\product\10.2.0\oradata\orcl\sysaux01.dbf',
'E:\oracle\product\10.2.0\oradata\orcl\example01.dbf';
3.在別的機器上創(chuàng)建相同的GXSN數(shù)據(jù)庫,然后將其下面的控制文件導(dǎo)入服務(wù)器的數(shù)據(jù)庫下,但發(fā)現(xiàn)失敗。
4.在服務(wù)器上新建ORACLE服務(wù)實例,生成相應(yīng)的控制文件,將其下面的控制文件導(dǎo)入的數(shù)據(jù)庫GXSN下,但發(fā)現(xiàn)失敗。
5.將新建的數(shù)據(jù)庫實例刪除,原來的數(shù)據(jù)庫在CMD控制臺上使用SQLPLUS無法連接
sqlplus /nolog
conn /as sysdba
出現(xiàn)ORA-12360:TNS:協(xié)議適配器錯誤
無語了,竟然無法連接到原數(shù)據(jù)庫實例上了。
兩三T的數(shù)據(jù)只能重新錄入,這次自己的失誤,真的是損失慘重!自己以后在心態(tài)浮躁時一定要冷靜點,不可急躁。自己在ORACLE的學(xué)習(xí)上需更深一步,免得再犯如此低級的嚴(yán)重錯誤!