在 Ubuntu 12.04 上安装 Oracle 11gR2 Express Edition 时,请按照Linux Ubuntu 11.10 上的 Oracle 11gR2 Express 版本操作指南并且遇到了 Oracle 内存目标问题/dev/shm
(如该指南第 7 节所述),因为/dev/shm
现在默认以符号链接的形式实现,如 Ubuntu 11.10 发行说明中所述/dev/shm
。/run/shm
符号链接与 Oracle 的预期不兼容,这会导致数据库启动时出现 Oracle 错误(ORA-00845:MEMORY_TARGET)。
《Linux Ubuntu 11.10 上的 Oracle 11gR2 Express Edition 操作指南》第 7 节记录了一个启动脚本,/etc/init.d/oracle-shm
该脚本旨在配置/dev/shm
使用 Ubuntu 的/run/shm
,然而这不是在 Ubuntu 12.04 上似乎有预期的效果,但/dev/shm
未按预期安装 - 大概在 11.10 上有效。尽管这已经被注意到并且提出了各种解决方案我选择以稍微不同的方式解决这个问题,即添加一个条目/etc/fstab
并修改/etc/init.d/oracle-shm
脚本,如下所示:
添加共享内存临时文件系统的条目
/etc/fstab
,例如(对于 2 GB 的文件)shm /dev/shm tmpfs size=2g 0 0
更改以下
mount
行/etc/init.d/oracle-shm
:rm -f /dev/shm mkdir /dev/shm mount -B /run/shm /dev/shm
简单地
rm -f /dev/shm mkdir /dev/shm mount /dev/shm
无论如何,所有提出的解决方案都涉及撤消启动时的默认 Ubuntu 行为,首先删除符号链接,然后实现所需的行为。
我希望能够设置共享内存文件系统一劳永逸经过:
添加共享内存临时文件系统的条目
/etc/fstab
,例如(对于 2 GB 的文件)shm /dev/shm tmpfs size=2g 0 0
删除到 /dev/shm 的现有符号链接并以 sudo 身份创建目录。
rm –f /dev/shm mkdir /dev/shm
挂载共享内存临时文件系统
mount /dev/shm
这一切都正常,直到您重新启动,此时从/dev/shm
到的符号链接/run/shm
会重新出现,而不是/dev/shm
作为共享内存临时文件系统安装。
那么问题来了。
/dev/shm
我如何修改 Ubuntu 12.04(&12.10)的默认行为以防止/run/shm
在启动时首先创建符号链接?
操作=显示&重定向=OneiricOcelot/TechnicalOverview#Upgrades
答案1
删除/etc/init/mounted-dev.conf
行
[ -e /dev/shm ] || ln -s /run/shm /dev/shm