我们知道在Oracle 10g中,如不美观数据库启用flashback功能,Oracle即在shared pool平分配flashback buffer,以下是Oracle部门启动日志,可以清嚣张的看到flashback buffer在shared pool分配了3981204 bytes。 引用
( Z z" V9 ~5 }/ z# O Wed Dec 30 15:20:40 2009
7 D; ]% ` t. i Allocated 3981204 bytes in shared pool for flashback generation buffer
+ l! L8 i1 {- ]+ z5 K Starting background process RVWR
, U- Y' n% Y/ ?- e' s6 {& H RVWR started with pid=16, OS id=7243 r1 l; x8 c+ J. X) o
同样在数据字典中也可以看到flashback buffer的巨细:
3 H4 Q% a7 ?# K: |8 ?' F" n- c 引用
. o+ V& T7 M1 y4 r SQL> select name,bytes from V$sgastat& ^! g( m+ T4 S0 x2 {) G
2 where pool=’shared pool’
: d% N* {7 { F/ \/ _ 3 and name like ‘%flash%’;
4 v, W0 G7 L- ~ NAME BYTES
% [ N5 ]0 A. T& [4 h" u ————————– ———- g# z3 X! f: L \5 r; `& F
flashback generation buff 3981204; O \5 R5 `6 Z2 i
当flashback buffer空间严重时,可能会呈现flashback buf free by RVWR期待事务,Oracle并没有供给参数调节flashback buffer,对于高吞吐量,并发量系统初始巨细并不能知足系统要求8 [) E& M, {1 I2 l! ?' ~# [4 P
今朝系统中log_buffer巨细为7012352 bytes,将其改为10M,重启数据库,不雅察看flashback buffer转变。; ~% C% {, L( y2 V5 l
引用
+ I( N! ~! M9 k, l SQL> show parameter log_buffer
0 m5 k5 |2 W8 d \+ R NAME TYPE VALUE; S1 _; v/ L: {
———————————— ———– ——————————6 {$ G- X( W1 k! G& L8 k# {
log_buffer integer 7012352" n% n( p" ?% X. m5 S: a6 y) r, o
SQL> alter system set log_buffer=10000000 scope=spfile;+ T8 B) j6 {/ y: P, [; [
System altered., j) z( G7 o$ u
SQL> select name,bytes from V$sgastat
! o; T9 J% @6 v4 J- q8 _) Y+ ]4 g 2 where pool=’shared pool’
, ~% F- U. e5 e6 s 3 and name like ‘%flash%’;1 {# l( y3 L4 p" _; B) x
NAME BYTES
2 _! V) F+ E0 I% p C —————————— ———-
0 b3 e* E; }( b0 T flashback generation buff 3981204
! N0 Z5 o4 a" e( _ SQL> startup force% G, k% N. {! G" p1 W
' h f0 _0 y) u' q1 @7 C ORACLE instance started. |