您的位置:首页 > 数据库 > Oracle

oracle 问题 ORA-12528 ORA-01219 ORA-00214 控制文件版本不一致

2013-07-04 17:12 405 查看
今天突然发现机器上的oracle不行了,plsql连接不了,报ORA-12528: TNS: 监听程序所有适用的例程都不允许建立的错误,查资料后在listener.ora中加上

(SID_DESC =

      (GLOBAL_DBNAME = orcl)

      (ORACLE_HOME = D:\oracle\product\10.2.0\db_1)

      (SID_NAME = ORCL)

    )

结果 normal连接 报ora-01033:oracle initialization or shutdown in progress  的错误,sysdba可以登录,但去看table什么的出现“ORA-01219: 数据库未打开: 仅允许在固定表/视图中查询”,崩溃,继续去问度娘。

照着网上的敲命令:

SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 10月 2 16:03:01 2012

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

请输入用户名:  sys as sysdba

输入口令:

连接到:

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

With the Partitioning, OLAP and Data Mining options

SQL> shutdown;

ORA-01507: ??????

ORACLE 例程已经关闭。

SQL> startup;

ORACLE 例程已经启动。

Total System Global Area  532676608 bytes

Fixed Size                  1249968 bytes

Variable Size             209718608 bytes

Database Buffers          314572800 bytes

Redo Buffers                7135232 bytes

ORA-00214: ???? ''D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL03.CTL'' ?? 4967

??? ''D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL01.CTL'' ?? 4962 ???

 

苦逼的中文错误信息还不显示,继续百度错误信息:ORA-01507: 未安装数据库  ORA-00214: 控制文件 '' 版本  与文件 '' 版本  不一致

终于有眉目了,也有兄弟说服务器突然断电结果oracle挂了的现象,到这我才知道原来tm是我前两天脚犯贱,把电脑电源给踢掉了,艹!!

该错误一般出现的原因:数据库服务器掉电等导致数据库异常中断。原因很简单:根据oracle db运行原理,数据库在运行期间,由于检查点发生等原因会不断的更新控制文件,同时数据库在关闭和重启过程中都会更新控制文件的内容,但是数据库服务器突 然的掉电,会导致当前的db信息无法适时更新到控制文件中,再次启动数据库后,当oracle检测控制文件和其它文件信息是否一致时,就出现了这个错误。这是网上资料

该错误一般出现的原因:数据库服务器掉电等导致数据库异常中断。原因很简单:根据oracle db运行原理,数据库在运行期间,由于检查点发生等原因会不断的更新控制文件,同时数据库在关闭和重启过程中都会更新控制文件的内容,但是数据库服务器突 然的掉电,会导致当前的db信息无法适时更新到控制文件中,再次启动数据库后,当oracle检测控制文件和其它文件信息是否一致时,就出现了这个错误。原文地址:http://blog.csdn.net/whhitgen/article/details/7688475

这里的说的太玄乎,找到个简单的  直接用CONTROL03.CTL 把CONTROL01.CTL  CONTROL02.CTL 给替换了,不知道有啥影响。

再敲命令

SQL> startup;

ORACLE 例程已经启动。

Total System Global Area  532676608 bytes

Fixed Size                  1249968 bytes

Variable Size             209718608 bytes

Database Buffers          314572800 bytes

Redo Buffers                7135232 bytes

数据库装载完毕。

ORA-00322: 日志 1 (用于线程 1) 不是当前副本

ORA-00312: 联机日志 1 线程 1:

'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG'

痛哭流涕啊,数据库终于装载上了。。。

接着在看下面的错误  继续百度http://blog.csdn.net/csucxcc/article/details/3141452 

照着前辈的方法继续敲命令

SQL> shutdown immediate;

ORA-01109: 数据库未打开

已经卸载数据库。

ORACLE 例程已经关闭。

SQL> startup mount;

ORACLE 例程已经启动。

Total System Global Area  532676608 bytes

Fixed Size                  1249968 bytes

Variable Size             209718608 bytes

Database Buffers          314572800 bytes

Redo Buffers                7135232 bytes

数据库装载完毕。

SQL> alter database clear logfile'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.L

OG';

数据库已更改。

SQL> alter database open;

alter database open

*

第 1 行出现错误:

ORA-00322: 日志 3 (用于线程 1) 不是当前副本

ORA-00312: 联机日志 3 线程 1:

'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG'

SQL> alter database clear logfile'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.L

OG';

数据库已更改。

SQL> alter database open;

数据库已更改。

SQL> select status from v$instance;

STATUS

------------

OPEN

 

苍天啊,做菜鸟真要命啊,终于恢复正常了,到最后发现就是控制文件版本不一致的问题,前面的工作都是白瞎,但不知道我那直接拷贝替换控制文件来统一版本的方法会不会有别的问题

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息