oracle数据库的关闭过程

本文详细介绍了Oracle数据库从open状态到shutdown过程中的各种状态变化,包括数据库关闭的正常模式(如abort、immediate、transactional、normal)及其区别,以及在不同关闭模式下用户的会话行为、事务处理和数据库文件关闭情况。

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

oracle数据库的关闭过程
oracle数据库在关闭过程中经历的状态:
open
close
nomount
shutdown
下面介绍通常情况下一个open的数据库到shutdown的过程:
1、数据库close,这时候数据库还是mount的。oracle数据库会将SGA中的数据写入数据文件与在线重做日志文件。接下来关闭在线数据文件与重做日志文件。任何的offline的表空间或者数据文件都已经被关闭了,这些在closed前offline的表空间或者数据文件,在下次启动数据库的时候会被忽略,还是保持offline的状态。
2、数据库unmount,实例还在。但是数据库控制文件已经关闭了,这时候实例已经不再和某个数据库关联在一起。
3、实例shutdown,oracle实例已经不在内存中,oracle后台进程也不再继续运行。以上是正常的数据库关闭过程,如果一个实例被shutdown abort或者oracle系统崩溃,服务器掉电等,不会完全经历这些过程。这时候数据库与实例的关闭是立即的。
oracle数据库关闭的模式:
拥有sysdba,sysoper特权的用户可以使用sqlplus或者OEM关闭数据库.如果使用的是共享服务进程连接到数据库,是无法关闭数据库的。在数据库的关闭过程中,用户无法与数据库建立新的会话,用户会收到提示信息:ORA-01090: shutdown in progress - connection is not permitted
shutdown的可选模式有 abort,immediate,transactional,normal下面介绍这些关闭模式。
数据库表现                 abort    immediate    transactional    normal
允许新的用户会话         no         no             no            no
等待当前会话的终结     no         no             no            yes
等待当前事务的终结     no         no             yes           yes
执行一个checkpoint      no         yes            yes           yes
关闭打开的文件    
shutdown abort
这种关闭方式,适合在最紧急的情况下使用,比如其他关闭数据库的方式都不奏效的情况下,或者你知道服务器将快掉电了。使用这种方式关闭数据库是最快的,但是在下次打开数据库的时候,需要花费大量的时间来自动执行实例恢复,因为在关闭数据库的时候,没有执行checkpoint以保持数据文件的一致性。也就是说SGA中的数据,没有被写入到数据文件与在线重做日志文件。其他关闭数据库的方式不需要执行实例恢复。
shutdown immediate
这种关闭数据库的速度是仅次于shutdown abort的方式。在这种关闭方式中,oracle数据库关闭正在执行的SQL语句,断开用户连接,活动的事务被终止,没有提交的事务被rollback掉。
shutdown transactional
这种关闭数据库的方式,会阻止用户产生新的事务,但是会等待当前所有的事务执行完。这种关闭数据库的方式可能花费比较长的时间,取决于当前事务的大小与长度。当前没有在执行
事务的会话也会被马上终结。
shutdown normal
这是默认的关闭数据库的方式,数据库会等待所有用户会话的终结,然后在关闭数据库,但是这很可能需要长时间的等待。
甚至可以认为这种关闭数据库的方式是没有用的。
除了abort是非正常的关闭数据库的方式以外,其他是正常的关闭数据库的方式。
在某些情况下,数据库关闭以后可能导致下次无法重启数据库,因为还有残存的实例没有被关闭,或者某个oracle数据库后台进程没有终结。这时候可以使用sqlplus或者OEM,发出shutdown abort,彻底的关闭实例。当然把进程或者实例kill掉也是一种方法。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26110315/viewspace-716712/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26110315/viewspace-716712/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值