Oracle体系结构初探:数据库启动与停止

往期内容

参数管理

控制文件添加


启动

在启动Oracle数据库时,我们一般会使用如下命令:

startup

虽然命令只有一个,但其中却是经历了3个阶段,从下面执行 startup 命令返回也可以看出来。

总结为3个阶段:

  1. nomount(未挂载)
  2. mount(已挂载)
  3. open(打开)

过程如下图所示:下面是对每个阶段的说明:

nomount

可以用如下命令,进入到 nomount 状态 

startup nomount

nomount阶段加载了spfile参数文件中的相关信息,但此时还未读取控制文件中的信息。此时已经在内存中生成了数据库实例,但是还没有加载数据库(文件存储结构)

 mount

可以用如下命令,从 nomount 切换到 mount 状态。

alter database mount

mount阶段加载了控制文件中的相关信息,并且将相关的数据库信息(文件存储结构)挂载。且为下一阶段open做准备。此时是可以查询到数据库文件和redo等相关信息,但无法查询数据文件中的具体数据。

open

可以用如下命令,从 mount 状态 切换到 open状态

alter database open

open阶段,Oracle服务验证是否可以打开所有的数据文件和redo日志文件,检查数据库的一致性。检查无误后打开所有文件,此时数据库可以正常为业务系统所用。

关闭

Oracle有几种不同的关闭选项,下面分别和大家分享。

一致性关闭

shutdown immediate   

shutdown immediate

                                                                                                                                                                    

立即关闭

这是最常用的关闭命令。

此时Oracle会抛弃尚未完成的SQL语句;

且Oracle不等待当前连接到数据库服务器的用户先断开,直接断开连接;

且Oracle实例关闭前,Oracle服务器会关闭并 unmount 数据库;

且下次启动时,不需要进行实例恢复。

shutdown transactional                                                                                                                                                                     

shutdown transactional

以保证事务的方式关闭数据库

此关闭命令,可以防止客户端丢失数据,包括其当前活动会话的结果。

此时,没有客户端可以在此实例上启动新事务;

此时,当客户端结束正在进行的事务后,客户端连接将断开;

在完成所有的事务后,将立即关闭;

且下次启动时,不需要进行实例恢复。         

shutdown normal

shutdown normal

正常关闭模式

此时,无法建立新的连接;

且Oracle在关闭之前会等待所有用户断开连接;

且db_buffer_cache 和 redo_log_buffer 中的数据被写入磁盘;

且后台进程终止后,会从内存中删除sga;

且Oracle实例关闭前,Oracle服务器会关闭并 unmount 数据库;

且下次启动时,不需要进行实例恢复。

shutdown

shutdown

未指定任何模式

此时 shutdown 和 shutdown normal 一样,normal是默认的关机模式

非一致性关闭

shutdown abort

shutdown abort

如果在normal、transactional、immediate模式下关闭都不起作用的时候(控制文件损坏丢失等故障发生时就无法进行一致性关闭),可以强制关闭当前数据库实例。

如果使用shutdown abort

Oracle服务器正在处理的当前SQL立即终止;

且Oracle服务器不等待当前连接到数据库的用户自己断开,直接断开连接;

且db_buffer_cache 和 redo_log_buffer 中的数据未写入磁盘;

且未提交的事务不会发生回滚;

且该实例将终止而不会关闭文件;

下次启动时需要进行实例恢复,此恢复会由Oracle自动进行。

应急启动

当参数文件丢失后,数据库实例都无法启动到nomount状态,任何操作都做不了。

此时可以进行应急启动

startup force nomount

上面就相当于使用pfile启动实例至nomount

startup nomount pfile='/u01/app/oracle/product/19c/db_1/dbs/initorcl.ora'
  • 19
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

姜豆豆耶

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值