oracle SGA配置和管理
Oracle對記憶體的管理的 最佳化從未間斷,從8i到11g不斷地提出新的管理概念。每個本版都對記憶體管理進行了簡化:
8i->9i:PGA的自動管理;
9i->10g:SGA的自動管理;
10g->11g:MEMORY(SGA+PGA)的自動管理。
在11g中oracle引入了自動化記憶體管理(Automatic Memory Management)概念,僅用兩個引數就能完成oracle的記憶體管理工作。
自動記憶體管理:
從9i開始,sga_max_size引數設定SGA 的記憶體大小,不能動態修改
從10g開始,指定了sga_target引數後,所有的SGA元件如:shared pool、 data buffer、 large pool都不用手工指定了,Oracle會自動管理。這一特性就是自動共享記憶體管理ASMM。如果設定了sga_target=0,就自動關閉自動共享內 存管理功能。Sga_target大小不能超過sga_max_size的大小。
手動管理SGA:
Alter system set sga_target=2000m;
Alter system set db_cache_size=1000m;
Alter system set shared_pool=200m;
Alter system set sga_target=0---------關閉自動共享記憶體管理ASMM
11G以後sga+pga整個記憶體可以自動管理AMM,相關 引數memory_max_target memory_target.設定好這兩個引數後就不用關心SGA和PGA了
11g手動記憶體管理:
Alter system set memory_target=3000m;
Alter system set sga_target=2000m;
Alter system set pga_aggregate_target=1000m;
Alter system set memory_target=0;---------關閉自動記憶體管理AMM
SGA+PGA最好不要超過總記憶體的70%
檢視SGA區剩餘可用記憶體的方法
SQL> col OBJECT_NAME format a20
SQL> col 自由空間百分比(%) format 90.99 --格式化,把小數點對齊為兩位
SQL> select name,
sgasize/1024/1024 "Allocated(M)",
bytes/1024 "自由空間(K)",
round(bytes/sgasize*100, 2) "自由空間百分比(%)"
from (select sum(bytes) sgasize from sys.v_$sgastat) s, sys.v_$sgastat f
where f.name = 'free memory';
NAME Allocated(M) 自由空間(K) 自由空間百分比(%)
-------------------------- ------------ ----------- -----------------
free memory 54.4491119 11619.457 20.84
free memory 54.4491119 600 1.08
free memory 54.4491119 17788 31.90
在考慮設定oracle會話數的時候,有一個基本原則,oracle支援CPU個數的5-10倍的活動會話(Active)
這樣情況下oracle的處理能力比較理想
需要根據觀察oracle的活動會話情況調整應用服務的JDBC連線設定
如weblogic中JDBC的連線數設定並不是大越好,最好不要初始值等於最大值,初始值太大會造成oracle的活動會話多,會影響oracle的效能,合適的JDBC初始連線數是較好的
shared_pool_size=135000000
db_cache_size=400000000
large_pool_size=70000000
java_pool_size=16000000
sort_area_size=1048576
SGA_MAX_SIZE=750000000
SGA_TARGET=750000000
pga_aggregate_target=360000000
hash_area_size=1100000
processes=400
open_cursors=3000
主要是SGA、PGA、共享池(shared_pool_size)、緩衝池(db_cache_size)、大型池(large_pool_size)、JAVA池(java_pool_size)
還有processes、open_cursors
SGA=30%-40%實體記憶體
PGA=50%SGA
共享池=20%SGA
緩衝池=50%SGA
大型池=10%SGA
JAVA池=2%SGA
緩衝池>共享池
設定為歸檔模式
SQL> shutdown immediate
SQL> startup mount
SQL> alter database archivelog;
SQL> alter database open;
調整引數
SQL> alter system set processes=800 scope=spfile;
系統已更改。
SQL> alter system set open_cursors=5000 scope=spfile;
系統已更改。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22036495/viewspace-1058784/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 變更oracle 11.2.0.3 rac sga自動管理為sga手工管理Oracle
- ORACLE 記憶體管理 之四 SGAOracle記憶體
- 變更oracle 11.2.0.3 rac sga手工管理為sga及pga全自動管理Oracle
- SGA和PGA記憶體管理記憶體
- oracle sga配置相關的os 核心引數Oracle
- Oracle 10g SGA 的自動化管理Oracle 10g
- oracle10g sga手工管理mmm之一Oracle
- oracle10g在sga手工管理mmm模式如何配置大池large_pool_size(一)Oracle模式
- oracle sga相關Oracle
- oracle sga構成Oracle
- 開啟oracle 10g的sga自動管理-ammOracle 10g
- oracle10g sga自動管理amm(補充一)Oracle
- oracle 10g sga自動管理amm(補充二)Oracle 10g
- Oracle 體系結構 SGA 和PGA 總結Oracle
- show sga和show parameter sga的區別
- 自動SGA共享記憶體管理,ASMM,MMAN,sga_target,sga_max_size記憶體ASM
- ORACLE 記憶體管理 之六 SGA Multiple Block Sizes,Large PoolOracle記憶體BloC
- oracle10g SGAOracle
- ORACLE SGA 的分配(轉)Oracle
- oracle例項記憶體(SGA和PGA)調整Oracle記憶體
- oracle資料庫記憶體分配(sga和pga)Oracle資料庫記憶體
- ORACLE RAC GUARD配置引數——RAC GUARD概念和管理Oracle
- Oracle DG管理Broker配置Oracle
- 修改資料庫的ORACLE的SGA和PGA的值資料庫Oracle
- ORACLE SGA之shared poolOracle
- oracle 92 修改sga過程Oracle
- Oracle SGA中的Granule(粒度)Oracle
- 為ORACLE RAC GUARD配置網路——RAC GUARD概念和管理Oracle
- Oracle listener log配置與管理Oracle
- ORACLE RAC SGA引數調整Oracle
- oracle10g 修改 sga pgaOracle
- ORACLE SGA與共享內聯絡Oracle
- oracle 重設定sga_targetOracle
- FTP的配置和管理FTP
- oracle 10g sga手動管理mmm 基於並行查詢parallel query如何配置large_pool_size大池Oracle 10g並行Parallel
- 查詢SGA和PGA大小
- ORACLE RAC 記憶體SGA,PGA配置超過300G的問題Oracle記憶體
- ORACLE user profile配置/管理/維護Oracle