1、oracle 启动的三个阶段三个阶段:1. 启动到 nomount 状态,这个阶段数据库读取 spfile/pfile 文件中的参数,启动数据库实例。1-1 读取初始化参数文件.注意读取顺序.主要是指定控制文件及数据库实例名1-2 分配系统全局区1-3 启动后台进程1-4 打开 alertSID.log 文件和跟踪文件补充说明:在 nomount 阶段,oracle 会查找参数文件,启动实例,参数文件的查找顺序为 spfile.ora,init.ora,init.ora 如果以上三个文件均查找不到oracle 在此时就会报错,同时在此阶段 oracle 会查找 alter 文件,如果没有找到
2、alter 文件会自动创建;启动相应的后台进程至少包括五个pmon,DBWn,ckpt,smon,LGWn。总之,这个阶段主要就是启动一个实例,并为加载数据库确定必要的参数。2. 启动到 mount 状态,这个阶段数据库打开控制文件,验证控制文件。2.装载数据库 -startup mount,读控制文件 等2-1 将数据库与一个已打开的实例相关联2-2 打开控制文件2-3 获取数据文件和重做日志文件的名称和状态 .补充说明:在 mount 阶段,oracle 会打开控制文件,加载数据库,此时数据库的基本结构信息都能够查询了,但是还不能查询用户表的内容。3. 启动到 open 状态,这个阶段数据
3、库打开控制文件里描述的文件。3.打开数据库 -database open3-1 打开数据文件3-2 打开联机重做日志文件.补充说明:在 open 阶段,就是打开数据库,在这个阶段 SMON 会对数据文件的检查点进行一致性检查,不一致时 smon 会介入进行恢复。Oracle 中数据库实例和数据库是独立实体,可以独立存在。因此启动过程分成多个阶段:首先在内存中构建实例,然后通过安装数据库启用到数据库的连接,最后打开数据库来使用它。Oracle 数据库有四种状态:SHUTDOWN:所有数据库文件都关闭,不存在实例NOMOUNT:实例在内存中创建(SGA 已经被创建,根据参数文件指定启动某些后台进程
4、),但没有连接到任何数据库。MOUNT:实例定位并读取数据库控制文件。OPEN:所有的数据库文件都被定位和打开,终端用户可以使用数据库。数据库的启动可分为三个阶段:1、nomount:在这一阶段,只需要读取 initSID.ora 文件,启动数据库实例,创建后台进程。在 initSID.ora 文件中,可以定位 SPFILEORAC.ora 文件,这是参数文件,通过它可以初始化 SGA 和启动后台进程。并可以定位控制文件位置。在此阶段,可以执行的操作有:重建控制文件,重建数据库。2、mount:在 nomount 阶段,可以通过读取控制文件来转换到 mount 阶段。在数据库加载阶段(mount),所有的数据文件和联机日志文件的名称和位置都从控制文件中读取,但是并没有真正查找这些文件。在此阶段,可以执行的操作有:数据库日志归档、数据库介质恢复、使数据文件联机或脱机、重定位数据文件和联机日志文件。3、open:通过查找定位并打开数据文件和联机日志文件来切换到 open 阶段。此时数据库可用,可以建立会话。startup 命令等同于:startup nomountalter database mountalter database open。