我使用 Oracle Enterprise Linux 6.5 和 Oracle Database 11g,当我执行“top”时,会显示此信息
top - 14:08:02 up 5 days, 18:34, 2 users, load average: 0.00, 0.01, 0.05
Tasks: 340 total, 1 running, 331 sleeping, 8 stopped, 0 zombie
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni, 99.9%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 132038392k total, 100871400k used, 31166992k free, 16912k buffers
Swap: 32767996k total, 0k used, 32767996k free, 99462140k cached
我为数据库分配了 70GB 内存,因此当我启动数据库时显示以下错误
ORA-00845: MEMORY_TARGET not supported on this system
然后我执行“vmstat -s”显示以下输出
132038392 total memory
100928456 used memory
278536 active memory
99495304 inactive memory
我意识到我使用的 96GB 内存是非活动内存,然后我使用以下命令释放我的非活动内存
sync && echo 3 > /proc/sys/vm/drop_caches
什么都没有发生,我仍然无法启动数据库,除非我重新启动操作系统我该如何解决这个问题?
答案1
我认为使用下面的命令串来解决这个问题:
首先,写入此内容将导致内核删除干净的缓存,一旦删除,它们的内存就会被释放。
To free pagecache:
echo 1 > /proc/sys/vm/drop_caches
echo 2 > /proc/sys/vm/drop_caches
echo 3 > /proc/sys/vm/drop_caches
如果这个问题没有解决那么你应该这样做:
Now change the value by modifying /etc/sysctl.conf
kernel.shmmax
kernel.shmall
then force the system to activate this setting file without a reboot.
$ sysctl -p
答案2
你能试试这个吗?
[1]下面的命令是手动挂载
安装-t tmpfs shmfs-o 大小=70g /dev/shm
[2] 然后尝试
SQL> startup nomount 如果一切正常,请将以下行添加到 fstab 以使其持久。
“tmpfs /dev/shm tmpfs大小=72g 0 0”
我希望服务器有足够的资源用于数据库和其他进程。