ITPub博客

首页 > Linux操作系统 > Linux操作系统 > oracle-startup过程

oracle-startup过程

原创 Linux操作系统 作者:duzhenhao1988 时间:2011-06-16 10:21:17 0 删除 编辑

1.NOMOUNT

---------------------------

这一步只和参数文件有关,如果在这一步就出现问题,那么通常可能是系统配置(如内核参数等)存在问题,需要检查是否分配了足够的系统资源。

              ---------------------------------------------------------------------------------------------------------------------------

       2.MOUNT

--------------------------

              这一步需要从参数文件中获得控制文件位置,读取其中内容,校验数据文件的存在性。

除此之外还会去校验口令文件。Oracle缺省查找orapw文件,如果该文件找不到,则继续查找orapw文件,如果两者都不存在,数据库将出现错误。但数据为仍可以打开。从Oracle10g开始,当口令文件丢失后,Oracle将不再提示错误,只是和口令文件相关的部分功能将无法使用。

              ----------------------------------------------------------------------------------------------------------------------------

              lk文件及作用

              ---------------------------------------

该文件在数据库启动时创建,用于操作系统对数据库的锁定。当数据库启动时获得锁定,数据库关闭时释放。在系统出现异常时,可能数据库已经关闭,但锁定并未释放,或者因为后台进程未正常停止等原因,会导致下次数据库无法启动。解决办法就是重启服务器,或者手工释放共享内存段。                    

                     -----------------------------------------------------------------------------------------------------------------------

       3.OPEN

--------------------

这一步将进行检查点和完整性的检查。如果检查全部通过,则打开数据库,否则给出错误警告,停止打开数据库。

              --------------------------------------------------------------------------------------------------------------------------

              数据库的启动验证:

              ------------------------

1.       第一次检查数据文件头中的Checkpoint CNT是否与对应控制文件中的Checkpoint CNT一致。此步骤检查用以确认数据文件是否来自同一版本,而不是从备份中恢复而来

(在热备份模式下,数据文件检查点被冻结,但检查点计数不会被冻结,会一直修改)

Oracle10g中用8级转储获得控制文件信息。

SQL> alter session set events 'immediate trace name controlf level 8';

Oracle9i中用10级转储。

           ----------------------------------------------------------------------------------------------------------------------------

2.       第二次检查数据文件头的开始SCN控制文件中记录的该文件的的结束SCN是否一致。如果一致,则不需要对那个文件进行恢复。

 

部分控制文件转储内容:

222 DATA FILE RECORDS

223 ***************************************************************************

224  (size = 428, compat size = 428, section max = 100, section in-use = 5,

225   last-recid= 8, old-recno = 0, last-recno = 0)

226  (extent = 1, blkno = 11, numrecs = 100)

227 DATA FILE #1:

228   (name #7) /u01/app/oracle/oradata/orcl/system01.dbf

229 creation size=0 block size=8192 status=0xe head=7 tail=7 dup=1

230  tablespace 0, index=1 krfil=1 prev_file=0

231  unrecoverable scn: 0x0000.00000000 01/01/1988 00:00:00

232  Checkpoint cnt:52 scn: 0x0000.0007ba16 02/18/2011 16:30:22

233  Stop scn: 0xffff.ffffffff 02/16/2011 11:07:26

234  Creation Checkpointed at scn:  0x0000.00000009 06/30/2005 19:10:11

235  thread:0 rba:(0x0.0.0)

236  enabled  threads:  00000000 00000000 00000000 00000000 00000000 00000000

              ----------------------------------------------------------------------------------------------------------------------------

在数据库出现问题时,提示中给出的可能是不完整的信息,而告警日志中则记录了完整的错误过程和错误号。

说明:

控制文件中记录的SCN指最后一次成功完成的检查点SCN

数据文件头中的记录的SCN指数据文件最后一次成功完成的检查点SCN

              此外,在控制文件和数据文件头都记录一个检查点计数(chkpt cnt),而且数据文件头还记录了一个             控制文件检查点计数(ctl cnt)。但这个ctl cnt要比控制文件中的ctl cnt1。这是因为,当检查

              点更新控制文件和数据文件头上的chkpt cnt信息时,在更新控制文件之前,可以获得当前的ctl cnt

              ,这个信息被记入了数据文件。之所以这么做,是因为不能保证更新控制文件上的chkpt cnt一定              会成功,记录之前的ctl cnt可以确保上一次的chkpt cnt是成功完成的。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25069245/viewspace-699991/,如需转载,请注明出处,否则将追究法律责任。

上一篇: oracle10g PGA
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2011-06-14

  • 博文量
    4
  • 访问量
    6325