Oracle flashback buffer的实际应用参数研究


  本文标签:Oracle flashback buffer

  以下的文章主要是对Oracle flashback buffer的实际应用的参数研究,我们大家知道在Oracle 10g中Oracle数据库可以启用flashback功能,以下的文章主要是介绍在Oracle shared pool中如何分配flashback buffer,以下是Oracle部分启动日志,可以清楚的看到Oracle flashback buffer在shared pool分配了3981204 bytes  。

  引用

  

  1. Wed Dec 30 15:20:40 2009  
  2. Allocated 3981204 bytes in shared pool for flashback generation buffer  
  3. Starting background process RVWR  
  4. RVWR started with pid=16, OS id=724 

  

  同样在数据字典中也可以看到Oracle flashback buffer的大小:

  引用

  

  1. SQL> select name,bytes from V$sgastat  
  2. 2 where pool=’shared pool’  
  3. 3 and name like ‘%flash%’;  
  4. NAME BYTES  
  5. ————————– ———-  
  6. flashback generation buff 3981204  

  

  当flashback buffer空间紧张时,可能会出现flashback buf free by RVWR等待事件,Oracle并没有提供参数调节Oracle flashback buffer,对于高吞吐量,并发量系统初始大小并不能满足系统要求

  目前系统中log_buffer大小为7012352 bytes,将其改为10M,重启数据库,观察flashback buffer变化  。

  引用

  

  1. SQL> show parameter log_buffer  
  2. NAME TYPE VALUE  
  3. ———————————— ———– ——————————  
  4. log_buffer integer 7012352  
  5. SQL> alter system set log_buffer=10000000 scope=spfile;  
  6. System altered.  
  7. SQL> select name,bytes from V$sgastat  
  8. 2 where pool=’shared pool’  
  9. 3 and name like ‘%flash%’;  
  10. NAME BYTES  
  11. —————————— ———-  
  12. flashback generation buff 3981204  
  13. SQL> startup force  
  14. ORACLE instance started.  
  15. Total System Global Area 536870912 bytes  
  16. Fixed Size 1262764 bytes  
  17. Variable Size 155192148 bytes  
  18. Database Buffers 369098752 bytes  
  19. Redo Buffers 11317248 bytes  
  20. Database mounted.  
  21. Database opened.  
  22. SQL> select name,bytes from V$sgastat  
  23. 2 where pool=’shared pool’  
  24. 3 and name like ‘%flash%’;  
  25. NAME BYTES  
  26. —————————— ———-  
  27. flashback generation buff 3981204  

  

  可以看到flashback generation buff大小并没有发生变化  。

  进一步,观察和flashback相关的隐含参数