Whilst installing Oracle 11gR2 Express Edition on Ubuntu 12.04 by following the Oracle 11gR2 Express Edition on Linux Ubuntu 11.10 howto and have encountered the Oracle memory target problem with /dev/shm (as documented in section 7. of that guide) since /dev/shm is now implemented by default as a symbolic link as noted in the Ubuntu 11.10 release notes from /dev/shm to /run/shm. The symbolic link is incompatible with what Oracle expects and this results in an Oracle error (ORA-00845: MEMORY_TARGET) on database startup.
Section 7) of the 'Oracle 11gR2 Express Edition on Linux Ubuntu 11.10 howto' documents a startup script /etc/init.d/oracle-shm that is meant to configure /dev/shm to use Ubuntu’s /run/shm, however this does not appear to have the desired effect on Ubuntu 12.04 and /dev/shm is not mounted as expected - presumably it did work on 11.10. Although this has already been noted and various solutions proposed I chose to work around the problem in a slightly different way by adding an entry to /etc/fstab and modifying the /etc/init.d/oracle-shm script as follows:
Adding an entry for the shared memory temporary file system to
/etc/fstab, say (for a 2 gigabyte file)shm /dev/shm tmpfs size=2g 0 0Changing the
mountline in/etc/init.d/oracle-shmfrom:rm -f /dev/shm mkdir /dev/shm mount -B /run/shm /dev/shmto simply
rm -f /dev/shm mkdir /dev/shm mount /dev/shm
Regardless, all the proposed solutions involve undoing the default Ubuntu behaviour at bootup, by first removing the symbolic link and then implementing the desired behaviour.
I would like to be able to setup the shared memory file system once and for all by:
Adding an entry for the shared memory temporary file system to
/etc/fstab, say (for a 2 gigabyte file)shm /dev/shm tmpfs size=2g 0 0Remove the existing symbolic link to /dev/shm and create as a directory, as sudo.
rm –f /dev/shm mkdir /dev/shmMounting the shared memory temporary file system
mount /dev/shm
This all works fine until you reboot, at which point the symbolic link from /dev/shm to /run/shm re-appears instead of /dev/shm being mounted as a shared memory temporary file system.
Here’s the question then.
How can I modify the default behaviour of Ubuntu 12.04 (& 12.10) to prevent a symbolic link from /dev/shm to /run/shm ever being created in the first place on boot up?
action=show&redirect=OneiricOcelot/TechnicalOverview#Upgrades