您好,欢迎访问一九零五行业门户网

Oracle存储结构之控制文件

控制文件是个相当小的二进制文件,最多能增长到64m左右。参数文件告诉实例控制文件的位置。而控制文件告诉实例:数据库名,数据文
其实,蛮蛋疼的,体系结构要想深入的理解,还需要配合后续的备份与恢复的实验和原理。但不管啦,先稍微了解一下。
控制文件是个相当小的二进制文件,最多能增长到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; 
   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下去找
其它类似信息

推荐信息