a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 105|回复: 1

[综合] Oracle辅导:Oracle内存参数调优技术

[复制链接]
发表于 2012-8-4 13:54:49 | 显示全部楼层 |阅读模式
目的 % ]+ e. Y6 J( u7 T
  但愿经由过程清算此文档 , 使巨匠对 oracle 内存结构有一个周全的体味 , 并在现实的工作中矫捷应用 , 使 oracle 的内存机能达到最优设置装备摆设,晋升应用轨范纺暌钩速度,并进行合理的内存使用 .# ?4 j" q% c$ v2 |
实例结构
2 w4 t: P3 ]" ^' a  oracle 实例 = 内存结构 + 历程结构# H. S" C2 T4 ^. N" F8 ~, m
  oracle 实例启动的过程,其实就是 oracle 内存参数设置的值加载到内存中,并启动响应的后台历程进行相关的处事过程。
' S0 B! Y+ a, L+ \. N" n, O: ?9 `  p" }历程结构 5 E; q7 _) |; |; }- @& w2 O
  oracle 历程 = 处事器历程 + 用户历程4 j  R+ V4 A+ d' B! U5 j
  几个主要的后台历程 :- {" w& p. A& R% M& t/ M, p
  DBWR :数据写入历程 .
2 N0 w& s: q' q! D  LGWR: 日志写入历程 .
* [7 e: p# M5 `  ARCH: 归档历程 .
* t. L2 w4 d/ U: y: @  CKPT: 搜检点历程 ( 日志切换;上一个搜检点之后,又跨越了指定的时刻;预界说的日志块写入磁盘;例程封锁, DBA 强制发生 , 表空间 offline)
! g" W3 w4 f" \& s: q$ F3 ^  LCKn ( 0-9 ):封锁历程 .
3 W' K# g: H5 t! J" {6 ~  Dnnn: 调剂历程 .
4 s8 r: H7 }4 h# ~内存结构 ( 我们重点讲解的 )
* |8 }+ Q* {. G& B) J  内存结构 =SGA (系统全局区) +PGA (轨范全局区)
: V' w* c4 [5 ~  a: b- l' l1 _0 l  SGA :是用于存储数据库信息的内存区,该信息为数据库历程所共享。它包含 Oracle 处事器的数据和节制信息 , 它是在 Oracle 处事器所驻留的计较机的现实内存中得以分配,如不美观现实内存不够再往虚拟内存中写* l8 ~# E' j! \4 u2 |
  我们重点就是设置 SGA ,理论上 SGA 可占 OS 系统物理内存的 1/2 —— 1/3/ v1 E2 {# i: m1 _
  原则: SGA+PGA+OS 使用内存 < 总物理 RAM; x7 k: u$ U! f! U) u
  SGA=((db_block_buffers*blocksize)+(shared_pool_size+large_pool_size+java_pool_size+log_buffers)+1MB
' x  M7 X. Z; E6 }$ n  1 、 SGA 系统全局区 .( 搜罗以下五个区 )9 l5 K) f7 q% z( G
  A 、数据缓冲区 : ( db_block_buffers )存储由磁盘数据文件读入的数据。6 H! j# ^5 |* [" o! q3 ]
  巨细 : db_block_buffers*db_block_size# r/ x+ [6 ^  k1 q
  Oracle9i 设置数据缓冲区为: Db_cache_size* A; A. |) M/ j$ K& }$ u( F  |
  原则: SGA 中首要设置对象,一般为可用内存 40% 。
4 I0 y% {: }3 S- B8 m+ H8 g  n  B 、共享池 : ( shared_pool_size ) : 数据字典, sql 缓冲, pl/sql 语法剖析 . 加年夜可提速度。
0 G  k3 g4 E% m+ w* U7 ^0 L  原则: SGA 中首要设置对象,一般为可用内存 10%
: I; _- p! x* i  C 、日志缓冲区 : ( log_buffer )存储数据库的改削信息 .
0 a, q# o+ G! E  |) ?1 \  原则: 128K ---- 1M 之间,不应该太年夜; ~' J) |& y* Y8 q$ V& P  x* i3 ?( Z0 C' A
  D 、 JAVA 池( Java_pool_size )首要用于 JAVA 说话的开发 .
  p; G# _6 E& k! g* Y" ]/ L5 w  原则:若不使用 java ,原则上不能小于 20M ,给 30M 凡是就够了
2 v6 a! E1 U- b; @' K( L  E 、 年夜池( Large_pool_size )   如不美观不设置 MTS ,首要用于数据库备份恢复打点器 RMAN 。
- k; |% c: d' N7 \& Q  原则:若不使用 MTS,5---- 10M 之间,不应该太年夜
5 g" W2 a, ]+ k5 S. u$ H) }$ U: b  SGA=. db_block_buffers*db_block_size+ shared_pool_size+ log_buffer+Java_pool+size+large_pool_size5 V2 \* W2 J  ^& K( x
  原则: 达到可用内存的 55-58% 就可以了 .7 z1 L( D$ h# T3 N( M3 q
  2 、 PGA 轨范全局区& J6 E' i; W" u0 {% d
  PGA :包含单个处事器历程或单个后台历程的数据和节制信息,与几个历程共享的 SGA 正相反 PGA 是只被一个历程使用的区域, PGA 在建树历程时分配在终止历程时收受接管 .
, X7 L, S2 U2 Y4 z+ G; P4 {7 N% x0 s  A 、 Sort_area_size  用于排序所占内存) v& A4 I" H0 ?$ V
  B 、 Hash_area_size 用于散列联接,位图索引$ p, F& ?7 a1 ?0 p+ q0 O0 ]
  这两个参数在非 MTS 下都是属于 PGA ,不属于 SGA, 是为每个 session 零丁分配的,在我们的处事器上除了 OS + SGA, 必然要考虑这两部门
+ p2 a, \8 \% D9 `; q1 _  原则: OS 使用内存 +SGA+ 并发执行历程数 *(sort_area_size+hash_ara_size+2M) < 0.7* 总内存
& _& I) z; G# J$ z( v- M实例设置装备摆设 ( T$ n+ B" @  H8 c1 C6 b, F4 c
  一:物理内存多年夜
  L' l( c$ {, v  二:操作系统估量需要使用若干好多内存, ?5 I( i/ @" R8 c! ^
  三:数据库是使用文件系统仍是裸设备
9 k& I3 k" t3 P9 E4 e9 s  四:有若干好多并发毗连3 D( F6 @1 ?0 O/ S# E5 d6 d1 ]
  五:应用是 OLTP 类型仍是 OLAP 类型" M. H' j: R7 d" X, h8 ?5 g
  根基把握的原则是, db_block_buffer 凡是可以尽可能的年夜, shared_pool_size 要适度, log_buffer 凡是年夜到几百 K 到 1M 就差不多了
! e% ?8 h1 d5 X6 m+ \  q. q  A 、如不美观 512M RAM  单个 CPU   db_block_size 是 8192 bytes, r8 z- q8 b6 i; M7 s: T
  SGA=0.55*512M=280M 摆布8 x- R! C" C  W9 n' E$ n! d% H/ G
  建议 shared_pool_size = 50M, db_block_buffer* db_block_size = 200M
  t4 s( H1 |$ h( `  具体 : shared_pool_size =52428800 #50M/ t0 `% Z! [% Z1 ^" C
  db_block_buffer=25600      #200M0 n* K$ r. ?: u' J; v5 V/ M
  log_buffer = 131072         # 128k (128K*CPU 个数 )# ]$ `' b. o- x: r8 o! `6 g
  large_pool_size=7864320      #7.5M& Q( c, d9 i& Z9 l5 O
  java_pool_size = 20971520    # 20 M8 b1 G8 r, ^# ?: V9 \1 {9 z" A9 i6 t
  sort_area_size = 524288      # 512k (65k--2M)$ o) ~% Q' O0 g! t7 q
  sort_area_retained_size = 524288   # MTS 时 sort_area_retained_size = sort_area_size
# ~  I0 m6 Y  E7 N  B 、如不美观 1G RAM      单个 CPU   db_block_size 是 8192 bytes
5 W( |$ e3 R9 i7 I
' h; F, c- u# p4 m  u3 Y8 s, `  SGA=0.55*1024M=563M 摆布
回复

使用道具 举报

 楼主| 发表于 2012-8-4 13:54:50 | 显示全部楼层

Oracle辅导:Oracle内存参数调优技术

</p>  建议 shared_pool_size = 100M , db_block_buffer* db_block_size = 400M
2 Q9 f( M  |  A+ d# k6 N( E  s7 v  具体 : shared_pool_size=104857600    #100M0 o+ R& H/ }  f7 e
  db_block_buffer=51200         #400M, ~, T5 S% M$ |$ M9 L( z- A- C
  log_buffer = 131072         # 128k (128K*CPU 个数 )
  m9 `+ @9 A/ N  X  large_pool_size=15728640       #15M
9 Y$ j9 f4 @. L+ K  java_pool_size = 20971520    # 20 M
9 `5 k+ C4 u* }0 j+ w  sort_area_size = 524288      # 512k (65k--2M)
8 ?6 F  z' N7 \" N" M  sort_area_retained_size = 524288   # MTS 时 sort_area_retained_size = sort_area_size
' k, }3 ^5 a; o  C 、如不美观 2G     单个 CPU   db_block_size 是 8192 bytes! @/ c& g  e( L& y( ]( ~- s" C
  SGA=0.55*2048M=1126.4M 摆布
2 D: o+ ^2 S" p& |4 ]% x9 U0 a% o5 o: M  建议 shared_pool_size = 200M , db_block_buffer *db_block_size = 800M1 R6 p! m, a; b5 H- V
  具体 : shared_pool_size=209715200    #200M
: m" B  d* r0 v) U& S  db_block_buffer=103192         #800M% A3 g7 X: \  S( O! S! g7 O
  log_buffer = 131072            # 128k (128K*CPU 个数 )
" a( I7 P# c9 Z4 x; Y  large_pool_size= 31457280      #30M
: P/ b9 D; X3 I$ d  java_pool_size = 20971520      # 20 M
1 p' p8 d6 T7 G& [( n, x  sort_area_size = 524288         # 512k (65k--2M)
: u( w, A9 D8 b; d+ [9 P  sort_area_retained_size = 524288   # MTS 时 sort_area_retained_size = sort_area_size" N+ e! F6 \- q
  假定 64 bit ORACLE
0 M" \' a# `, i/ h" w: P  内存 4G8 O& p; Y# F" N/ S0 I. ]; z) J
  shared_pool_size = 200M , data buffer = 2.5G
; j# w) \' [: Y) I% s  内存 8G+ k" S5 @0 L3 L! n- b
  shared_pool_size = 300M , data buffer = 5G
* h. K: e2 |& I- ]  内存 12G8 u. G6 _% q) A2 I
  shared_pool_size = 300M-----800M , data buffer = 8G6 U0 B& \' ^" i5 i9 {/ A
参数更改体例
- b9 B% ^* Y( T! |* m/ F* w  oracle8i :, q! g' ?8 k& l0 c# `. B8 ]+ }
  首要都是经由过程改削 oracle 启动参数文件进行相关的设置装备摆设
; L1 `+ }& G; M: `  参数文件位置:% D% g( R; F! z* ?5 A+ F9 h: J
  d:oracleadminDB_Namepfileinit.ora' x- ?8 D! S& Q3 s$ J- j( I
  按以上改削以上参数值即可。) f8 P' s7 a7 x+ t5 d- g
  Oracle9i:
! [3 m9 K' R% ^! i. a  两种体例:第一种是改削 oracle 启动参数文件后,经由过程此参数文件再建树处事器参数文件
! Q+ B5 J+ L& b" n2 q2 Z  第二种是直接运行 oracle 改削呼吁进行改削。
2 O6 T: q2 I) q- u$ [  SQL>alter system set db_cache_size=200M scope=spfile;
& y1 K7 |  `# m3 v  B# r  SQL>alter system set shared_pool_size=50M scope=spfile;
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-16 05:42 , Processed in 0.277981 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表