掌握Oracle数据库控制文件的重建
文章作者 100test 发表时间 2008:04:07 17:07:04
来源 100Test.Com百考试题网
Oracle数据库系统在运行一段时间后有许多的参数需要调整,其中某些参数可以在$ORACLE_HOME/dbs/initXXX.ora中调整,而有些参数则必须在    Oracle的控制文件中调整。如Oracle的缺省数据文件个数为30个,在系统需要扩表空间而数据文件个数不够时就需要进行调整。 
  第一种方法是将所有数据全倒出来,重建库,再将数据倒进出。(注释:此方法较繁琐。)
  第二种方法是仅仅重建控制文件,因为数据文件个数的限制参数存放在控制文件中。
  以下是一种较好的重建控制文件的方法:
  1. 备份数据库中的数据,以防不测。
  2. svrmgrl
  3. svrmgrl>connect internal
  4. svrmgrl>alter database backup controlfile to trace; 备份控制文件
  5. 在/home/oracle//admin/ora7/udump下可找到最新生成的TRACE文件,假设为ora_15269.trc,此文件就包含了当前控制文件的参数及生成语法。
  6. 提取ora_15269.trc中有关控制文件生成的语句另存为creatctl.sql.
  7. creatctl.sql的内容为:
| STARTUP NOMOUNT 
CREATE CONTROLFILE REUSE DATABASE "ORA7" NORESETLOGS NOARCHIVELOG 
    MAXLOGFILES 32 
    MAXLOGMEMBERS 2 
    MAXDATAFILES 50 
    MAXINSTANCES 8 
    MAXLOGHISTORY 800 
LOGFILE 
GROUP 1  /dev/vg00/roraredoa1   SIZE 500K, 
GROUP 2  /dev/vg00/roraredoa2   SIZE 500K, 
  GROUP 3  /dev/vg00/roraredoa3   SIZE 500K 
DATAFILE 
   /dev/vg00/rorasys , 
   /dev/vg00/rorarbs , 
   /dev/vg00/roratemp , 
   /dev/vg00/roratools , 
   /dev/vg00/rorauser  
; | 
  (8)可以根据自己的实际情况来编辑creatctl.sql中的参数,例如maxdatafiles、maxinstances等。
  (9)svrmgrl
  (10)svrmgrl>connect internal
  (11)svrmgrl>shutdown immediate
  (12)svrmgrl>@creatctl.sql
  (13) svrmgrl>alter database open;
  至此数据库已经按新的参数运行。