zoukankan      html  css  js  c++  java
  • 存储结构之控制文件 . 天高地厚

    体系结构要想深入的理解,还需要配合后续的备份与恢复的实验和原理。但不管啦,先稍微了解一下。
     
      控制文件是个相当小的二进制文件,最多能增长到64m左右。
     
      参数文件告诉实例控制文件的位置。而控制文件告诉实例:数据库名,数据文件的名称及其位置,在线重做日志文件的名称及其位置,以及系统和各个数据文件的SCN信息。

      我们的oracle内部的几个人,都比较喜欢往ctl上面写东东,比如:
      server process会把数据库结构的变化更新到control file
      LGWR会把当前日志序列号记录到control file
      CKPT会把检查点信息记录到control file
      ARCn会把归档日志信息记录到control file
     
      有了以上的信息,因此,在mount阶段,SMON会去读控制文件,确认它上面的记录是否正确:
       1)上次关机的SCN             A
          上次关机的checkpoint      B
       2)日志组最后一条的记录       C
          RBA指针的位置             D
       若正常关机,则 A=B C=D
       若不正常关机,则 A>B  D>C
       这时,就需要派SMON去前滚,按重做日志的记录在内存中重做一遍,直到C=D。

      以下是我的控制文件的部分摘录:
      平台是:RHEL-5.8 ora10g
       *** SERVICE NAME:() 2012-07-10 10:09:23.691
       *** SESSION ID:(159.3) 2012-07-10 10:09:23.691
       Thread 1 checkpoint: logseq 17, block 2, scn 676899
         cache-low rba: logseq 17, block 40599
           on-disk rba: logseq 17, block 40868, scn 697180
         start recovery at logseq 17, block 40599, scn 0

      我们对控制文件的一些常见操作,比如:
      1)如何多路镜像控制文件?
      正常关机,cp一份,修改pfile,生成spfile,重启数据库

      2)查看控制文件的位置?
      i  SQL> show parameter control_files

        NAME                                 TYPE        VALUE
        ------------------------------------ ----------- ------------------------------
        control_files                        string      /u01/app/oracle/oradata/ORCL/c
                                                     ontrolfile/o1_mf_7xzsjpnk_.ctl
                                                     , /u01/app/oracle/flash_recove
                                                     ry_area/ORCL/controlfile/o1_mf
                                                     _7xzsjq6j_.ctl
      ii  SQL> select name from  v$controlfile;

        NAME
       --------------------------------------------------------------------------------
       /u01/app/oracle/oradata/ORCL/controlfile/o1_mf_7xzsjpnk_.ctl
       /u01/app/oracle/flash_recovery_area/ORCL/controlfile/o1_mf_7xzsjq6j_.ctl

      iii SQL> select value from v$parameter where name='control_files'; 

       VALUE
       --------------------------------------------------------------------------------
       /u01/app/oracle/oradata/ORCL/controlfile/o1_mf_7xzsjpnk_.ctl, /u01/app/oracle/fl
       ash_recovery_area/ORCL/controlfile/o1_mf_7xzsjq6j_.ctl
     

      3)查看控制文件的内容?
      alter database backup controlfile to trace;
      然后到udump下去找

  • 相关阅读:
    庄家试盘的K线形态
    股票基本知识入门提纲
    我与猫
    夜雨不眠时
    快速排序
    由float转std::string的方法
    BugFree + EasyPHP在Windows平台搭建步骤详解
    安装VS2008的时候Windows Mobile 5.0 SDK R2 for pocket pc错误解决方案
    收集WCF文章
    linq to ef(相当于sql中in的用法)查询语句
  • 原文地址:https://www.cnblogs.com/net2012/p/2886376.html
Copyright © 2011-2022 走看看