前两天我在备份数据时,发现C:\oracle\product\10.2.0\oradata\GXSN\TEMP01.DBF文件大小竟然为23G多,完全消耗掉C盘空间,匆忙间我以为oradata/GXSN整个文件夹下文件为临时文件,将其完全删除。
因为Oracle的数据文件都存放在E盘下,不知道oradata/GXSN存放的是控制文件,造成数据库无法使用。我通过查询相关资料想重建控制文件,但发现重建控制文件是在ORACLE控制文件已经备份的前提下的,我之前没有备份过Oracle的控制文件,所以无法恢复。
在整个解决问题的过程中,我曾尝试了多种思路。虽然失败,但锻炼了解决问题的能力,也总结了一些经验。
0.求助Oracle中国技术支持,竟然周末无人服务,需要等待工作日。(失败)
1.使用EasyRecovery恢复删除的控制文件,因为服务器的E盘较大,达到3T,EasyRecovery无法使用。又使用了其他数据恢复软件,都无法恢复删除的数据。(失败)
2.查询相关资料,尝试重建控制文件。(失败)
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.在别的机器上创建相同的GXSN数据库,然后将其下面的控制文件导入服务器的数据库下,但发现失败。
4.在服务器上新建ORACLE服务实例,生成相应的控制文件,将其下面的控制文件导入的数据库GXSN下,但发现失败。
5.将新建的数据库实例删除,原来的数据库在CMD控制台上使用SQLPLUS无法连接
sqlplus /nolog
conn /as sysdba
出现ORA-12360:TNS:协议适配器错误
无语了,竟然无法连接到原数据库实例上了。
两三T的数据只能重新录入,这次自己的失误,真的是损失惨重!自己以后在心态浮躁时一定要冷静点,不可急躁。自己在ORACLE的学习上需更深一步,免得再犯如此低级的严重错误!