1.Shutting Down a Database

To shut down a database and instance, you must first connect as SYSOPER or SYSDBA. There are several modes for shutting down a database:

1)Shutting Down with theNORMALClause

SQL>shutdown normal;   --此处的normal是可选的,如果shutdown后不跟参数,默认是normal选项关闭;

此参数关闭数据库:

  • 不再允许新的连接到Oracle数据库实例

  • 在数据库关闭之前,将等待其他用户到数据库的连接结束

  • 数据库下次启动的时候不需要对数据库实例进行恢复

  • 强制选择检查点并关闭文件

2)Shutting Down with the IMMEDIATE Clause

关闭数据库时,使用immediate主要用于以下情形:

  • 对数据库进行自动的或无人值守的备份操作

  • 希望对数据库快速关闭

  • 当数据库或它的应用正在不正常的运转,用户无法将其注销

  • 强制选择检查点并关闭文件

SQL>shutdown immediate;

此参数关闭数据库:

  • 不再允许新的连接到Oracle实例,也不允许新的事务启动

  • 未提交的事务将会回滚

  • 数据库将会隐式的回滚当前事务和关闭用户实例的连接

  • 强制选择检查点,并关闭文件

3)Shutting Down with the TRANSACTIONAL Clause
如果想要按照执行计划在事务关闭之前关闭数据库,关闭数据库时用transactionsal参数

SQL>shutdown transactional;

此参数关闭数据库:

  • 不允许新的连接

  • 等待事务结束,之后客户端将不再断开实例的连接

  • 强制选择检查点并关闭文件

  • 下次启动数据库不需要对数据库进行实例恢复

4)Shutting Down with the ABORT Clause

以下情形会用到此种关闭数据库的方式:想立即关闭数据库或是预知数据库实例启动会失败

SQL>shutdown abort

此参数关闭数据库:

  • 不允许新的用户连接和打开事务

  • 当前客户端进程立刻关闭

  • 没有完成的事务将不回滚

  • 将会隐式的关闭所有对数据库的连接

  • 下次启动数据库需要对实例进行恢复