oracle的启动过程

发表于:2013-08-08来源:博客园作者:虫师点击数: 标签:oracle
Oracle 的启动需要经历四个状态,SHUTDOWN 、NOMOUNT 、MOUNT 、OPEN、

  Oracle 的启动需要经历四个状态,SHUTDOWN 、NOMOUNT 、MOUNT 、OPEN、

  SHUTDOWN状态

  第一状态没什么好解释的,oracle的所有文件都静静的躺在磁盘里,一切都还未开始,属于关机状态

  NOMOUNT状态

  Starting the instance (nomount)

  * Reading the initialization file from $ORACLE_HOME/dbs in the following order:

  -first spfileSID.ora

  -if not found then, spfile.ora

  -if not found then, initSID.ora

  Specifying the PFILE parameter with STARTUP overrides the default behavior.

  * Allocating the SGA

  * Starting the background processes

  * Opening the alertSID.log file and the trace files

  The database must be named with the DB_NAME parameter either in the initialization

  Parameter file or in the STARTUP command.

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

  * 读取环境变量下dbs目录下的参数文件(spfile/pfile)

  [ora10@localhost dbs]$ pwd

  /ora10/product/10.2.0/db_1/dbs

  [ora10@localhost dbs]$ ll

  -rw-r----- 1 ora10 dba 3584 07-19 22:07 spfilechongshi.ora

  -rw-r----- 1 ora10 dba 3584 07-23 22:00 spfile.ora

  -rw-r--r-- 1 ora10 dba 1106 07-19 21:47 initchongshi.ora

  查找参数文件的顺序如上面列表的,读取优先级

  spfilechongshi.ora > spfile.ora>initchongshi.ora

  如果三个文件都找不到的话,那么将启动失败。

  * 启动算法,分配内存

  * 启动后台进程

  * 开放alertSID.log文件和跟踪文件

复制代码

  [ora10@localhost dbs]$ sqlplus

  SQL*Plus: Release 10.2.0.1.0 - Production on Tue Jul 24 22:33:54 2012

  Copyright (c) 1982, 2005, Oracle. All rights reserved.

  Enter user-name: /as sysdba

  Connected to an idle instance.

  SQL> startup nomount;

  ORACLE instance started.

  Total System Global Area 205520896 bytes

  Fixed Size 1218532 bytes

  Variable Size 79693852 bytes

  Database Buffers 121634816 bytes

  Redo Buffers 2973696 bytes

复制代码

  现在就处在一个nomount状态。

  mount状态

  Mounting a database includes the following tasks:

  * Associating a database with a previously started instance

  * Locating and opening the control files specified in the parameter file

  * Reading the control files to obtain the names and status of the data files and online redo log files.However,no checks are performed to verify the existence of the data files and online redo log files at this time.

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

  * 把一个数据库和启动的实例关联起来

  * 在参数文件(spfile/pfile)中找到控制文件进行读取

  查看参数文件:

  [ora10@localhost dbs]$ strings spfileora10.ora | more

  ......

  *.control_files='/ora10/product/oradata/ora10/control01.ctl','/ora10/product/ora

  data/ora10/control02.ctl','/ora10/product/oradata/ora10/control03.ctl'

  .......

  控制文件:

  [ora10@localhost ~]$ cd /ora10/product/oradata/ora10/

  [ora10@localhost ora10]$ ll

  总计 954196

  -rw-r----- 1 ora10 dba 7061504 07-23 23:01 control01.ctl

  -rw-r----- 1 ora10 dba 7061504 07-23 23:01 control02.ctl

  -rw-r----- 1 ora10 dba 7061504 07-23 23:01 control03.ctl

  * 读取控制文件,获得的数据文件和联机重做日志文件,然而,在这个时候没有进行检查以验证存在的数据文件和联机重做日志文件

复制代码

  [ora10@localhost dbs]$ sqlplus

  SQL*Plus: Release 10.2.0.1.0 - Production on Tue Jul 24 23:02:28 2012

  Copyright (c) 1982, 2005, Oracle. All rights reserved.

  Enter user-name: /as sysdba

  Connected to an idle instance.

  SQL> startup mount;

  ORACLE instance started.

  Total System Global Area 205520896 bytes

  Fixed Size 1218532 bytes

  Variable Size 79693852 bytes

  Database Buffers 121634816 bytes

  Redo Buffers 2973696 bytes

  Database mounted.

复制代码

原文转自:http://www.cnblogs.com/fnng/archive/2012/07/24/2607482.html