我正在尝试在具有 64GB 内存的 RHEL 6.4 系统上安装 Oracle 12c。当我尝试将自动内存启用到 48GB 时,我收到错误消息:
我需要更改什么以允许 Oracle 使用超过 32189MB 的空间?
[INS - 35172] 目标数据库内存 (49897MB) 超过了系统上的可用共享内存 (32189MB)。
/etc/sysctl.conf 包含以下内容,所以我不确定为什么它不允许我使用超过 32G 的共享内存
# Controls the maximum shared segment size, in bytes
kernel.shmmax = 68719476736
# Controls the maximum shared segment size, in bytes
#kernel.shmmax = 68719476736
# Controls the maximum number of shared memory segments, in pages
kernel.shmall = 16777216
#kernel.shmall = 1073741824
fs.file-max = 6815744
kernel.msgmni = 2878
kernel.sem = 250 32000 100 142
kernel.shmmni = 4096
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.aio-max-nr = 3145728
net.ipv4.ip_local_port_range = 9000 65500
vm.min_free_kbytes = 51200
fs.file-max = 6815744
limits.conf 包含以下内容:
oracle soft nproc 2047
oracle hard nproc 32768
oracle soft nofile 32768
oracle hard nofile 65536
MEMORY_TARGET 需要具有所需大小的 /dev/shm 文件系统。默认情况下 /dev/shm 大小是系统内存的一半。因此,您必须从以下位置更改线路
/etc/fstab
:类似于:
df -h /dev/shm
将向您显示 tmpfs 大小。为避免编辑后重新启动,/etc/fstab
您可以执行以下操作:但是有了这么多的内存,我会使用 ASMM (SGA_TARGET) 和大页面。特别是如果您将连接许多客户端。管理 48GB 的 4kB 页面的开销将是相当大的。