晶晶实验十三 重做日志的资料
资料视图在对数据库做健康检查时,有重要的意义.准确的了解资料所代表的含义,能够是我们对数据库当前的状态做出更准确的判断.下面介绍下和重做相关的资料. 一,下面3个资料是与LGWR直接相关的.仅由LGWR进程更新. 1,redo writes: LGWR从日志缓存中刷新重做记录到重做日志文件中的次数. 2,redo blocks written: 由LGWR写进重做日志文件的重做块的总量. 3,redo write time: 以厘秒为单位,记录LGWR刷新log buffer到重做日志文件所用的总的时间.它是每个log file parallel write等待时间的累计. SQL> select (select value from v$sysstat where name='redo blocks written')/ (select value from v$sysstat where name='redo writes') value from dual; VALUE ---------- 7.77459954 根据1和2两个资料,我们可以如上计算出平均每次LGWR被触发写的块数. 二,日志切换相关资料: 1,redo log space requests: 当前连机重做日志文件已满,切换日志时的等待次数.它是除用户手动切换日志外,所有日志切换的次数. 2,redo log space time: 日志切换时的等待时间.
三, 1,redo size: 所生成的总的重做数量,单位是字节.重做在PGA中生成后,先要计算出重做记录的大小,然后根据此大小在log buffer中分配空间.在重做记录还没有被写日志缓存前,重做记录的大小就会被记入到此资料中. 2,redo entries: 被拷贝进日志缓存的重做条目数,此处的条目数指的就是重做记录数,而不是重做项量的数量; 以上两个资料都是在重做记录被拷贝到日志缓存前,计算的.两个相除可以得到每条重做记录的平均字节数.命令如下: SQL> select (select value from v$sysstat where name='redo size')/ (select value from v$sysstat where name='redo entries') value from dual; VALUE ---------- 327.450713 四,redo buffer allocation retries: 在日志缓存中尝试分配空间不足的次数.retry 是再次尝试的意思.此资料表示,当第一次分配空间而没有成功时,必须再次尝试在日志缓存中分配空间,这可能是由于LGWR速度慢,或者是发生了日志切换等.和此资料相关的等待时间是log buffer space.在这个等待事件中可以查到等待时间.可以通过如下命令,计算出每条重做记录平均的等待次数. SQL> select (select value from v$sysstat where name='redo buffer allocation retries')/ (select value from v$sysstat where name='redo writes') value from dual; VALUE ---------- .011216798 此计算结果越接近0越好. 五,redo wastage: 用户提交时,必须要刷新日志缓存到磁盘文件,即使重做块并没有被填满.此资料就是统计重做块中没有被填满的字节数.比较准确的叫法应该是,"未使用缓存空间(unused buffer space)". 六,redo writer latching time: 主要指LGWR在刷新日志缓存时,等待redo copy闩的时间.单位是厘秒. 七,redo synch writes,redo synch time: 此资料专指因提交而必须刷新日志缓存到磁盘的次数和时间.redo synch writes每提交一次此资料加1,而redo synch time是写重做记录到磁盘所消耗的时间. ******** 重做相关闩的调优: 1,redo copy闩:服务器进程争用此闩,可以通过减少重做的产生,减少提交次数,缓解此闩,但有时提交次数和重做记录数是无法减少的.在你不能对应用以及现有硬件做任何修改的情况下,可增大_log_simultaneous_copies,但要确保log file sync事件不会增加太多. 2,redo allocation闩:同样,在你不能对应用以及现有硬件做任何修改的情况下,可以尝试调整日志缓存的大小或调整_io_redo_size参数的值,看是否能对此闩的争用有所缓解. 3,redo writing闩:当redo allocation latch没有太严重的争用时,此闩一般也不会有争用,此闩的争用意味着服务器进程填满可用的空间的速度,远大于LGWR准备可用空间的速度.此时,如果提交的比率很高,增加日志缓存的大小,如果提交的并不错,可以减少_io_redo_size. |
|