码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2019-02-11 00:55:45      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:dia   system   rac   情况   redo   shutdown   错误   .com   覆盖   

今天学习oracle添加控制文件,控制文件是一个二进制文件,记录了物理数据库的当前状态,每一个数据文件只属于一个数据库,为了防止文件损坏丢失等情况,一个数据库不止一个控制文件。一个数据库的控制文件中的内容完全一样。

利用数据字典v$controlfile查询数据文件的位置、名字:

select name from v$controlfile;

结果:

NAME
--------------------------------------------------------------------------------
H:\APP\ORACLEADMIN\ORADATA\MLDN\CONTROL01.CTL
H:\APP\ORACLEADMIN\ORADATA\MLDN\CONTROL02.CTL

数据库有两个控制文件,放在相同的文件夹下。

接下来在另一个文件夹添加新的控制文件。

此时犯了一个错误,将控制文件复制出来,改名contro03.ctl,放在了新的文件夹。

修改SPFILE,指定控制文件的位置和名称,

 alter system set control_files=
H:\APP\ORACLEADMIN\ORADATA\MLDN\CONTROL01.CTL,
H:\APP\ORACLEADMIN\ORADATA\MLDN\CONTROL02.CTL,
H:\oracle\backup\CONTROL03.CTL SCOPE=SPFILE;

关闭数据库

SHUTDOWN IMMEDIATE

重启数据库

STARTUP

这个时候就会报错了:

Total System Global Area 2550136832 bytes
Fixed Size                  8922136 bytes
Variable Size             838863848 bytes
Database Buffers         1694498816 bytes
Redo Buffers                7852032 bytes
ORA-00214: ???? ‘‘H:\APP\ORACLEADMIN\ORADATA\MLDN\CONTROL01.CTL‘‘ ?? 18735 ???
‘‘H:\ORACLE\BACKUP\CONTROL03.CTL‘‘ ?? 18718 ???

ora-00214错误,控制文件版本不一致。

错误的原因是,在数据库打开状态下,oracle服务器会随时修改控制文件中的内容。

在之前的操作中是先复制的控制文件,后关闭数据库,导致复制出来的control03与contorl02、control01的内容不一样,

此时,复制control01覆盖掉其他控制文件,关闭数据库并重启。

这次就能成功打开数据库了:

技术图片

正确的添加控制文件顺序

1 )查找控制文件位置和名称

2)修改SPFILE,设置新的控制文件位置和名称

3)关闭数据库

4)复制控制文件到指定位置

5)重启数据库

现在验证一下,再查找一遍数据库控制文件

select name from v$controlfile;

得到:

技术图片

可以看出增加了控制文件control03.ctl,与设置的一致。

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

标签:dia   system   rac   情况   redo   shutdown   错误   .com   覆盖   

原文地址:https://www.cnblogs.com/winterbear/p/10360640.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!