1 前言 3
2 目的 3
3 ORACLE內(nèi)存結(jié)構(gòu)概述 3
4 常用參數(shù)說明 3
4.1 BUFFER_POOL_KEEP 4
4.2 CPU_COUNT 4
4.3 DB_BLOCK_BUFFERS 4
4.4 DB_BLOCK_SIZE 5
4.5 DB_FILE_MULTIBLOCK_READ_COUNT 5
4.6 GLOBAL_NAMES 5
4.7 INSTANCE_NAME 5
4.8 LICENSE_MAX_SESSIONS 5
4.9 LICENSE_MAX_USERS 6
4.10 LOG_BUFFER 6
4.11 OPEN_CURSORS 6
4.12 SERVICE_NAMES 6
4.13 SHARED_POOL_SIZE 6
4.14 SORT_AREA_SIZE 7
4.15 JAVA_POOL_SIZE 7
4.16 LARGE_POOL_SIZE 7
4.17 HASH_POOL_SIZE 7
4.18 SHARED_POOL_RESERVED_SIZE 7
4.19 SESSION_CACHED_CURSORS 8
4.20 CURSOR_SPACE_FOR_TIME 8
4.21 SGA_MAX_SIZE 8
4.22 SORT_AREA_RETAINED_SIZE 8
4.23 PGA_AGGREGATE_TARGET 8
4.24 WORKAREA_SIZE_POLICY 9
4.25 SQL_TRACE 9
4.26 TIMED_STATISTICS 9
4.27 DB_CACHE_SIZE 9
4.28 DB_KEEP_CACHE_SIZE 9
4.29 DB_RECYCLE_CACHE_SIZE 9
4.30 DB_FILE_MULTIBLOCK_READ_COUNT 10
4.31 DB_WRITER_PROCESSES 10
5 參數(shù)設(shè)置原則 10
5.1 SGA系統(tǒng)全局區(qū) 10
5.1.1 數(shù)據(jù)緩沖區(qū)(DB_BLOCK_BUFFERS) 10
5.1.2 共享池(SHARED_POOL_SIZE) 10
5.1.3 日志緩沖區(qū)(LOG_BUFFER) 11
5.1.4 JAVA池(JAVA_POOL_SIZE) 11
5.1.5 大池(LARGE_POOL_SIZE) 11
5.2 PGA程序全局區(qū) 11
5.2.1 分類區(qū)(SORT_AREA_SIZE)與哈希區(qū)(HASH_AREA_SIZE) 11
6 參數(shù)設(shè)置實例 11
1 前言
2 目的
3 ORACLE內(nèi)存結(jié)構(gòu)概述
內(nèi)存結(jié)構(gòu)=SGA(系統(tǒng)全局區(qū))+PGA(程序全局區(qū))
SGA就是我們所說的內(nèi)存調(diào)優(yōu)的主要對象。我們重點就是設(shè)置SGA
SGA包括:(包括以下五個區(qū))
數(shù)據(jù)緩沖區(qū):db_block_buffers
共享池: shared_pool_size
日志緩沖區(qū): log_buffer
JAVA池: Java_pool_size
大池: Large_pool_size
PGA包括:
分類區(qū): sort_area_size
哈希區(qū): hash_area_size
4 常用參數(shù)說明
Oracle 的parameter參數(shù),分動態(tài)參數(shù)和靜態(tài)參數(shù),靜態(tài)參數(shù)需要重新啟動數(shù)據(jù)庫才能生效,動態(tài)參數(shù)不需要重新啟動數(shù)據(jù)庫即可生效。
Oracle 9i可以使用spfile的特性,使用alter system set 參數(shù)名=參數(shù)值 scope=both[spfile];的方法進行修改。
以下給出了Oracle 數(shù)據(jù)庫重點關(guān)注的parameter的初始優(yōu)化設(shè)置。
靜態(tài)參數(shù)sga_max_size
Shared pool
動態(tài)參數(shù)shared_pool_size
靜態(tài)參數(shù)shared_pool_reserved_size
動態(tài)參數(shù)open_cursors
靜態(tài)參數(shù)cursor_space_for_time
靜態(tài)參數(shù)session_cached_cursors
Data buffer
動態(tài)參數(shù)db_cache_size
動態(tài)參數(shù)db_keep_cache_size
動態(tài)參數(shù)db_recycle_cache_size
(sga_max_size大小,除了分配給所有非data buffer的size,都分配給data buffer)
Sga other memory
動態(tài)參數(shù)large_pool_size
靜態(tài)參數(shù)java_pool_size
動態(tài)參數(shù)log_buffer
Other memory
動態(tài)參數(shù)sort_area_size
靜態(tài)參數(shù)sort_area_retained_size
靜態(tài)參數(shù)pga_aggregate_target
動態(tài)參數(shù)workarea_size_policy
磁盤I/O配置
靜態(tài)參數(shù)sql_trace
動態(tài)參數(shù)timed_statistics
動態(tài)參數(shù)db_file_multiblock_read_count
靜態(tài)參數(shù)db_writer_processes
靜態(tài)參數(shù)undo_management
動態(tài)參數(shù)undo_retention
4.1 BUFFER_POOL_KEEP
參數(shù)類型: 字符串
語法: BUFFER_POOL_KEEP = {integer |
(BUFFERS: integer [, LRU_LATCHES: integer] ) }
這里 integer是緩沖區(qū)數(shù),和LRU鎖存器的數(shù)
參數(shù)類: 靜態(tài)
默認值:無
BUFFER_POOL_KEEP 可以使你在DB_BLOCK_BUFFERS 下作為保留緩沖池來駐留對象。你也可以用分配一個LRU的一部分(用DB_BLOCK_LRU_LATCHES )
可以指定5種格式,比如簡單的:
BUFFER_POOL_KEEP = 5
或指定緩沖區(qū)的組合項和LRU鎖存器,如:
BUFFER_POOL_KEEP = (BUFFERS: 400 [, LRU_LATCHES:3] )
4.2 CPU_COUNT
參數(shù)類型: 整數(shù)
參數(shù)類: 靜態(tài)
默認值: 有Oracle系統(tǒng)自動設(shè)置
值的范圍:0 到 n
一般由Oracle安裝程序自動設(shè)置。CPU_COUNT指定CPU的個數(shù)。Oracle使用此參數(shù)設(shè)置LOG_SIMULTANEOUS_COPIES的默認值。單個CPU時CPU_COUNT為1。根據(jù)經(jīng)驗,你可以修改SIMULTANEOUS_COPIES 為CPU個數(shù)的兩倍。
4.3 DB_BLOCK_BUFFERS
參數(shù)類型: 整數(shù)
參數(shù)類: 靜態(tài)
默認值: 48MB/塊大小
值的范圍:4 到 操作系統(tǒng)允許的最大
并行服務(wù)器:多個實例可以有不同的值。
DB_BLOCK_BUFFERS 指定高速緩沖區(qū)的數(shù)目。由幾個參數(shù)一起構(gòu)成SGA的大小。
緩沖區(qū)的實際的大小與DB_BLOCK_SIZE參數(shù)有關(guān)。有效地使用這個參數(shù)可以改善I/O的性能。這個緩沖區(qū)的保留("keep")和再利用("recycle")是這個緩沖區(qū)變過來的。另外,緩沖區(qū)中的每個LRU列表至少包含50個緩沖區(qū)。因此,你必須指定合適的BUFFER_POOL_KEEP 和 BUFFER_POOL_RECYCLE,確保BLOCK_BUFFERS符合下面公式:
DB_BLOCK_BUFFERS > #_buffers_in_"keep"_buffer_pool
+ #_BUFFERS_IN_"recycle"_pool
+ 50*(DB_BLOCK_LRU_LATCHES
- #_lru_latches_in_"keep"_buffer_pool
- #_lru_latches_in_"recycle"_buffer_pool)
如果你沒有在BUFFER_POOL_KEEP和BUFFER_POOL_中指定任何LRU,則LRU默認為1。
注意:在oracle9i以上版本,該參數(shù)已被db_cache_size代替了,所以該參數(shù)在oracle9i以上版本默認為0。我們不用設(shè)置它。
4.4 DB_BLOCK_SIZE
參數(shù)類型: 整數(shù)
參數(shù)類: 靜態(tài)
默認值: 與操作系統(tǒng)有關(guān),通常為8k
值的范圍:2k,8k,16k,32k
并行服務(wù)器:必須設(shè)置所有的實例有相同的數(shù)據(jù)塊。
4.5 DB_FILE_MULTIBLOCK_READ_COUNT
參數(shù)類型: 整數(shù)
參數(shù)類: 動態(tài),范圍= ALTER SYSTEM, ALTER SESSION.
默認值: 8
值的范圍:與操作系統(tǒng)有關(guān)
在掃描表時一次讀的最小的數(shù)據(jù)塊數(shù)目。在OLTP和批處理事務(wù)中,此參數(shù)可以是4到16。對于DSS類型應(yīng)用,可以設(shè)置高些。
4.6 GLOBAL_NAMES
參數(shù)類型: 布爾型
參數(shù)類: 動態(tài),范圍 = ALTER SESSION, ALTER SYSTEM.
默認值: TRUE
值的范圍:TRUE | FALSE
用于知單數(shù)據(jù)庫全局名稱。如果是分布環(huán)境,要將此參數(shù)設(shè)置為TRUE。
4.7 INSTANCE_NAME
參數(shù)類型: 字符型
語法:INSTANCE_NAME = instance_id
參數(shù)類: 靜態(tài)
默認值: 實例的SID
指定數(shù)據(jù)庫實例的名字,在安裝創(chuàng)建完成后此參數(shù)已經(jīng)設(shè)置好,用戶一般不用設(shè)置此參數(shù)。
4.8 LICENSE_MAX_SESSIONS
參數(shù)類型: 整數(shù)型
參數(shù)類: 動態(tài) ,范圍= ALTER SYSTEM
默認值: 0 到 許可的數(shù)
并行服務(wù)器: 多個實例可以有不同的值,但是所有實例的會話數(shù)之和應(yīng)該等于所有數(shù)據(jù)庫允許的會話總數(shù)。當會話達到最大值時,只有具有RESTRICTED_SESSION權(quán)限的用戶才能進行登錄到數(shù)據(jù)庫。而一般的用戶會得到提示信息。0 值表示當前的會話不受限制。如果 設(shè)置為非0的話,還要參考 LICENSE_SESSIONS_WARNING參數(shù)。
如果不希望使能使用許可和用戶許可,可以設(shè)置 LICENSE_MAX_SESSIONS 或LICENSE_MAX_USERS 任何一個為0即可。
4.9 LICENSE_MAX_USERS
參數(shù)類型: 整數(shù)型
參數(shù)類: 動態(tài) ,范圍= ALTER SYSTEM
默認值: 0
值范圍: 0 到 用戶許可數(shù)
并行服務(wù)器: 多個實例有相同的值。如果指定了不同的值,則第1個實例的值優(yōu)先。
LICENSE_MAX_USERS 指定數(shù)據(jù)庫可以建立的用戶數(shù)目,如果達到這個值,將不能再創(chuàng)建更多的用戶。當然你可以加大這個值。
|
|