在Windows Server 2003 Enterprise 上如何讓oracle突破內存的限制

共享:在Windows Server 2003 Enterprise 上如何讓oracle突破內存的限制

在總結前人的基礎上,小弟寫了一篇關於“在Windows Server 2003 Enterprise 上如何讓oracle突破內存的限制”的文章,明天我將實踐操作,今天先發上來請各位指正一下:

32bit Windows上不能利用超過4G的內存,一般是2G的內存保留給進程,
2G內存保留給核心。在機器內存大於4GB的情況下,可以使用AWE(Address Windowing Extensions)擴大對內存的使用,但擴展的內存只能增加到data buffer中去使用。
具體設置步驟:
<一>.首先應卸載實例,關閉oracle服務:
C:/Documents and Settings/Administrator>sqlplus /nolog
SQL> conn/as sysdba
Connected
SQL>shutdown immediate;
關閉oracle服務:右擊我的電腦->管理->服務->OracleService<SID>->stop;

<二>.在操作系统上启动AWE:
打開我的電腦 -> 資料夾選項 -> 檢視 -> 選擇“顯示所有檔案和資料夾”,不“隱藏保護的作業系統檔案(建議使用)”及不“隱藏已知檔案類型的副檔名”,

打開C盤,找到boot.ini文件並打開,在啟動windows項中添加 /3GB /PAE 參數。修改過後的boot.ini內容:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)/WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)/WINDOWS="Windows Server 2003, Enterprise" /3GB /PAE /fastdetect /NoExecute=OptOut

<三>.在Oracle上启用AWE:
1.        在參數文件中設置參數:USE_INDIRECT_DATA_BUFFERS=TRUE
2.        在參數文件中不能使用DB_CACHE_SIZE參數,改用DB_BLOCK_BUFFERS參數,並根據data buffer大小和db_block_size值來設定該值,設data buffer大小為4G:
   db_block_size=4096
   db_block_buffers=1048576
   
<四>. AWE_WINDOW_MEMORY实现:
  (為便於敘述,將正常情況下應用程式可以使用的2G內存稱作普通內存,而將windows “讓”出來的1G內存和超過4G的內存稱作擴展内存。)
  AWE_WINDOW_MEMORY參數定義data buffers使用普通內存中多少內存作為緩存的大小。AWE_WINDOW_MEMORY的值需參考兩部分,其值應大於兩者的最大值:
   1.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)
SFCDB521數據庫中各參數如下:
CPU_COUNT = 4
DB_BLOCK_SIZE = 4096
Total RAM = 6GB
SETS_PER_POOL = 2 * CPU_COUNT = 8
_DB_BLOCK_LRU_LATCHES =(Max buffer pools * SETS_PER_POOL)= 8*8 =64 MIN(AWE_WINDOW_MEMORY)=(4096*DB_BLOCK_SIZE*_DB_BLOCK_LRU_LATCHES)/8 =( 4096 * 4096 * 64) / 8 = 134217728 bytes = 128MB
2.數據緩沖區的每一個塊的塊頭信息(大約800bytes)都將存放於普通內存中,不能存放於擴展內存中。如果此參數定義過小,導致緩沖區塊頭信息都不能存放,則可導致數據庫啟動失敗。
db_block_buffers=1048576
AWE_WINDOW_MEMORY= db_block_buffers * 800=838860800

綜上所述,在註冊表HKEY_LOCAL_MACHINE -> SOFTWARE -> ORACLE -> HOME0中添加一個二進制值,名稱為AWE_WINDOW_MEMORY ,值為838860800。

<五>.重新開啟數據庫
1.        開啟oracle服務:
 右擊我的電腦 -> 管理 -> 服務 -> OracleService<SID> -> start;
2.        加載實例:
C:/Documents and Settings/Administrator>sqlplus /nolog
SQL> conn/as sysdba
Connected
SQL>startup mount pfile=’xxxxxxx’;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值