oracle中控制文件和数据字典的区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle中控制文件和数据字典的区别相关的知识,希望对你有一定的参考价值。
Oracle中的三种文件,控制文件中记录了一些系统的重要信息,比如说日志和数据文件的位置。
而数据字典中也记录了一些重要的信息。
oracle是怎样利用这些信息的,请分别说一说
我希望知道的是在Oracle的内部实现的原理,或者说是在一个dbms中的是怎么实现他们的,不要笼统的说
数据字典:顾名思义 主要是存放oracle各种系统信息的。它的作用就相当于一部字典,DBA要能熟练使用数据字典,了解oracle的状况,找出问题。
明白了吗?本回答被提问者采纳
oracle添加控制文件,ORA-00214: 错误
今天学习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中控制文件和数据字典的区别的主要内容,如果未能解决你的问题,请参考以下文章