Topic: oracle错误编码ORA-010330解决方法

ERP俱乐部

第 1 页 总共 1 页 [共有 1 条记录]


Posted by weilm on 2012-08-29 10:32 上午

最近学习oracle数据库,遇到了这个错误:

ORA-01033: ORACLE initialization or shutdown in progress
故障特征:使用命令行sqlplus或PL/SQL Developer均无法打开数据库。但是可以使用sys用户以sysdba的身份登录系统

产生的原因是: 卸载上一个版本的数据库时,有些文件没有卸载干净。

第一次按照别人的指导在cmd中 以sys用户登录,然后依次输入以下代码:

recover database using backup controlfile;
C:\oracle\product\10.2.0\oradata\orcl\REDO01.LOG 

(该路径是安装oracle的路径,每个人的可能不一样,我是默认安装到C盘的。)

recover database using backup controlfile;
C:\oracle\product\10.2.0\oradata\orcl\REDO02.LOG

alter database open resetlogs;

处理成功了。

结果第二天还是遇到了这个错误,但是按照上面的操作不能解决。自己在网上搜索了一些解决办法,因为每个人出现的情况不一样,所以显示的内容也不一样,我结合了其他人的解决办法将处理过程整理了一下。


处理步骤:

1. 在 ‘开始’-->‘运行’执行cmd

2.输入 sqlplus
   再输入: SQL>sys/as sysdba
 应提示类似于如下信息:

SQL*Plus: Release 10.2.0.1.0 - Production on 星期日 9月 26 20:06:13 2010

Copyright (c) 1982, 2005, Oracle.  All rights reserved.


连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

3.输入SQL> shutdown immediate
  ORA-01109: 数据库未打开


已经卸载数据库。
ORACLE 例程已经关闭。
4.输入SQL> startup
ORACLE 例程已经启动。

Total System Global Area  612368384 bytes
Fixed Size                  1250428 bytes
Variable Size             230689668 bytes
Database Buffers          373293056 bytes
Redo Buffers                7135232 bytes
数据库装载完毕。
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项

5.SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01194: 文件 1 需要更多的恢复来保持一致性
ORA-01110: 数据文件 1: 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF'

6.SQL> recover database using backup controlfile;

ORA-00283:恢复会话因错误而取消
ORA-19909:数据文件6 属于孤立的原型
ORA-01110:数据文件6:'D:\MYTS.DBF'

7.SQL> alter database datafile 'D:\MYTS.DBF' offline drop;
 
  数据库已更改。
从步骤3开始继续按照刚才的方法进行,步骤如下:

SQL> shutdown immediate
ORA-01109: 数据库未打开


已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area  612368384 bytes
Fixed Size                  1250428 bytes
Variable Size             230689668 bytes
Database Buffers          373293056 bytes
Redo Buffers                7135232 bytes
数据库装载完毕。
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项

SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01194: 文件 1 需要更多的恢复来保持一致性
ORA-01110: 数据文件 1: 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF'

SQL> recover database using backup controlfile;
ORA-00279: 更改 575807 (在 08/23/2012 14:13:16 生成) 对于线程 1 是必需的
ORA-00289: 建议: C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_08_28\01_MF
_1_3_%u_.ARC
ORA-00280: 更改 575807 用于线程 1 在序列 # 3 中


指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
C:\oracle\product\10.2.0\oradata\orcl\REDO01.LOG    !!!输入此文件路径
ORA-00310:归档日志包含序列2;要求序列3
ORA-00334:归档日志:'C:\oracle\product\10.2.0\oradata\orcl\REDO01.LOG'

SQL> recover database using backup controlfile;
ORA-00279: 更改 575807 (在 08/23/2012 14:13:16 生成) 对于线程 1 是必需的
ORA-00289: 建议: C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_08_28\01_MF
_1_3_%u_.ARC
ORA-00280: 更改 575807 用于线程 1 在序列 # 3 中

指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
C:\oracle\product\10.2.0\oradata\orcl\REDO02.LOG    !!!输入此文件路径
已应用的日志。
完成介质恢复。
SQL> alter database open resetlogs;
数据库已更改。

在PL/SQL中如果能够顺利登录就可以啦。