正常看数据库服务器一共有多少内存,是否还有其他系统或程序在跑。
为华容等地区用户提供了全套网页设计制作服务,及华容网站建设行业解决方案。主营业务为成都做网站、成都网站制作、成都外贸网站建设、华容网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
理论上数据库服务器上除了oracle和相关应用(服务) 外不应有其他操作系统以外的服务了
可以分配全部内存的2/3 到 3/4 给oracle ;oracle自己分配 pga 和 sga 及其内部的内存结构。
内存是影响数据库性能的重要因素,Oracle8i使用静态内存管理,Oracle 10g使用动态内存管理。所谓静态内存管理,就是在数据库系统中,无论是否有用户连接,也无论并发用量大小,只要数据库服务在运行,就会分配固定大小的内存;动态内存管理允许在数据库服务运行时对内存的大小进行修改,读取大数据块时使用大内存,小数据块时使用小内存,读取标准内存块时使用标准内存设置。
vi /etc/sysctl.conf
其中有两个参数:
kernel.shmmax:
是核心参数中最重要的参数之一,用于定义单个共享内存段的最大值。设置应该足够大,能在一个共享内存段下容纳下整个的SGA ,设置的过低可能会导致需要创建多个共享内存段,这样可能导致系统性能的下降。至于导致系统下降的主要原因为在实例启动以及ServerProcess创建的时候,多个小的共享内存段可能会导致当时轻微的系统性能的降低(在启动的时候需要去创建多个虚拟地址段,在进程创建的时候要让进程对多个段进行“识别”,会有一些影响),但是其他时候都不会有影响。
官方建议值:
32位linux系统:可取最大值为4GB(4294967296bytes)-1byte,即4294967295。建议值为多于内存的一半,所以如果是32为系统,一般可取值为4294967295。32位系统对SGA大小有限制,所以SGA肯定可以包含在单个共享内存段中。
64位linux系统:可取的最大值为物理内存值-1byte,建议值为多于物理内存的一半,一般取值大于SGA_MAX_SIZE即可,可以取物理内存-1byte。例如,如果为12GB物理内存,可取12*1024*1024*1024-1=12884901887,SGA肯定会包含在单个共享内存段中。
kernel.shmall:
该参数控制可以使用的共享内存的总页数。Linux共享内存页大小为4KB,共享内存段的大小都是共享内存页大小的整数倍。一个共享内存段的最大大小是16G,那么需要共享内存页数是16GB/4KB=16777216KB /4KB=4194304(页),也就是64Bit系统下16GB物理内存,设置kernel.shmall = 4194304才符合要求(几乎是原来设置2097152的两倍)。这时可以将shmmax参数调整到16G了,同时可以修改SGA_MAX_SIZE和SGA_TARGET为12G(您想设置的SGA最大大小,当然也可以是2G~14G等,还要协调PGA参数及OS等其他内存使用,不能设置太满,比如16G)
我的确是外行。顶多是业余的。不过我还是认为,应该先搞清楚要用多大内存包括如何分配使用 的方案,然后再买 96G 内存服务器,而不是先先买来 96G 内存服务器,然后再考虑如何分配。 否则怎么知道 96G 内存是不够用还是太富裕呢? ....... 版主较真啦,呵呵,大家其实是对这样一个有巨大内存的系统很感兴趣,讨论看看这样利用这样 的系统……采购这么多内存对楼主可能是需要的,目标8000-10000的用户这样的系统,96G内存应 该是用得上的
依据你计算机的内存大小、是否是32位系统、以及你使用oracle环境。
你要注意的是,为oracle分配内存不可以超过1.5G,若服务器物理内存小于2G时,分配比例为60%;大于2G,根据实际情况调整。例如物理内存4G,为oracle分配30%即可(以上是对32位机器的内存说明,64位计算机oracle分配内存没有1.5G限制,可根据实际内存情况分配)。
假如你是自己配制内存,那你按照你的需求合理分配shared pool、 buffor cache、 java pool等大小。
如果你是在一台服务器上建的三个实例。
那么用初始化参数里面的sga_target 10g
或者MEMORY_TARGET 11g来为每个实例设置内存。
如果是一个实例的三个schema,可以用oracle的Resource Manager来为每个schema分配资源。