Welcome 微信登录

首页 / 数据库 / MySQL / Oracle控制文件的一点研究

控制文件是非常重要的文件,实例读取控制文件才能到mount状态。DBA的一个原则就是多路控制文件,今天我就做了个实验,学习了一下这个。代码如下:
  1. alter system set control_files="D:appwingsoradata estdbCONTROL03.CTL","D:appwingsoradata estdbCONTROL04.CTL" scope=spfile;  
--查看一下 select value from v$spparameter where name = "control_files";   这个时候就会看到两条数据了。然后正常的关掉数据库:shutdown immediate;  之后复制一份控制文件,改成上面的名字。启动数据库,再查看控制文件:sho parameter control_files;  这时看到的就是两个控制文件了。刚才犯了一个很白痴的错误,不妨写出来,www.linuxidc.com让大家也笑一个。step1alter system set control_files="D:appwingsoradata estdbCONTROL04.CTL" scope=spfile;  这样就更改了系统,启动的话会以04这个文件启动。之后我关掉了数据库,复制了03这个文件,命名为04,启动数据库一切正常。之后我很2的做了下一步:step 2
  1. alter system set control_files="D:appwingsoradata estdbCONTROL03.CTL","D:appwingsoradata estdbCONTROL04.CTL" scope=spfile;  
之后重启数据库,很不幸的报错了:ora-01219。也没有任何说明,后来百度了一下,这个错误说的是我只能查特定的视图和表。在EM上看了一下,我的数据库处于nomount,也就是说我的控制文件在加载的时候出了问题。处理方案也很简单:alter system set control_files="D:appwingsoradata estdbCONTROL04.CTL" scope=spfile; 然后重启一下就可以了。当时我百思不得其解,为什么呢?后来,我做了这么一步,我又执行了一下step1,不过是把控制文件换成了03。重启,之后报错,提示我控制文件旧。这个时候我就顿悟了。我忽略了很重要的一点,那就是控制文件在数据库启动之后在不停的被更新着,03这个文件在几分钟没有被加载的时间里已经旧了。希望大家不要犯我这个低级错误。关于Oracle的启动SQL语句的执行过程相关资讯      Oracle基础教程 
  • Oracle块编程返回结果集详解  (11/10/2013 10:45:58)
  • Oracle基础教程之设置系统全局区  (08/22/2013 14:24:00)
  • Oracle基础教程知识点总结  (06/18/2013 07:43:32)
  • Oracle基础教程之tkprof程序详解  (10/22/2013 11:49:50)
  • Oracle基础教程之sqlplus汉字乱码  (07/18/2013 16:30:00)
  • Oracle 管理之 Linux 网络基础  (02/16/2013 18:37:35)
本文评论 查看全部评论 (0)
表情: 姓名: 字数