WINDOWS平台上擴充SGA–轉載itpub

來源:互聯網
上載者:User
WINDOWS平台上擴充SGA
針對32bit的Windows。Windows2000上不能利用超過4G的記憶體,一般是2G的記憶體保留給進程,2G記憶體保留給核心的。在Windows2000 Advanced Server上可以分配3G給進程,1G留給核心的。
1. 如果機器的記憶體在4G以下,可以使用Physical Address Extensions(PAE)或者是Address Windowing Extensions(AWE)進行擴充,如果機器記憶體大於4GB就只能使用AWE進行擴充了。
AWE支援以下的Windows作業系統:
Windows 2000 Datacenter Server
Windows 2000 Advanced Server
Windows 2003 Datacenter Edition(32bit)
Windows 2003 Enterprise Edition(32bit)
AWE不支援以下的Windows作業系統:
Windows 2000 Server(Standard)
Windows2000 Professional
Windows XP Home Edition
Windows XP Professional
Windows 2003 Standard Edition
Windows 2003 Web Edition
AWE支援的Oracle資料庫的版本:
Oracle 8.1.6.X
Oracle 8.1.7.X
Oracle 9.2.X
AWE不支援Oracle9.0.1.X
在標準版的Oracle9.2.0.1上,如果你設定了use_indirect_data_buffers=true,啟動就會報錯:
ORA-439-feature not enabled:very large memory.
這個是標準版的Oracle的9.2.0.1的一個bug(#2520796),在Oracle9.2.0.2中解決了。
2. 在作業系統上啟動AWE
AWE在作業系統上可以通過在boot.ini檔案中加/PAE切換啟用。
例如:
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows 2000 Advanced Server" /PAE
也可以同時使用/PAE和/3G在同一台機器上,例如:
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows 2000 Advanced Server" /3GB /PAE
但是同時使用記憶體最到能夠支援到16G,如果用使用16G以上的記憶體,則必須選擇其中的一種使用了。
3. 在Oracle上啟用AWE
首先要在啟動的參數檔案中設定參數
USE_INDIRECT_DATA_BUFFERS=TRUE
如果設定了這個參數,對於Oracle9.2.0的版本則不能再使用DB_CACHE_SIZE參數了,只能使用DB_BLOCK_BUFFERS參數。
擴充的記憶體只能增加到BUFFER CACHE中去使用,因此只能增大DB_BLOCK_BUFFERS這個參數去擴充SGA區。
4. AWE_WINDOW_MEMORY實現故障解決
在Oracle8.1.7版本以下啟動資料庫的時候不用設定AWE_WINDOW_MEMORY的最小值,而在Oracle9.2.0的版本中則強制要設定AWE_WINDOW_MEMORY的最小值,這個最小值在Oracle8.1.7中通過DB_BLOCK_LRU_LATCHES參數設定,在Oracle9.2.0中則通過_DB_BLOCK_LRU_LATCHES隱含參數設定,Oracle9.2.0的AWE_WINDOW_MEMORY的最小值由以下的公式計算:
MIN(AWE_WINDOW_MEMORY)=(4096 * DB_BLOCK_SIZE * _DB_BLOCK_LRU_LATCHES)/8
_DB_BLOCK_LRU_LATCHES = (Max buffer pools * SETS_PER_POOL)
Max Buffer Pools是個常量,等於8,SETS_PER_POOL是個變數,它的大小由是否啟用VLM(即設定USE_INDIRECT_DATA_BUFFERS=TRUE參數)決定:
SETS_PER_POOL = 2* CPU_COUNT (啟用 VLM)
SETS_PER_POOL= CPU Count /2 (不啟用VLM)
例如:
CPU's = 16
DB_BLOCK_SIZE = 8192
Total RAM = 16 GB
SETS_PER_POOL = 2 * CPU_COUNT = 32
_DB_BLOCK_LRU_LATCHES = (max buffer Pools * sets_per_pool) = 8*32 = 256 MIN(AWE_WINDOW_MEMORY)=(4096*DB_BLOCK_SIZE*_DB_BLOCK_LRU_LATCHES)/8 =( 4096 * 8192 * 256) / 8 = 1073741824 bytes = 1024 MB
這樣在Windows的註冊表中的HKLM\Software\Oracle\Homex下的AWE_WINDOW_MEMORY值至少是1024M,否則就會提示錯誤:
ORA-27102 out of memory
OSD-00034 Message 34 not found; Product=RDBMS;facility =SOSD
O/S Error: (OS 8) Not enough storage is available to process this command

出處: http://www.itpub.net/showthread.php?s=&threadid=124424&perpage=10&pagenumber=1

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.