如果使用Solaris系统缺省的内核参数,会导致创建数据库时出现Out of memory错误。Solaris 10以前的版本是在/etc/system中设置系统
如果使用Solaris系统缺省的内核参数,会导致创建数据库时出现Out of memory错误。
 
Solaris 10以前的版本是在/etc/system中设置系统参数,这种方式在Solaris 10/OpenSolaris中已经不用。
 
取而代之的是基于project的配置方式。
 
a. 修改 /etc/system,在其中添加 (Solaris 10 这种方式已不使用)
 #/etc/system 
set semsys:seminfo_semmni=100 
set semsys:seminfo_semmsl=256 
set shmsys:shminfo_shmmax=4294967295 
set shmsys:shminfo_shmmni=100
 
b. 以root用户身份,添加group.dba项目
#projadd -U Oracle -p 100 group.dba 
 
c. 修改/etc/user_attr,在其中添加 
oracle::::project=group.dba
 
d. 切换到oracle用户环境,用id -p命令检验b、c两步的正确性。 
#su oracle 
$id -p uid=100(oracle) gid=100(dba) projid=100(group.dba) 
注意:如果id -p命令结果是oracle用户的默认project是新建的group.dba,则说明b、c两步操作正确。 
e. 查看项目group.dba的资源配置 
#prctl -n project.max-shm-memory -i project group.dba 
project: 100: oracle NAME PRIVILEGE VALUE FLAG ACTION RECIPIENT project.max-shm-memory privileged 2.00GB - deny 
 
f. 调整项目group.dba的资源分配 
#prctl -n project.max-shm-memory -v 4gb -r -i project group.dba 
#projmod -sK "project.max-shm-memory=(privileged,4294967295,deny)" group.dba 
第一命令动态调整项目group.dba资源配置值,第二命令将调整值写入/etc/project文件中,使系统重启后调整值依然有效。 
 注意:为了调整项目group.dba的资源配置,必须保证系统此时至少有一个会话是以oracle用户身份登录的。
 即为了调整oracle用户的项目group.dba的资源,必须至少另开一个终端,以su oracle切换到oracle用户身份。 
查看调整后的结果: 
#cat /etc/project 
system:0:::: 
user.root:1:::: 
noproject:2:::: 
default:3:::: 
group.staff:10:::: 
group.dba:100::::project.max-shm-memory=(privileged,4294967295,deny) 
#
 
备注:
 shmsys:shminfo_shmmax = 21474838
 // 该参数定义了共享内存段的最大尺寸(以字节为单位)。其值应>=sag_max_size初始化参数的大小,否则SAG由多个内存段构成,效率降低,
 还要不小于物理内存的一半,默认情况下在32位x86系统中,Oracle SGA最大不能超过1.7GB.
 缺省为32M,对于oracle来说,,该缺省值太低了,通常将其设置为2G ,或者一般为物理内存的一半
在CentOS 6.4下安装Oracle 11gR2(x)
Oracle 11gR2 在VMWare虚拟机中安装步骤
Debian 下 安装 Oracle 11g XE R2
本文永久更新链接地址: