Thread 1 cannot allocate new log, sequence #
Checkpoint not complete
或
Archival required
原因是当做online redo log切换时,
如果发现下一个redo log所保护的数据还未完成checkpoint (Checkpoint not complete),此时数据库hang住,DBWR将以最大优先级尽快把数据从缓冲区刷到磁盘;
如果发现下一个redo log所保护的数据还未被归档 (Archival required) (数据库处于archived log模式下),此时数据库hang住,ARCH将以最大优先级尽快复制redo log至archive目录下。
可以看到,当出现这种情况时,时间看实际上停止了,无法响应用户的请求。这种情况最容易在业务高峰期时出现,如果只是偶然情况,可以暂时忽略,如果出现很频繁,则可以从以下几个方面调整:
1. 增加更多redo log文件
2. 创建更大的redo log文件
3. 使DBWR更快一些,比如启用异步I/O,使用DBWR I/O从属进程,或者使用多个DBWR进程等等
4. 确保磁盘没有因为竞争导致I/O变慢
5. 让checkpoint发生的更频繁(比如缩小log checkpoint interval等),改方法仅针对Checkpoint not complete状况。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26277071/viewspace-708840/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26277071/viewspace-708840/