oracle的shutdown命令用来关闭当前实例,有4个可选参数:normal、transactional、immediate和abort。不带参数时默认是normal。
这几个参数的差异体现在以下几个维度:
是否允许新的连接;
当前已连接的回话是否自动断开;
当前未提交的事务是等待用户提交完成还是自动回滚;
关闭时是否需要做检查点;
启动时是否需要进行实例恢复。
shutdown normal:不允许新的连接、等待会话结束、等待事务结束、做一个检查点并关闭数据文件。启动时不需要实例恢复。
shutdown transactional:不允许新的连接、不等待会话结束、等待事务结束、做一个检查点并关闭数据文件。启动时不需要实例恢复。
shutdown immediate:不允许新的连接、不等待会话结束、不等待事务结束、做一个检查点并关闭数据文件。没有结束的事务是自动rollback的。启动时不需要实例恢复。
shutdown abort:不允许新的连接、不等待会话结束、不等待事务结束、不做检查点且没有关闭数据文件。启动时自动进行实例恢复。
允许新的连接 | 等待会话结束 | 等待事务结束 | 做检查点 |