Decode360's Blog

业精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

  BlogJava :: 首页 :: 新随笔 :: 联系 ::  :: 管理 ::
  397 随笔 :: 33 文章 :: 29 评论 :: 0 Trackbacks
控制文件相关操作
 
    接着来介绍一下关于Controlfile的操作问题,这部分内容需要好好记住,因为控制文件损坏之后的影响是比较严重的,如果没有备份,最后只能手动修复,这样出错的可能性就会大大增加。好了,看一下相关操作。
 
 
一、CREATE CONTROLFILE错误
 
    1、检查文件差异
 
    创建新的控制文件之后会检查数据字典和控制文件之间的矛盾,以检查丢失或多余的文件。
 
    丢失:
        若数据字典中存在某数据文件,而控制文件中没有,则Oracle在控制文件中创建一个名为MISSINGnnn的占位符入口,表示作为脱机并需要介质恢复的标志。可以通过重命名MISSINGnnn来访问MISSINGnnn对应的真正数据文件,但该文件必须是只读或正常脱机的。
        又因为数据文件需要介质恢复,而RESETLOGS的结果排除了介质恢复的可能,所以当使用了RESETLOGS子句时,必须撤销包含数据文件的表空间。
 
    多余:
        当控制文件记录的数据文件不在数据字典中时,Oracle会从新的控制文件中删除对数据文件的引用。
 
    注:无论是丢失还是多余,都会在相应实例的alert.log文件中包含一条解释性消息。
 
    2、创建过程中的错误
 
    一般在创建新的控制文件后打开数据库,可能会返回一下错误类型:
    ORA-01173、ORA-01176、ORA-01177、ORA-01215、ORA-01216
 
    最大的可能是在在创建时有文件丢失或多余文件。
    此时应该找到备份的数据文件和联机重做日志文件,覆盖当前文件,并使用正确的CREATE CONTROLFILE语句重新创建。
 
 
二、备份控制文件
 
    1、备份控制文件为二进制文件
 
    ALTER DATABASE BACKUP CONTROLFILE TO '/oracle/backup/control.bkp';
 
    2、制作以后可以重新创建控制文件的SQL
 
    ALTER DATABASE BACKUP CONTROLFILE TO TRACE;
 
    3、可以使用RMAN对控制文件进行备份
 
 
三、恢复控制文件
 
    1、控制文件损坏
 
    ①关闭实例 ②将未损坏的控制文件副本覆盖已损坏文件 ③打开数据库
 
    2、磁盘损坏
 
    ①关闭实例 ②经未损坏控制文件副本复制到新磁盘空间 ③修改CONTROL_FILES参数 ④打开数据库
 
    也可以先修改CONTROL_FILES参数,然后恢复控制文件,再把
 
 
四、删除控制文件
 
    ① 关闭数据库
    修改CONTROL_FILES参数
    启动数据库
    在磁盘上删除相应CONTROLFILE文件
 
 
五、控制文件信息
 
    通过一下视图来查看控制文件信息:
 
    V$CONTROLFILE:控制文件名称
    V$CONTROLFILE_RECORD_SECTION:控制文件记录段信息
    V$PARAMETER:初始化参数CONTROL_FILES的值
 
 
 
posted on 2008-11-24 21:21 decode360 阅读(130) 评论(0)  编辑  收藏 所属分类: 08.DBA

只有注册用户登录后才能发表评论。


网站导航: