Oracle数据库启动、关闭详解

目录

数据库启动过程

数据库关闭过程

介绍

Oracle数据库的完整启动过程是分步骤完成的: 启动实例–>加载数据库–>打开数据库

启动过程中不同的阶段可以对数据库进行不同的维护操作,可以用不同的模式启动数据库。

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

2、Oracle关闭的四种方式:Normal, Immediate, Transactional, Abort


数据库启动过程

一、NoMount 模式(启动实例不加载数据库)

命令:startup nomount

讲解:这种启动模式只会创建实例,并不加载数据库,Oracle仅为实例创建各种内存结构和服务进程, 不会打开任何数据文件。在NoMount模式下,只能访问那些与SGA区相关的数据字典视图, 包括VPARAMETER、VSGA、VPROCESS和VSESSION等, 这些视图中的信息都是从SGA区中获取的,与数据库无关。

-- 模式用途:创建新数据库、重建控制文件

二、Mount模式(加载数据库但不打开数据库)

命令:startup mount

讲解:这种启动模式将为实例加载数据库,但保持数据库为关闭状态。 因为加载数据库时需要打开数据库控制文件, 但数据文件和重做日志文件都都无法进行读写,所以用户还无法对数据库进行操作。 在Mount模式下,只能访问那些与控制文件相关的数据字典视图, 包括VTHREAD、VCONTROLFILE、VDATABASE、VDATAFILE 和 V$LOGFILE等, 这些视图都是从控制文件中获取的。

-- 模式用途:重命名数据文件、添加、删除或重命名重做日志文件 

-- 执行数据库完全恢复操作、改变数据库的归档模式;

三、Open模式(正常打开数据库)

命令:startup [open]

讲解:正常按3个步骤启动数据库。

-- 模式用途:平时不对数据库做什么维护,像只做应用开发,用这个模式就好了;

四、强制启动模式

命令:startup force

-- 用途&讲解:在某些情况下,使用前面的各种模式都无法成功启动数据库时 

-- 可以尝试强制启动模式。

五、其他 使用Alter Database语句,还可以在各启动模式间切换。并且还可以对数据库设置不同的状态用于不同的操作,如受/非受限抽状态、只读。

数据库关闭过程

一、Nomal(正常关闭方式)

命令:shutdown nomal

讲解:正常方式关闭数据时,Oracle执行如下操作:

①、阻止任何用户建立新的连接。

②、等待当前所有正在连接的用户主动断开连接 (此方式下Oracle不会立即断掉当前用户的连接,这些用户仍然操作相关的操作)。

③、一旦所有的用户都断开连接,则立即关闭、卸载数据库,并终止实例。 (所以,一般以正常方式关闭数据库时,应该通知所有在线的用户尽快断开连接)

二、Immediate(立即关闭方式)

命令:shutdown immediate

讲解:Oracle执行如下操作:

①、阻止任何用户建立新的连接,同时阻止当前连接的用户开始任何新的事务。

②、Oracle不等待在线用户主动断开连接,强制终止用户的当前事务,将任何未提交的事务回退。(如果存在太多未提交的事务,此方式将会耗费很长时间终止和回退事务)

③、直接关闭、卸载数据库,并终止实例。

三、Transactional(事务关闭方式)

命令:shutdown transactional

讲解:这种方式介于正常关闭方式跟立即关闭方式之间,响应时间会比较快, 处理也将比较得当。执行过程如下:

①、阻止任何用户建立新的连接,同时阻止当前连接的用户开始任何新的事务。

②、等待所有未提交的活动事务提交完毕,然后立即断开用户的连接。

③、直接关闭、卸载数据库,并终止实例。

四、Abort(终止关闭方式)

命令:shutdown abort

讲解:这是比较粗暴的一种关闭方式,当前面3种方式都无法关闭时,可以尝试使用终止方式来关闭数据库。 但是以这种方式关闭数据库将会丢失一部份数据信息,当重新启动实例并打开数据库时, 后台进程SMON会执行实例恢复操作。一般情况下,应当尽量避免使用这种方式来关闭数据库。 执行过程如下:

①、阻止任何用户建立新的连接,同时阻止当前连接的用户开始任何新的事务。

②、立即终止当前正在执行的SQL语句。

③、任何未提交的事务均不被退名。

④、直接断开所有用户的连接,关闭、卸载数据库,并终止实例。

--转载https://www.modb.pro/db/653461

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值