关闭实例的方法:1、使用“shutdown normal;”语句;2、使用“shutdown transactional;”语句;3、使用“shutdown immediate;”语句;4、使用“shutdown abort;”语句。
本教程操作环境:linux5.9.8系统、Oracle 11g版、Dell G3电脑。
Oracle实例指的是由Oracle内存结构(SGA)和Oracle进程组合在一起的统称。我们常说的Oracle数据库指的是Oracle数据库管理系统,它是由Oracle 数据库(数据存储)和管理数据库的实例组成的。
Oracle实例就是Oracle利用后台内存结构(SGA)和进程来管理oracle数据库,同时提供服务。
oracle怎么关闭实例
Oracle关闭数据库实例也分为三个步骤:
-
关闭数据库
-
卸载数据库
-
关闭Oracle实例
1、NORMAL方式:正常关闭方式,如果对关闭数据库的时间没有限制,通常会使用这种方式来关闭数据库。
shutdown normal;
讲解:正常方式关闭数据时,Oracle执行如下操作:
(1)阻止任何用户建立新的连接。
(2)等待当前所有正在连接的用户主动断开连接(此方式下Oracle不会立即断掉当前用户的连接,这些用户仍然操作相关的操作)
(3)一旦所有的用户都断开连接,则立即关闭、卸载数据库,并终止实例。(所以,一般以正常方式关闭数据库时,应该通知所有在线的用户尽快断开连接)
2、TRANSACTINOAL方式:事务关闭方式,首要任 务是能够保证当前所有的活动事务都可以被提交,并在尽可能短的时间内关闭数据库。
shutdown transactional;
讲解:这种方式介于正常关闭方式跟立即关闭方式之间,响应时间会比较快,处理也将比较得当。执行过程如下:
(1)阻止任何用户建立新的连接,同时阻止当前连接的用户开始任何新的事务。
(2)等待所有未提交的活动事务提交完毕,然后立即断开用户的连接。
(3)直接关闭、卸载数据库,并终止实例。
3、IMMEDIATE方式:立即关闭方式,这种方式能够在尽可能短的时间内关闭数据库。
shutdown immediate;
讲解:
(1)阻止任何用户建立新的连接,同时阻止当前连接的用户开始任何新的事务。
(2)Oracle不等待在线用户主动断开连接,强制终止用户的当前事务,将任何未提交的事务回退。(如果存在太多未提交的事务,此方式将会耗费很长时间终止和回退事务)
(3)直接关闭、卸载数据库,并终止实例。
4、ABORT方式:终止关闭方式,终止关闭方式具有一定的强制性和破坏性。
shutdown abort;
讲解:这是比较粗暴的一种关闭方式,当前面3种方式都无法关闭时,可以尝试使用终止方式来关闭数据库。但是以这种方式关闭数据库将会丢失一部份数据信息,当重新启动实例并打开数据库时,后台进程SMON会执行实例恢复操作。一般情况下,应当尽量避免使用这种方式来关闭数据库。执行过程如下:
(1)阻止任何用户建立新的连接,同时阻止当前连接的用户开始任何新的事务。
(2)立即终止当前正在执行的SQL语句。
(3)任何未提交的事务均不被退名。
(4)直接断开所有用户的连接,关闭、卸载数据库,并终止实例。
推荐教程:《Oracle教程》