Oracle数据库与实例
与数据库的启动相对应,关闭数据库时也是分步骤进行的。
在关闭数据库与实例时,需要使用一个具有SYSDBA权限的用户连接到Oracle中,然后使用shutdown
语句执行操作。
数据库关闭步骤
与启动数据库与实例的3个步骤相同,关闭数据库与实例也可以分为3步:
1、关闭数据
2、实例卸载数据库
3、终止实例
关闭数据库方式
使用shutdown
命令关闭数据库
参考代码:
shutdown [normal|transactional|immediate|abort]
正常方式(normal)
格式:
shutdown normal
命令中的normal
可省略。
如果对关闭数据库没有时间限制,通常会使用正常方式来关闭数据库。
正常关闭数据库时,oracle将执行:
阻止任何用户创建新的连接。
等待用户主动断开连接,已经连接的用户能够继续当前操作。
一旦所有用户都关闭连接,则立即关闭、卸载数据库,并终止实例。
立即关闭方式(immediate)(最常用)
格式:
shutdown immediate
立即关闭方式能在尽可能短的时间内关闭数据库。
立即关闭方式关闭数据库时,oracle将执行:
阻止任何用户建立新的连接,同时阻止当前连接的用户开始任何新的事务。
任何未提交的事务均被回退。
oracle不再等待用户主动断开连接,而是直接关闭、卸载数据库,并终止实例。
系统重新启动时不需要进行数据库的恢复。
事务处理方式(transactional)
格式:
shutdown transactional
事务方式介于正常关闭方式与立即关闭方式之间,它能够在尽可能短的时间内关闭数据库,但是能够保证当前所有的活动事务都可以被提交。
事务处理方式关闭数据库时,oracle将执行:
任何新的连接和事务都是不允许的,在当前连接到数据库且正在活动的事务执行完毕后,数据库将和shutdown immediate 同样的方式关闭数据库。
终止关闭方式(abort)
格式:
shutdown abort
如果说以上三种方式都无法关闭数据库,说明数据库产生了严重的错误,这时只能使用终止关闭方式来关闭数据库。
终止关闭方式关闭数据库时,oracle将执行:
所有正在运行的sql语句都将立即终止,所有未提交的事务将不回滚,oracle强行断开所有连接,关闭数据库。
下次启动数据库时需要实例恢复。终止关闭方式将丢失一部分数据信息,会对数据库的完整性造成损害。因此,如果重新启动实例并打开数据库时,后台SMON会执行实例恢复。
一般情况下,尽量避免使用这种方式关闭数据库。
shutdown数据库不同方式对比表