今天发现alter.log有以下信息:

Thread 1 cannot allocate new log, sequence 6166

Private strand flush not complete

对于这个错误信息得解释如下:

当系统要重新利用某个日志文件的时候,系统需要将该日志文件所包括的buffer cache 中的dirty block

写到相应的数据文件。由于对于一个数据库操作而言,它可能产生的redo 量仅仅是几十字节,但是对于buffer cache中确是一个block

(一般为8k)。所以,对于一个仅仅是几百M的日志文件,它所保护的buffer cache 可能是几个G

一旦发生"Thread 1 cannot allocate new log",表明系统的checkpoint 没有来得及完成,也就是说 buffer

cache 中的dirty data还没有完全写到数据文件,就已经有大量的日志需要写入到系统。而系统只能通知应用:checkpoint

还没有完成,你只能等待。这个时候,系统就基本处于hang 状态了 When the database waits on checkpoints,redo

generation is stopped until the log switch is done

如果,我们在这个时候查看系统信息,就会发现:v$log中的日志状态大多处于active 状态; v$session_wait 中会有很多log file

switch 事件的发生

解决办法: a. 添加更多的日志文件  b. 加大checkpoint 触发的频度  c. 减小redo log 的size d. 提高DBWR的效率

e. 为了更好的了解系统的运行,可以设置

log_checkpoint_interval = 0

log_checkpoint_timeout = 0

log_checkpoints_to_alert=True

9i以后可能大家都喜欢通过设置fast_start_mttr_target来控制instance

recovery的粒度。但是仍然有两个参数一直影响着我们的checkpoint,就是他们:

log_checkpoint_interval

Oracle8.1版本后log_checkpoint_interval指的是两次checkpoint之间操作系统数据块的个数。checkpoint时Oracle把内存里修改过的数据块用DBWR写到物理文件,用LGWR写到日志和控制文件(在8i的时候lgwr进程在兼有ckpt进程的作用,呵呵。为了减轻我们本来就可能在高压情况下疲于奔命的LGWR兄弟的负担,Oracle引入了ckpt来更新我们的控制文件和数据文件头的SCN信息)。

一般UNIX操作系统的数据块为512bytes。

从性能优化的角度来说,建议log_checkpoint_interval=redologfilesizebytes

/ 512bytes,根据我们的online redo file的大小来指定我们数据块的个数.

from

concept:

LOG_CHECKPOINT_INTERVAL specifies the frequency of

checkpoints(用来指定检查点发生的频率) in terms of the number of redo log file blocks that

can exist between an incremental checkpoint and the last block written to the

redo log. This number refers to physical operating system blocks, not database

blocks.

Regardless of this value, a checkpoint always occurs when switching

from one online redo log file to another. Therefore, if the value exceeds the

actual redo log file size, checkpoints occur only when switching logs.

Checkpoint frequency is one of the factors that influence the time

required for the database to recover from an unexpected

failure.

log_checkpoint_timeout

Oracle8.1版本后log_checkpoint_timeout指的是两次checkpoint之间时间秒数(单位是秒)。

Oracle建议不用这个参数来控制,因为事务(transaction)大小不是按时间等量分布的(事务的长短并不是最重要的,重要的是我们的业务逻辑和数据的完整性)。那么我们用log_checkpoint_interval参数控制会更好一些。

我们可以通过log_checkpoint_timeout=0来禁用此参数或者按默认的900。

LOG_CHECKPOINT_TIMEOUT

specifies (in seconds) the amount of time that has passed since the incremental

checkpoint at the position where the last write to the redo log (sometimes

called the tail of the log) occurred. This parameter also signifies that no

buffer will remain dirty (in the cache) for more than integer

seconds.

Specifying a value of 0 for the timeout disables time-based

checkpoints. Hence, setting the value to 0 is not recommended unless

FAST_START_MTTR_TARGET is set.

