Oracle数据库启动模式简介
使用startup命令启动Oracle数据库。Oracle数据库启动流程如下:
1、首先查找spfileSID文件,如果此文件存在,就使用此文件启动 Oracle实例 。
2、如果没有找到spfileSID文件,查找服务器默认的SPFILE文件。如果此文件存在,就使用此文件启动 Oracle实例 。
3、如果没有找到默认的SPFILE文件,查找initSID文件。如果此文件存在,就使用此文件启动 Oracle实例 。
4、如果没有找到 initSID 文件,则使用PFILE文件启动Oracle实例。
可以在startup命令中通过pfile参数指定初始化参数文件,来覆盖以上的优先级:
startup pfile = initwind.ora
startup命令参数如下:
startup [force] [restrict] [PFILE=PFILE文件名] [open [recover] [database] | mount | nomount]
startup nmount
非加载启动模式,Oracle在此模式下只启动实例,并不打开任何数据库中的文件。该模式在创建数据库或者重建控制文件场景下使用。
此模式启动流程:
(1)分配SGA。
(2)启动必须的后台进程。
(3)打开trace文件、alertSID.org文件。
startup mount
加载启动模式,Oracle在此模式下只启动实例,加载控制文件,但是不打开数据库,普通用户无法连接数据库。该模式在恢复表空间、修改数据文件名称、移动数据文件等场景下使用。
此模式启动流程:
(1)分配SGA。
(2)启动必须的后台进程。
(3)打开控制文件。
(4)获取数据文件和重做日志文件的名称和状态,但是不检查文件是否存在。
startup (open)
正常启动模式,Oracle在此模式下启动实例,打开控制文件,打开数据文件,普通用户可以连接数据库并进行操作。
此模式启动流程:
(1)分配SGA。
(2)启动必须的后台进程。
(3)打开控制文件。
(4)打开所有联机数据文件。
(5)打开所有联机重做日志文件。
当任何数据文件或者联机重做日志文件不存在时,Oracle将返回错误信息。
startup restrict
约束方式启动,Oracle在此模式下正常打开数据库,但只允许具有一定特权的用户访问.
非特权用户访问时,会出现以下提示:
ERROR:
ORA-01035: ORACLE 只允许具有 RESTRICTED SESSION 权限的用户使用
使用ALTER DATABASE转换数据库模式
可以使用此命令将Oralce模式从NMOUNT改为MOUNT,从MOUNT改为OPEN,
从READ WRITE改READ ONLY,从READ ONLY改为READ WRITE。
ALTER DATABASE MOUNT;
ALTER DATABASE OPEN;
ALTER DATABASE READ ONLY;
ALTER DATABASE READ WIRTE;