始创于2000年 股票代码:831685
咨询热线:0371-60135900 注册有礼 登录
  • 挂牌上市企业
  • 60秒人工响应
  • 99.99%连通率
  • 7*24h人工
  • 故障100倍补偿
您的位置: 网站首页 > 帮助中心>文章内容

Oracle控制文件的一点研究

发布时间:  2012/8/30 16:54:24

-
 
控制文件是非常重要的文件,实例读取控制文件才能到mount状态。DBA的一个原则就是多路控制文件,今天我就做了个实验,学习了一下这个。

代码如下:

1.alter system set control_files='D:\app\wings\oradata\testdb\CONTROL03.CTL','D:\app\wings\oradata\testdb\CONTROL04.CTL' scope=spfile; 
--查看一下

select value from v$spparameter where name = 'control_files';  

这个时候就会看到两条数据了。

然后正常的关掉数据库:

shutdown immediate; 

之后复制一份控制文件,改成上面的名字。启动数据库,再查看控制文件:

sho parameter control_files; 

这时看到的就是两个控制文件了。

刚才犯了一个很白痴的错误,不妨写出来,www.linuxidc.com让大家也笑一个。

step1

alter system set control_files='D:\app\wings\oradata\testdb\CONTROL04.CTL' scope=spfile; 

这样就更改了系统,启动的话会以04这个文件启动。

之后我关掉了数据库,复制了03这个文件,命名为04,启动数据库一切正常。之后我很2的做了下一步:

step 2

1.alter system set control_files='D:\app\wings\oradata\testdb\CONTROL03.CTL','D:\app\wings\oradata\testdb\CONTROL04.CTL' scope=spfile; 
之后重启数据库,很不幸的报错了:ora-01219。也没有任何说明,后来百度了一下,这个错误说的是我只能查特定的视图和表。在EM上看了一下,我的数据库处于nomount,也就是说我的控制文件在加载的时候出了问题。处理方案也很简单:

alter system set control_files='D:\app\wings\oradata\testdb\CONTROL04.CTL' scope=spfile;

然后重启一下就可以了。

当时我百思不得其解,为什么呢?后来,我做了这么一步,我又执行了一下step1,不过是把控制文件换成了03。重启,之后报错,提示我控制文件旧。这个时候我就顿悟了。我忽略了很重要的一点,那就是控制文件在数据库启动之后在不停的被更新着,03这个文件在几分钟没有被加载的时间里已经旧了。希望大家不要犯我这个低级错误。


本文出自:亿恩科技【www.enkj.com】

服务器租用/服务器托管中国五强!虚拟主机域名注册顶级提供商!15年品质保障!--亿恩科技[ENKJ.COM]

  • 您可能在找
  • 亿恩北京公司:
  • 经营性ICP/ISP证:京B2-20150015
  • 亿恩郑州公司:
  • 经营性ICP/ISP/IDC证:豫B1.B2-20060070
  • 亿恩南昌公司:
  • 经营性ICP/ISP证:赣B2-20080012
  • 服务器/云主机 24小时售后服务电话:0371-60135900
  • 虚拟主机/智能建站 24小时售后服务电话:0371-60135900
  • 专注服务器托管17年
    扫扫关注-微信公众号
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 亿恩科技 版权所有  地址:郑州市高新区翠竹街1号总部企业基地亿恩大厦  法律顾问:河南亚太人律师事务所郝建锋、杜慧月律师   京公网安备41019702002023号
      0
     
     
     
     

    0371-60135900
    7*24小时客服服务热线