用一天时间恢复数据库成功案例

 
问题是这样的我们公司 ORACLE 数据库服务器数据库文件表空间文件文件夹 oradata 存放在挂接的存储空间F:盘上,挂接的存储分区有两次因为存储服务器原因断开过两次,后来再连上后, oracle 数据库出现问题,我用 PLSQL Developer 登录数据库编辑某个表数据的时候出现如下错误提示:

后来查看数据库文件在线状态提示有两个数据库文件处于 READ WRITE RECOVER 状态,需要做介质恢复。之前没有做任何备份,郁闷了,现在有数据库文件在,日志文件也在,控制文件也在,后来在网上查了查
SQL> select name,enabled,status from v$datafile;
 
NAME
-------------------------------------------------------------------------------
 
ENABLED    STATUS
---------- -------
E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF
READ WRITE SYSTEM
 
E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF
READ WRITE ONLINE
 
E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF
READ WRITE ONLINE
 
 
NAME
-------------------------------------------------------------------------------
 
ENABLED    STATUS
---------- -------
E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF
READ WRITE ONLINE
 
F:\ORADATA\ORCL\TBL_EIP.DBF
READ WRITE RECOVER
 
:\Documents and Settings\Administrator>sqlplus /nolog
 
SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 7 10 17:26:36 2009
 
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
 
SQL> conn sys/sys@orcl as sysdba
已连接。
SQL> select file#, status from v$datafile;
 
     FILE# STATUS
---------- -------
         1 SYSTEM
         2 ONLINE
         3 ONLINE
         4 ONLINE
         5 RECOVER
         6 RECOVER
 
已选择 6 行。
之前没有做任何备份,郁闷了,现在有数据库文件在,日志文件也在,控制文件也在,后来在网上查了查
我是用控制文件来恢复的
SQL> recover database using backup controlfile until cancel;
ORA-00279: 更改 7903924 (在 06/18/2009 23:10:39 生成) 对于线程 1 是必需的
ORA-00289: 建议:
E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2009_07_13\O1_MF_1_
217_%U_.ARC
ORA-00280: 更改 7903924 (用于线程 1) 在序列 #217 中

指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
这里一开始说AUTO说找不到日志文件,所以我就手工指了一个日志文件位置
E:\oracle\product\10.2.0\oradata\orcl\REDO01.LOG
ORA-00310: 归档日志包含序列 254; 要求序列 217
ORA-00334: 归档日志: 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG'

ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 将出现如下错误
ORA-01152: 文件 1 没有从过旧的备份中恢复
ORA-01110: 数据文件 1: 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF'

SQL> alter system set "_allow_resetlogs_corruption"=true scope=spfile; 这一步很重要,
系统已更改。
SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01092: ORACLE 实例终止。强制断开连接
重启动数据库实例后恢复成功,高兴死我了,弄了我一天,要是弄不好,可就麻烦了数据多了,领导肯定发疯,好了就好,谢谢网上哥们发了那么多案例。谢谢!

你可能感兴趣的:(数据库,职场,休闲)