Situation

I have an Oracle Linux 5.10 with Oracle 11g Standard Edition installed on a VM (virtualbox).

The "harddisk" of this VM is stored on a external disk. This way I can easily re-use my virtualbox on another PC; a laptop in my case. So, I plugged the external disk in my other laptop, created a VM, started the VM, et voila, it all works...

Problem

Then, I started the database, at least, I tried it... but it failed with an "ORA-00845: MEMORY_TARGET not supported on this system."

Cause

The cause is probably that the other laptop has less memory and thus the VM has less memory

Solution

Pretty easy, once you've found it:

Start a terminal and login as root (su)

Check the filesystem

df -h

The output should display a Filesystem tmpfs. The size of that filesystem must be bigger than your MEMORY_TARGET.

The question then is: how big is my MEMORY_TARGET? You can check that easily if your database is started... duh.
My advise, just trial-and-error with the following command (execute as root):

mount -t tmpfs shmfs -o size=1g /dev/shm

once executed, try to start the database. If it fails, increase the size until you have success.

To prevent the error from happening the next time you start the database, add this size to your fstab (etc/fstab).

tmpfs     /dev/shm    tmpfs     size=1g   0   0

Hope this helps, good luck!

Joomla templates by a4joomla