oracle 数据库启动原理

本文详细解读了Oracle数据库启动的四个关键阶段:关闭状态、非安装启动(startup nomount)、装载数据库(mount)和打开数据库(open)。每个阶段涉及的操作和用途,包括实例启动、控制文件处理和数据库访问权限的逐步开放。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Oracle 数据库启动原理

Oracle数据库的启动要经历四个阶段:关闭状态、启动实例、装载数据库(Mount the db) 、打开数据库。

  

1、      数据库处于shutdown 状态

数据库处于SHUTDOWN状态,在此种状态,数据库处于停止状态。不能接受外界数据请求。使用操作系统命令ps –ef | grep ora看不到任何数据库进程的存在。

2、      启动实例 startup nomount  非安装启动

当启动一个实例时,Oracle会读取一个参数文件,这个文件可以是初始化参数文件(Initialization Parameter File,PFILE),也可以是服务器端参数文件(Server Parameter Files,SPFILE),分配相应大小的一片内存区域叫系统全局区(System Global Area,SGA),然后启动一系列的后台进程(DBWR 数据库写入程序,LGWR 日志写入程序,CKPT 检查点进程,SMON 系统监控系统,PMON 进程监控系统,ARCH 归档进程等),这些内存和进程合起来组成实例。实例是用来驱动数据库的,在RAC(Real Application Cluster,集群)环境中,多个实例可以同时驱动一个数据库。实例启动完成以后,数据库就处于NOMOUNT状态。在实例启动完成以后,数据库还没有和实例关联。这时候,数据库不可访问。这个阶段主要用于数据库的维护(重建控制文件、重建数据库)

3、startupmount dbname 安装启动 装载数据库

在这个阶段,Oracle根据参数文件(Pfile或Spfile)中的参数(CONTROL_FILES)找到控制文件(Control File),然后,打开控制文件。打开控制文件。

从控制文件中获得数据文件和联机日志文件(Redo LogFile)的名字及位置。这个时候,Oracle已经把实例和数据库联系起来。对于普通用户来说,数据库还是不可访问。这个阶段也主要用于数据库的维护,可执行:  数据库日志归档、数据库介质恢复、使数据文件联机或脱机、重新定位数据文件、重做日志文件。执行“nomount”,然后打开控制文件,确认数据文件和联机日志文件的位置,但此时不对数据文件和日志文件进行校验检查。

4、startupopen dbname 打开数据库

当打开数据库的时候,Oracle打开数据库文件*(DataFiles)和联机日志文件(RedoLog File)。

ps:startup,等于以下三个命令

         startup nomount

         alter database mount

         alter database open

startup 各参数

1、startupopen read only只读模式

 在此模式下,数据文件和联机日志文件都禁止写操作,整个数据库是只读的,但允许执行数据库恢复及其他不会产生回滚的操作

2、startupopen recover 恢复模式

如果知道数据库需要介质恢复(Media Recovery),则可以启动实例,装载数据库,启动恢复进程(Recovery Process),执行数据库的介质恢复。所有的这些操作只需在启动数据库时指定数据库的启动选项便可自动完成。

3、startuprestrict 限制模式约束方式启动

用来执行数据导入、导出;执行数据装载;阻止某些用户访问数据;执行某些升级和 迁移操作。

这种方式能够启动数据库,但只允许拥有DBA角色的用户,或者拥有RESTRICTED SESSION权限的用户可以登陆数据库访问

非特权用户访问时,会出现以下提示:

ERROR:ORA-01035:Oracle只允许具有 RESTRICTED SESSION 权限的用户使用

(oracle10g)数据库处于RESTRICTED SESSION状态,则禁止用户采用远程服务方式登陆,而必须在服务器上直接登录

4、startupforce强制Oracle数据库启动方式

当不能关闭数据库时,可以用startup force来完成数据库的关闭再启动过程。

5、startuppfile=参数文件名

带初始化参数文件的启动方式

先读取参数文件,再按参数文件中的设置启动数据库

例:$sqlplus

      startup pfile=E:Oracleadminoradbpfileinit.ora

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哦里 哦里哦里给

你的鼓支持是我分享的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值