一,設(shè)置SGA的原則: 有時候會碰到在配置SGA中出現(xiàn)了問題,由于分配的內(nèi)存過多,數(shù)據(jù)庫啟不起來了。 而且還要注意,在WINDOWS平臺下,32位的操作系統(tǒng),SGA分配不能超過1.8G,64位的扛得住一些,所以我的數(shù)據(jù)庫服務(wù)器換成64位的WINDOWS2003了。 內(nèi)存結(jié)構(gòu)=SGA(系統(tǒng)全局區(qū))+PGA(程序全局區(qū)) SGA:是用于存儲數(shù)據(jù)庫信息的內(nèi)存區(qū),該信息為數(shù)據(jù)庫進(jìn)程所共享。它包含Oracle 服務(wù)器的數(shù)據(jù)和控制信息,它是在Oracle服務(wù)器所駐留的計算機(jī)的實(shí)際內(nèi)存中得以分配,如果實(shí)際內(nèi)存不夠再往虛擬內(nèi)存中寫 我們重點(diǎn)就是設(shè)置SGA,理論上SGA可占OS系統(tǒng)物理內(nèi)存的1/2——1/3 原則:SGA+PGA+OS使用內(nèi)存 <總物理RAM SGA=((db_block_buffers*blocksize)+(shared_pool_size+large_pool_size+java_pool_size+log_buffers)+1MB 1、SGA系統(tǒng)全局區(qū).(包括以下五個區(qū)) A、數(shù)據(jù)緩沖區(qū):(db_block_buffers)存儲由磁盤數(shù)據(jù)文件讀入的數(shù)據(jù)。 大小: db_block_buffers*db_block_size Oracle9i設(shè)置數(shù)據(jù)緩沖區(qū)為:Db_cache_size 原則:SGA中主要設(shè)置對象,一般為可用內(nèi)存40%。 B、共享池:(shared_pool_size):數(shù)據(jù)字典,sql緩沖,pl/sql語法分析.加大可提速度。 原則:SGA中主要設(shè)置對象,一般為可用內(nèi)存10% C、日志緩沖區(qū):(log_buffer)存儲數(shù)據(jù)庫的修改信息. 原則:128K ---- 1M 之間,不應(yīng)該太大 D 、JAVA池(Java_pool_size)主要用于JAVA語言的開發(fā). 原則:若不使用java,原則上不能小于20M,給30M通常就夠了 E、 大池(Large_pool_size) 如果不設(shè)置MTS,主要用于數(shù)據(jù)庫備份恢復(fù)管理器RMAN。 原則:若不使用MTS,5---- 10M 之間,不應(yīng)該太大 SGA=. db_block_buffers*db_block_size+ shared_pool_size+ log_buffer+Java_pool+size+large_pool_size 原則: 達(dá)到可用內(nèi)存的55-58%就可以了. 2、PGA程序全局區(qū) PGA:包含單個服務(wù)器進(jìn)程或單個后臺進(jìn)程的數(shù)據(jù)和控制信息,與幾個進(jìn)程共享的SGA 正相反PGA 是只被一個進(jìn)程使用的區(qū)域,PGA 在創(chuàng)建進(jìn)程時分配在終止進(jìn)程時回收. A、Sort_area_size 用于排序所占內(nèi)存 B、Hash_area_size 用于散列聯(lián)接,位圖索引 這兩個參數(shù)在非MTS下都是屬于PGA ,不屬于SGA,是為每個session單獨(dú)分配的,在我們的服務(wù)器上除了OS + SGA,一定要考慮這兩部分 原則:OS 使用內(nèi)存+SGA+并發(fā)執(zhí)行進(jìn)程數(shù)*(sort_area_size+hash_ara_size+2M) < 0.7*總內(nèi)存 實(shí)例配置 一:物理內(nèi)存多大 二:操作系統(tǒng)估計需要使用多少內(nèi)存 三:數(shù)據(jù)庫是使用文件系統(tǒng)還是裸設(shè)備 四:有多少并發(fā)連接 五:應(yīng)用是OLTP 類型還是OLAP 類型 基本掌握的原則是, db_block_buffer 通常可以盡可能的大,shared_pool_size 要適度,log_buffer 通常大到幾百K到1M就差不多了 例如: 內(nèi)存2G 單個CPU db_block_size 是8192 bytes SGA=0.55*2048M=1126.4M左右 建議 shared_pool_size = 200M , db_block_buffer *db_block_size = 800M 具體: shared_pool_size=209715200 #200M db_block_buffer=103192 #800M log_buffer = 131072 # 128k (128K*CPU個數(shù)) large_pool_size= 31457280 #30M java_pool_size = 20971520 # 20 M sort_area_size = 524288 # 512k (65k--2M) sort_area_retained_size = 524288 # MTS 時 sort_area_retained_size = sort_area_size 二,修改SGA的大?。?/p> 1.sga_target不能大于sga_max_size,可以設(shè)置為相等。 然后 方法二:通過EM修改: 文章出處:http://www./course/7_databases/oracle/Oracleshl/200866/123114.html
cmd下部分操作:,oracle10.2.0g SQL>conn sys/rezin as sysdba TotalSystem Global Area 1073741824 bytes TotalSystem Global Area 1073741824 bytes ---原來大小 系統(tǒng)已更改。 SQL>alter system set sga_max_size=280m scope=spfile; 系統(tǒng)已更改。 SQL>shutdown immediate TotalSystem Global Area 314572800 bytes ---修改后的大小 |
|