ORA-00214: control file 控制文件版本不一致

故障现象:
今日学习oracle控制文件移动和修改,发现本机安装oracle数据库启动时只使用了一个控制文件。
如下:SQL> select * from V$controlfile;

STATUS  NAME                 IS_ BLOCK_SIZE FILE_SIZE_BLKS
------- -------------------- --- ---------- --------------
        /opt/oracle/oradata/ NO       16384            450
        orcl/control02.ctl
1、决定将控制文件01和03加入进去,于是执行命令那个如下:

SQL> alter system set control_files = ‘/opt/oracle/oradata/orcl/control01.ctl‘,
  2  ‘/opt/oracle/oradata/orcl/control02.ctl‘,    
  3  ‘/opt/oracle/oradata/orcl/control03.ctl‘ SCOPE=SPFILE;

System altered.

2、关闭数据库 SQL> shutdown immediate;
3、再次启动数据库,数据无法启动,报错ORA-00214如下:
SQL> startup
ORACLE instance started.

Total System Global Area 1258291200 bytes
Fixed Size                  1219160 bytes
Variable Size             318768552 bytes
Database Buffers          922746880 bytes
Redo Buffers               15556608 bytes
ORA-00214: control file ‘/opt/oracle/oradata/orcl/control02.ctl‘ version 599
inconsistent with file ‘/opt/oracle/oradata/orcl/control01.ctl‘ version 541

故障分析

1、根据错误提示为控制文件版本不一致导致。控制文件原理为维护数据库的当前物理状态,为二进制的文件,数据库打开的时候控制文件一致变化。主要记录数据库名字、标示、当前日志SCN、表空间信息等。理论上3个控制文件应该一致。
2、因为版本不一致,且控制文件2版本最新为version 599.

故障解决

1、在操作系统上,备份所有控制文件,同时使用控制文件control02.ctl覆盖重命名control01.ctl、control03.ctl,保证版本一致。
2、操作后,数据库启动正常,可以使用,问题解决。

 

时间: 2024-10-27 19:42:30

ORA-00214: control file 控制文件版本不一致的相关文章

服务器异常断电,导致oracle控制文件版本不一致,报错ora-00214解决记录

控制文件介绍: 每一个oracle都至少会生成一个控制文件,一个数据库可以拥有多个控制文件,但是一个控制文件只能属于一个数据库. 控制文件内部除了存放数据库名及其创建日期,数据文件,日志文件等相关信息,在系统运行的过程中还会存放系统更改号,检查点信息及归档的当前状态等信息. 出于安全考虑,数据库会自动创建2到3个控制文件,每个控制文件记录相同的信息,这个可以确保在数据库运行时,某个控制文件损坏,oracle会自动使用另一个控制文件,当所有控制文件损坏时,数据库将无法工作. 注:通过 v$cont

Vs 引用第三方DLL文件 版本不一致问题 (npoi与memcached中的ICSharpCode.SharpZipLib版本冲突的解决方案)

最近在 做 MailChimp 与网站功能 集成时,发现 MailChimp 2API 中的 MailChimp.dll  中的依赖项 SerivceStack.Text.dll (版本为3.9.71.0)与我们WebSite 中的 ServiceStack.Text.dll (版本为4.0.0.0)的版本相冲突,当我们 写了  MailChimpManager mc = new MailChimpManager(ApiKey); 时 提示 无法加载 SerivceStack.Text.dll

git 解决相同文件版本不一致,提交失败

这里我写了关键的步骤.准备工作(克隆仓库,add,commit)等等就不列举了 目前本地仓库和远程仓库的README.md如下 远程仓库 本地仓库 在经过git push 和git pull后,git 会提示你手动合并冲突 输入指令 vi READMD.md,进入编辑界面 修改为最终版本.退出用“:wq” add,commit,push大功告成

Oracle 控制文件(CONTROLFILE)

--============================= -- Oracle 控制文件(CONTROLFILE) --============================= 一.Oracle 控制文件 为二进制文件,初始化大小由CREATE DATABASE指定,可以使用RMAN备份 记录了当前数据库的结构信息,同时也包含数据文件及日志文件的信息以及相关的状态,归档信息等等 在参数文件中描述其位置,个数等等.通常采用分散放开,多路复用的原则.在mount阶段被读取,open阶段一直被使

Oracle的控制文件

一.控制文件 oracle的控制文件是极其重要的文件,它是一个较小的二进制文件. 记录了当前数据库的结构信息,同时也包含数据文件及日志文件的信息以及相关的状态,归档信息等等  在参数文件中描述其位置,个数等等. 在mount阶段被读取,open阶段一直被使用 一个控制文件只能属于一个数据库 控制文件的任意修改将写入到初始化参数中指定的所有控制文件中,读取时则仅读取第一个控制文件 控制文件中包含的内容: 数据库的名字.ID.创建的时间戳 表空间的名字 联机日志文件.数据文件的位置.个数.名字 联机

oracle添加控制文件,ORA-00214: 错误

今天学习oracle添加控制文件,控制文件是一个二进制文件,记录了物理数据库的当前状态,每一个数据文件只属于一个数据库,为了防止文件损坏丢失等情况,一个数据库不止一个控制文件.一个数据库的控制文件中的内容完全一样. 利用数据字典v$controlfile查询数据文件的位置.名字: select name from v$controlfile; 结果: NAME --------------------------------------------------------------------

Control file 专题

control file 中包含以下内容: database name time stamp of database creation Synchronization information(checkpoint and log sequence information) needed for recovery Names and locations of datafiles and redo log files Archiving mode of the database Current lo

Oracle控制文件多路复用

一.控制文件多路复用 1.show parameter control --查看控制文件信息 show parameter spfile --查看是否有spfile create pfile from spfile; --生成pfile shutdown immediate --关库 2.修改pfile文件,添加多个路径 vi $ORACLE_HOME/dbs/initORCL.ora 将原有controlfile拷贝到新添加路径目录: cp -- 3.create spfile from pf

控制文件损坏,丢失其中一个

控制文件丢了一个,损坏了一个,还剩余一个,无法启动 startup nomount alter system set control_files=('') scope=spfile;指定到仍然存在的控制文件 show parameter control 查看控制文件参数是否修改成功 shutdown immediate startup mount