8->ORACLE四种关闭方式

时间:2024-03-03 22:42:31
1、shutdown normal 

   正常方式关闭数据库

只要数据库中存在事物未提交 ,连接没有中断就一直等 等到所有事物提交 所有连接终端关闭 才停止数据库




2、shutdown immediate 
   立即方式关闭数据库。 
   在plsql中执行shutdown immediate,数据库并不立即关闭 缓存的数据会被写入数据库,未提交的事物会回滚, 
   而是在Oracle执行某些清除工作后才关闭(终止会话、释放会话资源), 
   当使用shutdown不能关闭数据库时,shutdown immediate可以完成数据库关闭的操作。 


3、shutdown abort 
   直接关闭数据库,正在访问数据库的会话会被突然终止 ,缓存的数据不会被写入数据库,未提交的事物也不回滚, 
   如果数据库中有大量操作正在执行,这时执行shutdown abort后,重新启动数据库需要很长時間 【因为需要日志重做 进行数据恢复】

--------------------------------------------------------


4 shutdown transactional

直达所有的事物完成才关闭数据库


shutdown abort 的时候,跟kill 进程是一样的效果
数据库立即关闭,这个时候文件状态可能不一致
因为正常关闭数据库会同步校验各文件,使得重新启动的时候文件时间点一致并且不用进行崩溃恢复

若检查点信息一致,则做崩溃恢复
若检查点信息不一致(正好在更新文件头)则需要做介质恢复

这些问题都好处理,最怕的问题是这个时候系统有大量IO,结果这样造成写的突然中断,碰巧造成文件块的逻辑坏块,那麻烦比较大一些,尤其是系统表空间的block损坏


虽然shutdown abort 出错的几率很小,1000个人可能只有一个人碰到,但是我们还是要小心。
正确的处理流程是,shutdown immediate ,若数据库迟迟不能down下来,在os上观察IO状况,几乎没有io的时候,另开一窗口shutdown  abort ,几乎不会出问题了