使用startup命令启动数据库时默认会加载动态初始化参数文件spfileSID来启动实例。自oracle11g开始默认都是优先使用spfileSID的尽量避免使用静态参数文件或默认的初始化参数文件。
startup命令的格式如下
startup [FORCE] [RESTRICT] [SPFILE=FILENAME]
[OPEN [RECOVER] [database]
|MOUNT
|NOMOUNT
]
一、以非加载的方式启动数据库时,这种启动方式只有在创建数据库或者是在重建控制文件时期间使用。指令为startup nomoun。使用该启动模式时只启动数据库实例并不打开数据库的任何文件,即连控制文件都不打开。该状态一般是在创建数据库时使用。此时oracle进行如下工作
1、分配SGA区,配置相关的内存缓存区和相关结构
2、启动所需的后台全部进程
3、打开报警文件alterSID.log和追踪文件trace
二、以加载方式启动数据库,这也是一种特殊的数据库状态。该状态在对数据库进行某些特殊的维护期间时使用,如对系统表空间进行恢复、修改数据文件名、移动数据文件等。启动指令为startup mount;
当用mount指令启动数据库时 oracle启动实例并打开控制文件此时oracle进行如下操作:
1、将数据库与已经启动的实例关联起来
2、利用初始化参数文件中的说明锁定并打开控制文件
3、读取控制文件并且获得数据文件和重做日志文件的名字和状态信息,但是并不检查这些文件是否存在
三、以open方式启动数据库,此时oracle启动数据库实例并且打开控制文件同时进行如下操作;
1、打开所有的联机数据文件
2、打开所有的联机重做日志文件
注:可以使用alter database指令修改数据的状态。可以从nomount状态到mount状态然后到open状态
当前为mount状态时 alter database open切换到open
当前为nomount状态时 alter database mount切换到mount
alter database read only修改数据库为只读状态防止用户进程修改数据库中的数据
alter database read write将数据库置为正常的状态