ITPub博客

首页 > 应用开发 > IT综合 > Redo wastage产生的原因

Redo wastage产生的原因

原创 IT综合 作者:litterbaby 时间:2007-09-26 17:11:48 0 删除 编辑
Redo wastage产生的原因[@more@]

Redo wastage产生的原因

v$sysstat中有一个统计是redo wastage,这个究竟是什么意思,为什么汇产生这个问题哪?reod wastage会对系统的性能产生影响吗?

1、为什么会产生redo wastage

我们都熟知产生的redo会先写入到redo buffer中,然后Oracle中的LGWR进程会根据某些触发条件将redo buffer中的redo写入到redo文件中。redo文件一般块是512,除去每个块有16字节的块头,真正能够使用的部分51216。而redo文件在逻辑上是有redo record组成。LGWR写入redo的时候,会在redo文件中留下一些没有使用的空间,例如图:

这部分看见的产生主要愿意是因为在LGWR写入redo文件的时候,需要释放redo allocation latch,而在释放之前,由于系统的事务需要不停进行,既然要进行就需要不停产生事务redo,而这些redo也是需要不能中断写入到redo buffer中,如果不能这样的话,系统就会等待,就会停滞。所以在释放之前必须给随后的redo写一个新的buffer空间的起始位置。而这个其实位置就是存放在SGA中的fixed area中的一个index(应该是一个指针)。这个index就是告诉Oracle redo buffer写的起始位置。在分配这个index的时候,oracle会跳过当前已经使用块,在下一个没有使用的块上分配,而LGWR写的时候也是一块一块写入到redo文件中,相应的这部分没有完全使用的块也是按照原来的情况写入到redo文件中,这就造成现在这种redo wastage的状态。

2redo wastage过多的原因

redo wastage的产生是正常的现象,但是如果redo wastage过多的情况产生的话就可以有问题了,这就说明LGWR过于频繁。而LGWR过于频繁的结果是需要过多的再如redo latchredo写的IO。因为LGWR写的触发条件是:

n 1/3 buffer被使用

n commit

n redo size > 1M

n DBWR

可以从redo buffer的大小和commit次数来着手。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/222350/viewspace-972511/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    131
  • 访问量
    431578