怎么扩大oracle内存 oracle数据库内存调整之增加内存

在虚拟系统中安装oracle时怎么增加物理内存对于虚拟机怎么扩大oracle内存的物理内存怎么扩大oracle内存的添加怎么扩大oracle内存,首先必须关掉虚拟机,
然后选择虚拟机的设置-在里面有一个Physical
Memory(或者中文:内存),在这里就可以调整虚拟机的物理内存 。但注意别调到超过你电脑的内存数量
有问题追问或者百度Hi我都行
Oracle 10g安装过后怎样调整内存分配大小ORACLE 10g的话看你是否使用ASMM(自动共享内存管理,11g就是AMM了),如果是的话 , 就设置参数:sga_target、pga_aggregate_target两个参数就O了,至于比例看系统,OLTP系统前者设计大一点,占用整个INSTANCE百分之六七十比较正常,OLAP的时候SGA没有必要要那么大了 。
不过你要自己设置每一个细节参数的话,就将上述参数设置为0就会自动关闭ASMM(对应进程MMAN,10g和11g没有变化都是这个进程),然后一般设置一下参数:
1、数据缓冲区:
db_cache_size数据缓冲区DEFAULT区域大小 , 也是默认的大小
db_keep_cache_size数据缓冲区keep区域大小,几乎不会被替换掉的内存区
db_recycle_cache_siez数据recycle区域大小,几乎用完就回收掉的内存区
2、共享池
shared_pool_size
内部保存SQL信息、数据字典、控制信息,其实这部分最好不用自己去控制,它自己管理就行 。里面有个参数:shared_pool_reserved_size适当的时候也可以配置一下 。
如果你要用rman相关的东西,要配置一下大池,如果没有JAVA PROD在ORACLE内部 , JAVA池几乎无用,做Stream复制,就设置一下stream池 。
PGA一般设置一个最大值就行,内部它一般自己去调节(PGA内部一般有一段内存和一些后台进程组成),分专用模式还是共享模式的区别(MTS系统中),内部有些细节参数会根据CPU去配置的(如DBWR最多可以20个,最少是1个,可根据CPU的个数设置,但是一个INSTANCE最多20个),另外可以设置内部的SORT_AREA_SIZE、hash_area_size等等用于用户进程查询时产生的内存开销(超过这个值就会到临时表空间去做了) ,
如何使oracle的SGA在32位的操作系统下超出2G?Win2003 :
由于32位的CPU的在windows系统中2G给系统用2G给应用程序使用,如系统及oracle参数不作修改时,oracle的SGA内存使用不能超过1.7G , 所以要对一些进行windos
ows和oracle参数据进行修改,大致有以下几步:一 windows 上的参数据修改:
1. 修改boot.ini文件,加/3GB /PAE:
在这行 , multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows" /3GB /PAE2.修改windows 注册表:
regedit到HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0 这个目录中找到AWE_WINDOW_MEMORY这个参数,将其修改为oracle需要内存的大小:例如:6G时为:6*1024*1024*1024
这个参数如不存大时 , 可以新建一个字符串名为AWE_WINDOW_MEMORY,值为上面讲过的大小,这个值需要足够大,不够时将报:
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
3.修改windows控制面板中的管理工具--域安全策略-- 本地安全策略 --锁定内存页 中加入启oracle数据库的OS用户名.
二 ORACLE数据库中要改的参数:
1.在改参数之前最好能先备份一个spfile到pfile 文件以防数据库修改失败时可以从这个参数文件在启动数据库: create pfile='d:\inittest.ora' from spfile;2.主要修改的参数为:
_db_block_lru_latches --这个参数据大小为=CPU数*2*8
取消参数据:db_cache_size,sga_max_size
db_block_buffers
USE_INDIRECT_DATA_BUFFERS=TRUE
SQL shutdown immediate;
数据库已经关闭 。
已经卸载数据库 。
ORACLE 例程已经关闭 。
SQL startup
ORACLE 例程已经启动 。Total System Global Area 1008280152 bytes
Fixed Size455256 bytes
Variable Size478150656 bytes
Database Buffers528482304 bytes
Redo Buffers1191936 bytes
数据库装载完毕 。
数据库已经打开 。
SQL alter system set "_db_block_lru_latches"=128 scope=spfile;系统已更改 。SQL alter system reset db_cache_size scope=spfile sid='*';系统已更改 。SQL alter system set lock_sga=false scope=spfile;系统已更改 。SQL alter system set db_block_buffers=1179648 scope=spfile;系统已更改 。SQL alter system set use_indirect_data_buffers=true scope=spfile;系统已更改 。SQL create pfile='d:\init2.ora' from spfile;文件已创建 。SQL shutdown immediate;
数据库已经关闭 。
已经卸载数据库 。
ORACLE 例程已经关闭 。可以通过OEM来修改PGA,shared pool这些内存大小
SQL startup
ORACLE 例程已经启动 。Total System Global Area 7516192768 bytes
Fixed Size455256 bytes
Variable Size478150656 bytes
Database Buffers3528482304 bytes
Redo Buffers1191936 bytes
数据库装载完毕 。
数据库已经打开 。
Linux
有不少用户认为在32位Linux,只能设置约1.7GB的Oracle SGA 。也有不少用户在不同的Linux发行版中使用相同的配置过程,获得了不同的SGA最大值,便认为某些Linux发行版存在问题 。这些想法都比较片面 。实际上 32位Linux上Oracle SGA 的容量取决于三个指标,即:Linux kernel 版本、Oracle Database 版本、Linux 内核参数shmmax 。这里跟据一些网上文章做了些查正,做一些分析吧 。一、内核版本的影响在32位Linux平台,至少都有两套内核供用户使用 。一个是smp核心,一个是hugemem核心 。两个核心的区别在于直接映射的内核数据代码地址空间的区别:SMP 核心:在x86架构下,虚拟地址空间的大小为4G 。在这4G空间中,用户空间占3G (0×00000000到0xbfffffff),核心空间占1G(0xc0000000到0xffffffff) 。这样的分配策略称为3G/1G分配 。具体的分配方式如下:1. 0GB-1GB User space - Used for text/code and brk/sbrk allocations (malloc uses brk for small chunks)2. 1GB-3GB User space - Used for shared libraries, shared memory, and stack; shared memory and malloc use mmap (malloc uses mmap for large chunks)3. 3GB-4GB Kernel Space - Used for the kernel itself这种分配方式对于拥有1G物理内存以下的系统是没有任何问题的,即使超过1G物理内存,3G/1G分配策略也没有什么问题,因为内核可以在高端内存区域 (物理地址1G以上的内存)中存放一些内核数据结构(比如页缓冲等) 。然而,随着物理内存的增多,3G/1G分配策略的问题也逐渐会暴露出来 。这是因为一些关键的内核数据结构 (比如用于管理物理内存的mem_map[]) 是存放在1G核心空间之内的 。对于32G内存的系统,mem_map[]会占用近 0.5G的低端内存(物理地址896M以下的内存),这样留给核心其他部分的内存就不到所有内存的1.5%;而对于64G内存的系统,mem_map[] 本身就会耗尽所有的低端内存,造成系统无法启动 。但是把mem_map[]放到高端内存的做法也不太实际 , 因为mem_map[]和内存管理 , 体系结构相关底层实现,文件系统以及驱动等几乎所有的核心的关键部分均有联系,这时候就需要使用hugemem核心了 。hugemem 核心:与SMP的3G/1G策略不同,hugemem 使用4G/4G分配方式 。可以使核心空间由1G增加到4G , 而用户空间也由3G增加到4G 。相比3G/1G分配策略,对于4G物理内存系统,使用4G/4G分配可以增加低端内存达3倍以上,而对于32G物理内存系统,则会有更多的提升,达到原来的6倍 。理论上,4G/4G策略可以支持物理内存达200G的x86系统(如果硬件没有限制的话) , 即使对于这样的系统,4G/4G策略也能保证留有1G可用的低端内存 。不论能否理解上面的解释,只须要记住 smp 和 hugemem 两个核心,一个是 3G/1G策略 , 一个是4G/4G策略即可 。二、Oracle Database 版本:Oracle SGA 是挂载在内存用户空间中,不同版本的 Oracle Database ,挂载SGA起始地址是不同的:Oracle 10g Release 1:挂载SGA的起始地址为0×50000000(1.25GB)Oracle 10g Release 2:挂载SGA的起始地址为0×20000000(0.5GB)(其它版本未查正 , 有兴趣可以自已看看Oracle手册)从这个结果可以看出,理论上若使用3G/1G的smp核心,Oracle 10g Release 1 的SGA可设置到 3GB - 1.25 = 1.75GB。正是因此 , 也有人认为Oracle SGA 只能设置到 1.75GB 。而升级至 R2 版本,则可以设置到 3GB - 0.5GB = 2.5GB。相同的,使用 4G/4G 的hugemem 核心能够获得多大的SGA 就很清楚了 。
三、kernel shmmax 参数:shmmax定义单个共享内存段的最大值,它的取值范围区间是[0,4294967295], 单位为byte , 4294967295 bytes即4294967296 bytes(4GB)减去1 。一般来说,它应该足够大以容下整个SGA,避免SGA使用多个共享内存段造成Oracle性能下降 。那么 , 将shmmax设置为最大值4294967295,使用 hugmemem 核心,Oracle 10g R2 版本 , 则理论上的SGA最大值为 3.5GB 。尽管用户进程可用的虚拟地址空间为4GB以及shmmax的最大值为4294967295,仍然可以通过使用内存文件系统(in-memory filesystem,比如tmpfs、ramfs以及hugetlbfs)打开Oracle的Very Large Memory (VLM)特性来扩展SGA超过4GB,比如6GB 。但是这种方法有个不方便的地方是 , 用户不能够再使用Oracle 10g中的Automatic Shared Memory Management了 。总结一下:SMP核心和hugemem核心的影响:SMP核心:1GB 3GB,SGA最大值为1.75GB(3GB-1.25GB)Hugemem核心:4GB 4GB,SGA最大值为2.75GB(4GB-1.25GB)Oracle 不同版本的影响:Oracle 10g Release 1:挂载SGA的起始地址为0×50000000(1.25GB)Oracle 10g Release 2:挂载SGA的起始地址为0×20000000(0.5GB)那么:Hugemem 核心Oracle 10g Release 2 ,SGA最大值为3.5GB(4GB-0.5GB)BTW:由于64位系统对应16EB寻址范围,而不是32位系统的4GB,所以想要获得更大SGA,性能更好的效果,应该优先使用 64 位系统,而不是通过32系统配合内存文件系统来配置了 。
oracle怎么调整数据库实例内存假设:oracle安装目录 D:\oracle
数据库的实例名 XXX
内存配置步骤:
1)打开dos,运行
D:\oracle sqlplus /nolog
SQL connect / as sysdba
SQL create pfile from spfile;
SQL shutdown immediate
SQL exit
2)打开文件D:\oracle\ora92\database\INITXXX.ORA
修改以下值并保存:
*.db_cache_size=819m
*.shared_pool_size=256m
*.pga_aggregate_target=256m
*.large_pool_size=64m
【怎么扩大oracle内存 oracle数据库内存调整之增加内存】*.java_pool_size=64m
3)删除文件D:\oracle\ora92\database\SPFILEXXX.ORA
4)打开dos,运行
D:\oracle sqlplus /nolog
SQL connect / as sysdba
SQL startup
SQL create spfile from pfile;
SQL exit
如何扩大oracle的内存oracle 怎么扩大oracle内存的内存可以按照共享和私有怎么扩大oracle内存的角度分为系统全局区和进程全局区怎么扩大oracle内存 , 也就是 SGA和 PGA(process global area or private global area) 。对于 SGA 区域内的内存来说怎么扩大oracle内存,是共享的全局的,在 UNIX 上,必须为 oracle 设置共享内存段(可以是一个或者多个),因为 oracle 在UNIX 上是多进程怎么扩大oracle内存;而在 WINDOWS 上 oracle 是单进程(多个线程) , 所以不用设置共享内存段 。PGA 是属于进程(线程)私有的区域 。在 oracle 使用共享服务器模式下(MTS),PGA中的一部分,也就是 UGA 会被放入共享内存 large_pool_size 中 。
怎么扩大oracle内存的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于oracle数据库内存调整之增加内存、怎么扩大oracle内存的信息别忘了在本站进行查找喔 。

    推荐阅读