启动和停止数据库——停止例程


停止例程是使用shutdown命令来完成的,并且该命令可以带有normal,transaction,immediate,abort四个选项,默认为normal区别如下:


 
         
         
         
         
         

Shutdown个选项的区别

 

NORMAL

TRANSACTION

IMMEDIATE

ABORT

允许新连接

NO

NO

NO

NO

等待会话结束

YES

NO

NO

NO

等待事务结束

YES

YES

NO

NO

强制检查点关闭文件

YES

YES

YES

NO


1.shutdown normal

该命令用于执行正常关闭数据库。当执行该命令时,系统会等待所有会话结束。如果存在未断开会话,则例程会处于等待状态。只有当所有会话结束后,才会停止例程。

两个会话:

第一个:

sqlplus scott/tiger

第二个:

sqlplus sys/sys as sysdba
shut down

回到第一个:

conn scott/tiger
disc

回到第二个会话:

sqlplus sys/sys as sysdba
shut down

2.shutdown transaction

该命令用于执行事务关闭操作。当执行该命令时,系统不会等待会话结束。但如果某会话正在执行实务操作,并且尚未执行commit或rollback命令结束事务,那么系统会处于等待状态。只有在结束了事物之后,系统才会自动断开会话,然后停止例程。

shutdown transaction

3.shutdown immediate

该命令用于执行立即关闭操作。当执行命令时,系统会自动回退未完成事务,结束用户会话并关闭例程。

开启两个会话:

第一个:

sqlplus scott/tiger;
update emp set sal=3000 where empno=7788;
select sal from scott.emp where empno=7788;

第二个:

sqlplus sys/sys as sysdba
select sal from scott.emp where empno=7788;
shutdown immediate;
conn sys/sys as sysdba;
startup force;

回到第一个会话:

conn scott/tiger
select sal from emp where empno=7788;

4.shutdown abort

该命令用于快速终止例程。当执行该命令时,系统不会发出检查点,也不会关闭数据库文件。在正常情况下不要使用该命令,只有在异常情况下(例如立马要断电)为防止数据库物理文件损坏才应该使用该命令。


原文地址:https://www.cnblogs.com/zhaojiedi1992/p/oracle11g_sql_0033.html