oracle mysql内存_ORACLE大内存配置

本文实例以8G内存的服务器,分配给ORACLE的DB_BLOCK_BUFFERS为6G)

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

u如果设置了这个参数,对于Oracle9.2.0的版本则不能再使用DB_CACHE_SIZE参数了,只能使用DB_BLOCK_BUFFERS参数。

u扩展的内存只能增加到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

5.实例(HP DL360 ProLiant G7 8G内存)

1)设置注册表

LOCAL_MACHINE/SOFTWARE/ORACLE/HOME0中增加字符项"AWE_WINDOW_MEMORY"值设为"1073741824"(1G)

2)backup L:\TESTDB\SPFILESOP.ORA

Oracle的数据文件安装在L:\TESTDB并且数据库的启动参数也保存在L:\TESTDB

3)备份现在正在使用的spfile

在CMD命令下执行以下命令:

Sqlplus /nolog

Conn / as sysdba

Create pfile=’d:/bk.ora’ from spfile;

4)修改ORACLE的spfile值

在数据库打开时,在sqlplus下执行以下命令:

Alter system set use_indirect_data_buffers=true scope=spfile;

Alter system set pre_page_sga=true scope=spfile;

Alter system set db_block_buffers=786432 scope=spfile;

(1G的DB_BLOCK_BUFFERS为131072(DB_BLOCK_SIZE为8K,1024K*1024/8=131072)修改完成后,SGA的大小为db_block_size* db_block_buffers=8k*786432=5242880K,5242880K/1024/1024=6G)

5)修改完spfile之后,要把spfile中的db_cache_size参数注释掉。

先导出spfile:

Create pfile=’d:/modify.ora’ from spfile;

然后用记事本打开D盘下面的MODIFY.ORA文件,找到db_cache_size并注释掉(在行首加上井号#),完成之后把修改好的pfile导回入spfile;

在sqlplus下关闭数据库并导回spfile:

Shutdown immediate;

Create spfile from pfile=’d:/modify.ora’;

Exit;

备注:如果4)和5)方法没有成功,尝试下面的方法

create pfile='d:\backup\old.ora' from spfile;

alter system set "_db_block_lru_latches"=32 scope=spfile;

alter system reset db_cache_size scope=spfile sid='*';

alter system reset sga_max_size  scope=spfile sid='*';

alter system set lock_sga=false scope=spfile;

alter system set db_block_buffers=786432 scope=spfile;

alter system set use_indirect_data_buffers=true scope=spfile;

create pfile='d:\backup\new.ora' from spfile;

6)覆盖数据库自定义SPFILE(数据库默认的SPFILE位置为ORACLE_HOME\DATABASE)

Move D:\oracle\ora92\database\SPFILESOP.ORA to L:\TESTDB and overwirte spfilesop.ora

7)重启服务器,搞定。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值