1 关闭数据库过程
1.1 关闭数据库
1. 把高速缓冲区和重做日志缓冲区中的内容分别写入数据文件和联机日志文件,
2. 关闭所有联机数据文件和日志文件
此时控制文件仍处于打开状态.
1.2 卸载数据库
1. 从一个实例卸装数据库
2. 关闭控制文件
此时实例依然存在。
1.3 关闭实例
1. 关闭alert文件和跟踪文件
2. 释放SGA
3. 终止后台进程
2 数据库关闭模式
指令
操作过程说明
注意事项
shutdown normal
◆ 阻止任何用户建立新的连接
◆ 等待当前所有正在连接的用户主动断开连接. 正在连接的用户能够继续他们当前的工作, 甚至能够提交新的事务.
◆ 一旦所有的用户都断开连接, 才进行关闭、制裁数据库, 并终止例程.
按normal选项关闭数据库时, Oracle并不会断开当前用户的连接, 而是等待当前用户主动断开连接. 在这个过程中, 连接的用户甚至可以建立新的事务. 此选项关闭数据库, 在下次启动数据库时不需要任何恢复操作. 关闭数据库所耗费的时间完全取决于用户主动断开连接的时间.
shutdown transactional
transactional选项比normal选项稍微主动些. 它能在尽可能短的时间内关闭数据库.
◆ 阻止任何用户建立新的连接, 同时阻止当前连接的用户开始任何新的事务
◆ 等待所有当前未提交的活动事务提交完后, 然后立即断开用户的连接
◆ 一旦所有的用户都断开连接, 立即进行关闭、制裁数据库, 并终止例程
按transactional选项关闭数据库, 既能保证用户不会丢失当前工作的信息, 又可以尽可能快地关闭数据库, 此选项关闭数据库, 在下次启动数据库时不需要任何恢复操作.
shutdown immediate
immediate选项关闭数据库, 就能够在尽可能短的时间内关闭数据库.
◆ 阻止任何用户建立新的连接, 同时阻止当前连接的用户开始任何新的事务
◆ 立即结束当前正在执行的sql语句
◆ 任何当前未提交的事务均被回退
◆ Oracle不再等待用户主动断开连接, 而是直接关闭、制裁数据库, 并终止例程
如果存在很多未提交的事务, 则按immediate选项关闭数据库仍然会耗费很长时间. 此选项关闭数据库, 在下次启动数据库时不需要任何恢复操作.
shutdown abort
如果上述三种选项都无法成功关闭数据库, 就说明数据库存在严重错误. 这时只能使用abort选项来关闭数据库.
◆ 数据库本身或某个数据库应用程序发生异常, 并且使用其他选项均无效
◆ 出现紧急情况, 需要立刻关闭数据库(比如得到通知将在一分钟内发生停电)
◆ 在启动数据库例程的过程中产生错误.
按abort选项关闭数据库时, 由于当前未完成的事务并不会被回退, 所以可能会丢失一部分数据信息. 这样数据库的完整性遭到损害, 在下一次启动时需要进行恢复. 因此建议尽量避免按abort选项来关闭数据库.
3 关闭模式与过程关系
关闭模式
Abort
Immediate
Transactional
Normal
允许新连接
X
X
X
X
等到当前会话结束
X
X
X
○
等到当前事务结束
X
X
○
○
执行检查点并关闭文件
X
○
○
○