初識oracle SGA之引數設定
初識oracle SGA之引數設定
SGA(system global area 系統全域性區):用來存放操作的資料(Buffer Cache Size)、
庫快取(library cache)、資料字典(data dictionary cache)等控制資訊的記憶體區域
SGA中的記憶體大多數是共享的。
SGA中至少存在以下三個元件:
■ The database buffer cache
■ The log buffer
■ The shared pool
以下是可選的元件:
■ A large pool
■ A Java pool
■ A Streams pool
The Shared Pool(共享池):
共享池是SGA中最複雜的元件,可以劃分為幾十個子結構。
其中一下幾個元件比較重要
■ The library cache
■ The data dictionary cache
■ The PL/SQL area
■ The SQL query and PL/SQL function result caches
oracle 提供了多個初始化引數,來設定SGA中各個部分的記憶體大小
SQL> show parameter shared_pool_size;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
shared_pool_size big integer 244M
控制共享池的大小,例項執行期間可以動態調整
SQL> show parameter java_pool_size;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
java_pool_size big integer 52M
控制JAVA池的大小,例項執行期間可以動態調整
SQL> show parameter large_pool_size;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
large_pool_size big integer 60M
控制大池的大小,例項執行期間可以動態調整
SQL> show parameter streams_pool_size;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
streams_pool_size big integer 0
控制流池的大小,例項執行期間可以動態調整
SQL> show parameter db_cache_size;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_cache_size big integer 160M
控制資料緩衝區的大小,例項執行期間可以動態調整
SQL> show parameter log_buffer;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_buffer integer 5603328
控制日誌緩衝區的大小,該引數在執行期間是不能修改的。
SQL> show parameter sga_target;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
sga_target big integer 0
與SGA的自動管理相關,如果值是零,需要DBA手動管理SGA
SQL> show parameter sga_max_size;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
sga_max_size big integer 524M
SGA可以使用的最大記憶體,sga_target的值不能超過sga_max_size,在為SGA中個部分組成
分配記憶體時,SGA的總記憶體不能超過sga_max_size設定的值,否則會報錯。sga_max_size
在例項執行期間不能夠動態調整,必須先修改初始化引數檔案,然後重啟例項。
sga_max_size引數僅在例項執行期間有效,如果例項啟動時發現SGA各部分組成的引數值
總和大於sga_max_size,例項會忽略當前設定的sga_max_size值,並修改sga_max_size為
當前SGA的最大值。
SQL> show parameter statistics_level;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
statistics_level string TYPICAL
該值與SGA記憶體的自動管理相關,值為typical或者all的時候oracle會根據會更加收集到的
相關統計資訊作為參照,確定如何分配SGA中的各部分記憶體。
oracle SGA中的各部分記憶體都是以粒度進行分配與回收。粒度的大小不能由DBA設定,取決
與SGA的大小,系統平臺的型別。
在大多數平臺下SGA<1G 粒度是4MB,SGA>1G 粒度是16MB。
在win32平臺下,SGA>1G,粒度是8MB。
設定oracleSGA中各部分的值時,需要時oracle 粒度的整倍數,否則oracle會自動進行調整
SQL> select component,granule_size
2 from v$sga_dynamic_components;
COMPONENT GRANULE_SIZE
---------------------------------------------------------------- ------------
shared pool 4194304
large pool 4194304
java pool 4194304
streams pool 4194304
DEFAULT buffer cache 4194304
KEEP buffer cache 4194304
RECYCLE buffer cache 4194304
DEFAULT 2K buffer cache 4194304
DEFAULT 4K buffer cache 4194304
DEFAULT 8K buffer cache 4194304
DEFAULT 16K buffer cache 4194304
DEFAULT 32K buffer cache 4194304
Shared IO Pool 4194304
ASM Buffer Cache 4194304
14 rows selected
oracle SGA中各部分組成粒度值的檢視。
SQL> select name,bytes from v$sgainfo;
NAME BYTES
-------------------------------- ----------
Fixed SGA Size 1375820 儲存資料庫與例項的狀態資訊
Redo Buffers 5795840
Buffer Cache Size 167772160
Shared Pool Size 255852544
data dictionary cache 62914560
Java Pool Size 54525952
Streams Pool Size 0
Shared IO Pool Size 0
Granule Size 4194304
Maximum SGA Size 548237312
Startup overhead in Shared Pool 58720256
Free SGA Memory Available 0
SGA中各部分記憶體分配情況檢視。
SQL> select * from v$sga;
NAME VALUE
-------------------- ----------
Fixed Size 1375820
Variable Size 373293492 包括共享池,大池,java池,流池幾個組成部分。
Database Buffers 167772160 資料緩衝區(Buffer Cache Size)
Redo Buffers 5795840
SGA中各部分記憶體分配情況檢視。
SGA中各個部分所使用的記憶體只能供自己使用,相互之間無法共享。如果Java Pool分配了
1G的記憶體,但是當前資料庫並沒有運用流特性,分配給流池的空間也不能被SGA中的其他
元件使用。所以使用alter system set 設定SGA中各部分組成的記憶體的時候,需要謹慎
設定以免導致系統記憶體的浪費,效能損耗。
SQL> show parameter shared_pool_size;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
shared_pool_size big integer 244M
SQL> alter system set shared_pool_size=230m;
System altered
SQL> show parameter shared_pool_size;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
shared_pool_size big integer 232M
oracle自動根據粒度調整為粒度(此處是4MB)進行調整。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26110315/viewspace-715721/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ORACLE RAC SGA引數調整Oracle
- python初識引數Python
- ORACLE JOB INTERVAL引數設定Oracle
- oracle 重設定sga_targetOracle
- oracle sga配置相關的os 核心引數Oracle
- Oracle CSS的引數設定 心跳時間設定OracleCSS
- ORACLE COL SET 設定顯示引數Oracle
- oracle 安裝相關引數設定Oracle
- Oracle歸檔引數設定問題Oracle
- oracle 10g中的SGA_MAX_SIZE與SGA_TARGET引數Oracle 10g
- Data Guard 學習之引數設定
- oracle中設定UTL_FILE_DIR引數Oracle
- Oracle歸檔模式、引數意義、設定Oracle模式
- Oracle安裝時shmmax引數的設定OracleHMM
- Oracle初始化引數設定new(轉)Oracle
- 【引數】使用lock_sga和pre_page_sga引數保證SGA常駐實體記憶體記憶體
- Oracle效能最佳化經驗分享之系統引數設定(轉)Oracle
- Oracle9.2.0.4 RAC 三節點引數設定Oracle
- oracle中引數session和 processes的設定(轉)OracleSession
- oracle安裝由於sga設定大報錯Oracle
- pre_page_sga引數總結
- vsftpd設定引數FTP
- RAC 特定引數設定
- 兩個引數設定
- oracle實驗記錄 (oracle 關於instance引數設定)Oracle
- 【ASK_ORACLE】LOCK_SGA引數失效的解決辦法Oracle
- Oracle 11g 關於 AWR 的引數設定Oracle
- oracle 8i的記憶體引數設定Oracle記憶體
- (轉)redhat下安裝oracle,設定redhat核心引數RedhatOracle
- Oracle在各類操作上LOCK_SGA的設定Oracle
- [轉]32位Linux設定超大Oracle SGA的分析LinuxOracle
- oracle 11g 啟用自動記憶體管理時sga_max 這個引數設定的意義不大Oracle記憶體
- mysql引數之innodb_buffer_pool_size大小設定MySql
- ORACLE SGA之shared poolOracle
- Metasploit設定LHOST引數技巧
- Metasploit設定VERBOSE引數技巧
- pandas引數設定小技巧
- Metasploit設定HttpTrace引數技巧HTTP