oracle cannot allocate new log,Thread 1 cannot allocate new log相关推荐

  1. python log函数怎么打_Python的log日志功能及设置方法

    python log函数怎么打_Python的log日志功能及设置方法_Elaine要当律师的博客-CSDN博客

  2. 每日一题(二三)function Foo(){ Foo.a = function(){console.log(1); } this.a = function(){console.log(2)}) Fo

    题目描述:写出下面代码打印结果,并解释为什么 function Foo(){Foo.a = function(){console.log(1);}this.a = function(){console ...

  3. 计算机程序扩展名是什么,LOG文件扩展名 - 什么是.log以及如何打开? - ReviverSoft...

    你在这里因为你有,有一个文件扩展名结尾的​​文件 .log. 文件与文件扩展名 .log 只能通过特定的应用程序推出.这有可能是 .log 文件是数据文件,而不是文件或媒体,这意味着他们并不是在所有观 ...

  4. Error:For input string: Consult IDE log for more details (Help | Show Log)

    在GitHub 上下载代码,使用Android studio 打开项目 就报错 : Error:For input string: "" Consult IDE log for m ...

  5. Consult IDE log for more details (Help | Show Log),read failed, socket might closed or timeout,

    新导入项目报错 Error:Read timed out Consult IDE log for more details (Help | Show Log) 修改gradle,进行版本适配: 202 ...

  6. linux中.log文件是什么,linux 下log文件夹简介

    以下介绍的是20个位于/var/log/ 目录之下的日志文件.其中一些只有特定版本采用,如dpkg.log只能在基于Debian的系统中看到. /var/log/messages - 包括整体系统信息 ...

  7. nginx: [alert] could not open error log file: open() /usr/local/var/log/nginx/error.log

    关于 **nginx: [alert] could not open error log file: open() "/usr/local/var/log/nginx/error.log&q ...

  8. oracle back log,11g闪回日志(flashback log)保留时间参数 - db_flashback_retention_target

    查看  DB_FLASHBACK_RETENTION_TARGET 参数是默认值 1440 (分钟), 即一天时间. 文档对于它的解释如下: DB_FLASHBACK_RETENTION_TARGET ...

  9. oracle报错ORA-39002: invalid operationORA-39070: Unable to open the log file.ORA-29283: invalid file

    解决办法: 是因为导入文件夹没有权限,权限在root用户下,修改下权限就可以了.我的导入文件夹是"/oracledb/dmpfile",修改权限命令如下: chown -R ora ...

最新文章

  1. Redis在Linux系统的配置优化
  2. java直接量_Java教程:Java直接量(字面量)
  3. kuka程序备份_那智机器人系统备份步骤
  4. 经典C语言程序100例之二零
  5. 给Oracle 11g Interval分区进行重命名
  6. 【已解决】navigateTo:fail page “/pages/.../...“ is not found
  7. Moss/Sharepoint 2010 Form认证(FBA)
  8. SAP UI5 web Component里的条件渲染机制
  9. java的应用程序开发_开发一个Java应用程序(1)
  10. java运行构建期间出错_构建和运行Java 8支持
  11. 阅读react-redux源码(六) - selectorFactory处理store更新
  12. linux l字符串,Linux shell 字符串常用操作
  13. JavaScript 评论添加练习
  14. Ubuntu20.04更新源步骤
  15. 穷爸爸与富爸爸,背后思维的差异
  16. 通过ajax实现简单的数据交互(模板引擎)
  17. READING | 我是一只IT小小鸟
  18. JAVA开发工程师面试题shiro
  19. 【往届四个月检索,EI会议】第二届通讯技术与信息科技国际学术会议(ICCTIT 2022)
  20. 【循环自相关和循环谱系列6】信号的循环平稳性(循环自相关函数)基本原理及推导

热门文章

  1. 我们为什么需要 SpringBoot?
  2. 解决vue路由守卫报错信息
  3. kibana 后台启动
  4. linux 环境 crontab+shell+sqlplus 调用oracle 存储过程实现数据同步
  5. RabbitMQ管控台操作手册
  6. Activiti WAR 包简介
  7. 只需要4步即可在vue2中使用路由router
  8. java构造方法 this_Java中的构造方法this、super的用法详解
  9. 405 宝塔钩子_点击数据库管理,nginx提示出现405 Not Allowed错误,是怎么回事?
  10. pythonmysql查询转list_python 数据库查询结果转对象