ORACLE—图灵小队—redo与undo—核心知识点3——alert.log告警-thread 1 caonnot allocate new log,sequence 1466,checkpoint not complete,archival required
1、造成上述问题的原因:
(1)日志文件大小设置不当
(2)DBWn和ARCn需要想调优
(3)日志文件数量过少
2、会话现象:
一般这种情况,会话会花在大量的时间再“logfile file switch”,"log buffer space" 或者“log file switch checkpoint or archival incomplete”等待实践上。
3、根本原因:
事务造成了大量的redo log产生,日志文件过小、过少,redo log buffer 不断刷新大量的数据到redo log中, redo log 进行归档archive log不能快速完成,导致前端等待。
4、解决方法:
(1)让DBWn更快一些,对DBWn调优,为此可以启用ASYNC I/O、DBWn I/O从属进程或者使用多个DBWn进程。或者分散redolog组到多个磁盘(裸盘或非raid的盘)。
(2)增加更多的重做日志文件
(3)重新创建更大的日志文件
(4)让检查点发生的更频繁(不建议),
如调整缓冲区缓存或FAST_START_MTTR_TARGET、LOG_CHECKPOINT_INTERVAL及LOG_CHECKPOINT_TIMEOUT等参数,这会强制DBWn跟拼房的刷新输出脏块。
优点是实例恢复的时间会减少,因为恢复时所需的在线重做日志会更少。
缺点是如果系统中修改大量的数据块,那么数据块同步到磁盘的动作会更为频繁,而这会降低缓冲区缓存的功效。