ORACLE 記憶體管理 之六 SGA Multiple Block Sizes,Large Pool
ORACLE DBA 記憶體管理 SGA Multiple Block Sizes,Large Pool
Multiple Block Sizes9i前只能設定一種blocksize,如果想改變只能重灌資料庫.9I後可以設定多種.要設定多種blocksize必須先設定相應的buffer cache area.
SQL> show parameter cache_size
NAME TYPE VALUE
------------------------------------ ---------------------- -------------------
db_16k_cache_size big integer 0
db_2k_cache_size big integer 0
db_32k_cache_size big integer 0
db_4k_cache_size big integer 0
db_8k_cache_size big integer 0
db_cache_size big integer 243269632
db_keep_cache_size big integer 0
db_recycle_cache_size big integer 0
SQL> show parameter db_block_size
NAME TYPE VALUE
------------------------------------ ---------------------- ---------
db_block_size integer 8192
可以看到DEFAULT是8K,預設值用的時db_cache_size所以是不需要設定相應的db_xk_cache_size的。
當想建立一個32K的表空間但是又沒有設定 db_32k_cache_size的時候會出錯的:
1 create tablespace ts_wwm_32k
2 datafile 'D:ORACLEORADATAJMCOEMDBTS_WWM_32K.DBF' size 10m
3* blocksize 32k
SQL> /
create tablespace ts_wwm_32k
*
ORA-29339: 表空間塊大小32768 與配置的塊大小不匹配
所以必須先設定32K的cache size,要保證有這部分空餘mem可以分配出來,先看sga_max_size是否大於當前sga 的大小,如果大於當前sga說明有一部分mem沒有分配,可以用來分配給32k_cache_size。如果等於當前sga的大小說明可用記憶體都已用掉,此時需要縮小其他元件的大小來讓出地方給32k_cache_Size.
SQL> show sga
Total System Global Area 420551900 bytes
Fixed Size 453852 bytes
Variable Size 176160768 bytes
Database Buffers 243269632 bytes
Redo Buffers 667648 bytes
SQL> show parameter sga_max_size
NAME TYPE VALUE
------------------------------------ ---------------------- --------------
sga_max_size big integer 420551900
可以看到sga_max_size=420551900
縮小default 的db_cache_Size以便空出地方。
SQL> alter system set db_cache_Size=200M;
SQL> alter system set db_32k_cache_size=50m;
alter system set db_32k_cache_size=50m
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-00382: 32768 not a valid block size, valid range [2048..16384]
由於做實驗用的是WIN2000,只支援2k---16k.所以修改成16K
1* alter system set db_16k_cache_size=30M
create tablespace ts_wwm_16k
datafile 'D:ORACLEORADATAJMCOEMDBTS_WWM_16K.DBF' size 20M
blocksize 16k;
表空間已建立.
現在有了兩個buffer cache了,8k的cache size是200M,16K的是30M,這兩個區域不能通用,16K的30M用完後不能用8k的200M.所以增加靈活性的同時也增加了管理的複雜性.
large pool 並不是因為他本身大,而是說他分配的PIECE比較大,8.0前large pool需要實現的功能都在shared pool裡實現.但是shared pool裡用LRU演算法,LRU對於那些用了之後還要用的資料比較好,但LARGE的特徵卻是需要的時候要分配大塊的記憶體,不需要的時候可以不保留資料,也就是說不會被重用. 所以8.0後就單獨分出來large pool.shared pool和large pool的關係就像buffer cache裡的 recycle和keep的關係一樣,large pool,就相當於recycle,shared pool就像keep一樣。
Large pool在一下情況用到:
* Shared Server Connections – to allocate the UGA region in the SGA.
* Parallel Execution of statements – to allow for the allocation of inter-process message buffers, used to coordinate the parallel query servers.
* Backup – for RMAN disk I/O buffers in some cases.
摘自:[@more@]來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/633084/viewspace-888425/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【Oracle-記憶體管理】-Multiple Block SizesOracle記憶體BloC
- ORACLE記憶體管理 之五 SGA variable pool,shared_pool,large_pool,java_poolOracle記憶體Java
- Multiple Block Sizes (53)BloC
- ORACLE 記憶體管理 之四 SGAOracle記憶體
- Oracle記憶體分配與使用小記(二)Shared Pool and Large PoolOracle記憶體
- 【Oracle-記憶體管理】-Multiple I/O SlavesOracle記憶體
- oracle large poolOracle
- ORACLE SGA之shared poolOracle
- SGA和PGA記憶體管理記憶體
- Oracle體系結構之記憶體結構(SGA、PGA)Oracle記憶體
- 記憶體_SGA記憶體
- oracle10g在sga手工管理mmm模式如何配置大池large_pool_size(一)Oracle模式
- Objective-C記憶體管理:BlockObject記憶體BloC
- Oracle記憶體結構研究-SGA篇Oracle記憶體
- 【Mysql】讀書筆記之--innodb_buffer_pool記憶體的管理MySql筆記記憶體
- iOS 進階—— iOS 記憶體管理 & BlockiOS記憶體BloC
- 自動SGA共享記憶體管理,ASMM,MMAN,sga_target,sga_max_size記憶體ASM
- SGA與共享記憶體記憶體
- Oracle 記憶體管理Oracle記憶體
- oracle12c之 控制pdb中sga 與 pga 記憶體使用Oracle記憶體
- block沒那麼難(三):block和物件的記憶體管理BloC物件記憶體
- OC基礎(六)——記憶體管理記憶體
- Oracle Exadata與SGA快取記憶體CQOracle快取記憶體
- oracle例項記憶體(SGA和PGA)調整Oracle記憶體
- oracle資料庫記憶體分配(sga和pga)Oracle資料庫記憶體
- oracle記憶體結構:SGA的區域資訊Oracle記憶體
- 【SGA】【PGA】普適的Oracle記憶體分配策略Oracle記憶體
- 記憶體管理兩部曲之實體記憶體管理記憶體
- SGA與共享記憶體2記憶體
- block沒那麼難(二):block和變數的記憶體管理BloC變數記憶體
- Large SGA On LinuxLinux
- 【記憶體管理】Oracle AMM自動記憶體管理詳解記憶體Oracle
- Oracle記憶體結構(一)----SGA的區域資訊Oracle記憶體
- 記憶體管理兩部曲之虛擬記憶體管理記憶體
- oracle 10g sga手動管理mmm 基於並行查詢parallel query如何配置large_pool_size大池Oracle 10g並行Parallel
- Specifying Database Block Sizes (91)DatabaseBloC
- 【記憶體管理】Oracle如何使用ASMM自動共享記憶體管理記憶體OracleASM
- 【JVM】JVM系列之記憶體模型(六)JVM記憶體模型