控制文件

一、简介

控制文件是一个很小的二进制文件,用于记录数据库的物理结构的当前状态。一个控制文件只属于一个数据库。当数据库的物理结构改变的时候,Oracle会更新控制文件。用户不能编辑控制文件,控制文件的修改由Oracle完成,一旦控制文件损坏,数据库将会宕机。

二、内容

我们可以通过v$controlfile_record_section 视图查看控制文件里包含的内容。
SQL> select * from v$controlfile_record_section;
在数据库有物理结构变化时会记到备份控制文件,以包含新增的物理文件或者其它变更后物理文件的信息

此时可以查询的视图详见:
select name from v$fixed_table;
三. 备份与恢复
  1. 设置事件
    alter system set events'immediate trace name controlf level 10';
  2. 备份
    alter database backup controlfile to filename;
  3. RMAN
    RMAN> backup current controlfile;
  4. 转储
    • alter database backup controlfile to trace;
    • 使用如下SQL 查询对应的trace 文件:
      SELECT D.VALUE || '/' || LOWER(RTRIM(I.INSTANCE, CHR(0))) || '_ora_' || P.SPID || '.trc' TRACE_FILE_NAME
        FROM (SELECT P.SPID
                FROM V$MYSTAT M, V$SESSION S, V$PROCESS P
               WHERE M.STATISTIC# = 1
                 AND S.SID = M.SID
                 AND P.ADDR = S.PADDR) P,
             (SELECT T.INSTANCE
                FROM V$THREAD T, V$PARAMETER V
               WHERE V.NAME = 'thread'
                 AND (V.VALUE = 0 OR T.THREAD# = TO_NUMBER(V.VALUE))) I,
             (SELECT VALUE FROM V$PARAMETER WHERE NAME = 'user_dump_dest') D;
    • cat /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_1651.trc

四. 控制文件的重建

  1. db 启动到mount状态
  2. 创建控制文件
    CREATE CONTROLFILE REUSE DATABASE ORCL NORESETLOGS ARCHIVELOG
    LOGFILE
        GROUP 1 '/oradata/orcl/redo01.log',
        GROUP 2 '/oradata/orcl/redo02.log',
        GROUP 3 '/oradata/orcl/redo03.log'
    DATAFILE
        '/oradata/orcl/sysaux01.dbf',
        '/oradata/orcl/system01.dbf',
        '/oradata/orcl/undotbs01.dbf',
        '/oradata/orcl/users01.dbf'
    CHARACTER SET ZHS16GBK;
  3. 开启数据库
    使用resetlogs 打开的数据库,就需要对DB做一次备份。
    SQL>alter database open resetlogs;
    使用resetlogs命令的时候,SCN不会被重置,不过oracle会重置日志序列号,而且会重置联机重做日志内容,这样做是为了防止不完全恢复后日志序列会发生冲突(因为现有日志和数据文件间有了时间差)。
  4. 添加TEMP 表空间
    ALTER TABLESPACE TEMP ADD TEMPFILE '/oradata/orcl/temp01.dbf' size 100M;
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值