停止oracle数据库服务时触发检查点

    最近几天测试机上的数据库在停止时候一直卡在那里.我是使用shutdown immediate停止数据库的.
    从网上找了篇文章,里面提到在shutdown之前先用alter system checkpoint命令保存一下检查点.为什么这个操作有效呢?
    我再次去网上查找alter system checkpoint的作用,了解到这个命令是显式地让oracle数据库执行一个检查点,保证所有已提交的事务生成的变动都被写入磁盘上的数据文件.
    而且从这篇文章(http://space.itpub.net/94384/viewspace-684442)来看,在数据库停库前,如果没有执行alter system checkpoint,会导致cache中的信息没有及时写入controlfile.
    于是我猜想,是否在数据库停止时候,后台会做数据同步的工作呢,即将cache中的数据同步到磁盘上,写入对应的数据文件中.
    至少solaris系统就是这么做的.如果意外断电,重启系统后很有可能要执行fsck去修复文件数据不一致的问题.

作者: leipei   发布时间: 2011-06-16