Oracle10g默认的redo log file大小为50m,在使用中经常会发现alter log里存在大量Checkpoint not complete的问题。
这个问题大家应该都清楚是什么,要解决无非就要增加redo log file的大小,但是增加到多少比较合适呢? 其实估测的方法很简单,10g可以使用awr(9i使用statspack)对一个稳定运行周期生成报表,具体周期要看db的使用情况。
load profile per second per transaction redo size: 173,302.31 470,896.98
根据报表给出的数据,redo size 每秒是173k,而对redo log的建议一般是每小时切换2-3次,就以20分钟切换一次为例,redo log file的大小就应该设置为 redo size x 60 x 20 即 173k x 60 x 20,所以redo log file的大小应设置为208m,空间比较充足的可以设置富裕一些。 当然,10g可以使用ADDM来自动完成以上的诊断步骤,不过ADDM并不是每次都能诊断出所有的问题(也许是我用的不得当),感觉还是看awr报表比较容易发现问题.
另一处理方法: 设置redolog文件的原则就是要保证30分钟之内进行logswitch. logswitch的信息被记录在alertSID.log中。 如果两次switch的时间是10分钟,你需要增加redolog文件到三倍的尺寸。 如果两次switch的时间是15分钟,你需要增加redolog文件到两倍的尺寸。 如果两次switch的时间超过30分钟,你不需要需要增加redo log文件的尺寸。