重做日志的资料

来源:百度文库 编辑:神马文学网 时间:2024/04/28 11:41:05
 资料视图在对数据库做健康检查时,有重要的意义.准确的了解资料所代表的含义,能够是我们对数据库当前的状态做出更准确的判断.下面介绍下和重做相关的资料. 一,下面3个资料是与LGWR直接相关的.仅由LGWR进程更新. ... 资料视图在对数据库做健康检查时,有重要的意义.准确的了解资料所代表的含义,能够是我们对数据库当前的状态做出更准确的判断.下面介绍下和重做相关的资料.
一,下面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.