ALLSTARS_ORACLE 发表于 2017-4-17 15:57:10

严重的Oracle生产数据库事故 ORA-01194 ORA-00283

本帖最后由 ALLSTARS_ORACLE 于 2017-4-27 13:25 编辑

生产数据库817。HP unix。数据库投入使用后一直不规范。没有备份过,非归档模式。事故的起因是这样的:
1、工程师建立了一个表空间MY_SETTLE,有一个数据文件MY_SETTLE01.dbf。
2、向这个表空间添加了一个数据文件MY_SETTLE02.dbf。
>alter tablespace MY_SETTLE add datafile '.../MY_SETTLE02.dbf.dbf'。--这时工程师发现把数据文件名写错了,应该是MY_SETTLE02.dbf。
且添加数据文件没有成功。报的什么错不知道。工程师认为没有添加上,就在os中将MY_SETTLE02.dbf.dbf删除了。
3、此时数据库自动shutdown了。工程师做了startup,提示MY_SETTLE02.dbf.dbf不存在,数据库到mount状态下。工程师再次shutdown。
这时服务器没有响应了。只好登上服务器,将oracle相关进程全部kill掉了(相当于做了shutdown abort)。
4、重新startup后,提示MY_SETTLE02.dbf.dbf不存在。其它数据文件中的数据很重要,问题是现在数据库不能启动。

以下是我做的恢复尝试(但愿没有起反效果)
1、>alter database create datafile 35 as '/sett_his/data_my/oradata/MY_SETTLE2.dbf.dbf';
ORA-02236: invalid file name
2、alter database datafile '/sett_his/data_my/oradata/MY_SETTLE2.dbf.dbf' offline drop;
数据库已更改。
--后来发现在v$datafile中一直可以看到MY_SETTLE02.dbf.dbf。状态是
rfile#   status   enabled
-----------------------------
35      recover   read write

--状态一直是recover,怎么都改不了,也不能offline。这是为什么?!
这时做:
3、>alter database open;
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
SVRMGR> alter database open resetlogs;
alter database open resetlogs
*
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: '/bill/ora817/oradata/ora8i/system01.dbf'

--这里为什么会报data file 1: '/bill/ora817/oradata/ora8i/system01.dbf'我一直想不通。难道是因为做了shutdown abort的原因?!
4、
SVRMGR> alter database open NORESETLOGS;
alter database open NORESETLOGS
*
ORA-01610: recovery using the BACKUP CONTROLFILE option must be done
SVRMGR> recover database;
ORA-00283: recovery session canceled due to errors
ORA-01610: recovery using the BACKUP CONTROLFILE option must be done
--为什么会这么提示,是不是做了shutdown abort就必须做recover database using backup controlfile?!

5、提示需要介质恢复,于是我就找到了添加MY_SETTLE02.dbf.dbf的时间点:
>recover database using backup controlfile until time '2005-3-2 14:07:54';
这里同样提示data file 1: '/bill/ora817/oradata/ora8i/system01.dbf'需要恢复。


各位大侠,虽然这是个国有大中型企业,却死活不买oracle服务。小女子刚刚当上DBA,能力确实有限,该怎么办我都快急死了。
希望大侠们多多指点,越详细越好。小女子先谢谢各位了。


另外做>recover database using backup controlfile until time '2005-3-2 14:07:54';
的时候提示恢复已完成但data file 1: '/bill/ora817/oradata/ora8i/system01.dbf'需要恢复。这里control file是备份了的。

从头到尾就是offline  drop 和 recover backup controlfile 对数据库产生了影响。其它命令都没有成功。

另外是不是可以考虑重建控制文件?!还有现在数据库只能到mount的状态下,这时能做数据文件的备份吗?!我就怕数据恢复不了了啊!





这个库是结算数据库。在月底结算前恢复都是可以接受的。当初我确实把问题想的太简单,犯了这样的错误,悔之晚矣。唉,大不了就失业。另外我现在已经不在现场了,还是等高手来救吧,凭我一知半解的技术确实搞不定了。我现在就是想知道现在做冷备份还来得及不,其实什么数据文件都没丢,不知道重建库行不行。

我心里太难受了,公司没有买oracle的服务,有没有哪位北京的朋友能帮忙介绍一下oracle的人帮帮忙?费用我只能自己出,所以给不了多少。谢谢了。
页: [1]
查看完整版本: 严重的Oracle生产数据库事故 ORA-01194 ORA-00283