分享

win2008下安装oracle11gR2后DBCA报ORA

 aaie_ 2017-06-03
我的物理内存有32GB,windows 2008 server,oracle11gR2.

做DBCA的initial parameter分配内存时:
1,典型:oracle总内存只有3072MB,分40%给SGA,PGA。

疑问:为什么oracle总内存只有这么小?

2,定制:按照SGA+PGA最好不要超过总内存的70%,我分别设置SGA:14G,PGA=3G。
但是报ORA-27102: out of memory。

----------以下是我对SGA,PGA的一些收集整理和自己的规划分配,请指教。谢谢。

ORA-27102: out of memory

when running dbca it fails with ORA-27102

solution:
By default, Oracle 10 will allocate 40% of the total system RAM to the SGA and PGA.

On my T2000 with 16GB of RAM this equates to ~6.5GB. Using the value of 4GB for the SHM as stated in the Oracle installation docs is therefore too low. I set the value to 8GB and the database created without problems.

On your 32GB machine, assuming you are using the default 40% allocation, your minimum shared memory requiredment will be ~13GB. Working on the principal of setting it a little higher to get things working (you can always reduce it later), I would set 'project.max-shm-memory' to 16GB and try re-running DBCA.

内存分配原则:

因为我们在数据库服务器会安装二个数据库(不是二个实例):一个生产数据库,一个RMAN备份数据库。
非常有必要对内存进行分配与管理,在用DBCA建库的时候就可以进行选择分配,当然,也可以后续通过命令修改。

总分则:
SGA+PGA最好不要超过总内存的70%,即total_physical_mem*0.7。当然,这个百分比是说这个server只用来做数据库服务器。如果一台服务器有多个应用,则占总内存的百分比可以具体应用设定。
因为我们有二个数据库,我们可以分配如下:
1,生产数据库:(total_physical_mem*0.7)*80%
2,rman备份数据库:(total_physical_mem*0.7)*20%

在OLTP(联机事务处理)系统中,典型PGA内存设置应该是总内存的较小部分(例如20%),剩下80%分配给SGA。 一般来说PGA设置为2G-3G就OK了。
OLTP:PGA_AGGREGATE_TARGET = (oracle_total_mem * 80%) * 20%   [oracle_total_mem:分配给oracle的总内存,即total_physical_mem*0.7]

在DSS(数据集)系统中,由于会运行一些很大的查询,典型的PGA内存最多分配70%的内存。
DSS:PGA_AGGREGATE_TARGET = (oracle_total_mem * 80%) * 50%         [oracle_total_mem:分配给oracle的总内存,即total_physical_mem*0.7]


假设总内存有32GB,那么:
1,生产库
   SGA:32*0.7 {数据库可分配的总内存} * 0.8 {分配给生产库80%} * 0.8 {OLTP分80%给SGA}=32*0.7*0.8*0.8=14.336G=14680M
   PGA: 32*0.7 {数据库可分配的总内存} * 0.8 {分配给生产库80%} * 0.2 {OLTP分20%给SGA}=32*0.7*0.8*0.2=3.584G=3670M
2,rman库
   SGA:32*0.7 {数据库可分配的总内存} * 0.2 {分配给rman库20%} * 0.8 {OLTP分80%给PGA}=32*0.7*0.2*0.8=3.584G=3670M
   PGA: 32*0.7 {数据库可分配的总内存} * 0.2 {分配给rman库20%} * 0.2 {OLTP分20%给PGA}=32*0.7*0.2*0.2=0.896G=917M
   
假设总内存有4GB,那么:
1,生产库
   SGA:4*0.7 {数据库可分配的总内存} * 0.8 {分配给生产库80%} * 0.8 {OLTP分80%给SGA}=4*0.7*0.8*0.8=1.792G=1835M
   PGA: 4*0.7 {数据库可分配的总内存} * 0.8 {分配给生产库80%} * 0.2 {OLTP分20%给SGA}=4*0.7*0.8*0.2=0.448G=458M
2,rman库
   SGA:4*0.7 {数据库可分配的总内存} * 0.2 {分配给rman库20%} * 0.8 {OLTP分80%给PGA}=4*0.7*0.2*0.8=0.448G=458M
   PGA: 4*0.7 {数据库可分配的总内存} * 0.2 {分配给rman库20%} * 0.2 {OLTP分20%给PGA}=4*0.7*0.2*0.2=0.112G=114M

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多