NUMA stands for Non uniform memory access. It is a computer memory design used in multiprocessors, where the memory access time depends on the memory location relative to a processor. Under NUMA, a processor can access its own local memory faster than non-local memory, that is, memory local to another processor or memory shared between processors.
Here's a real world analogy from www.techgalaxy.net:
Imagine that you are baking a cake. You have a group of ingredients (=memory pages) that you need to complete the recipe(=process). Some of the ingredients you may have in your cabinet(=local memory), but some of the ingredients you might not have, and have to ask a neighbor for(=remote memory). The general idea is to try and have as many of the ingredients in your own cabinet as possible, since this reduces your time and effort in making the cake.
You also have to remember that your cabinets can only hold a fixed amount of ingredients(=physical nodal memory). If you try and buy more, but you have no room to store it, you may have to ask your neighbor to keep it in his/her cabinet until you need it(=local memory full, so allocate pages remotely).
Bug # 7171446 (Metalink Note 7171446.8) describes the problem of 10.2.0.4 with NUMA:
In 10.2.0.4 NUMA features are enabled by default and this can lead to a number of unexpected problems such as skewed CPU usage and ORA-600 errors.
Unless the system has been specifically set up and tuned for NUMA then disable Oracle NUMA optimizations by setting the following in the pfile / spfile / init.ora used to start the instances:
Bug # 68680680 (Metalink Note 68680680.8) says:
ORA-4031 can occur when the NUMA option is used due to imbalance between shared pool subpools. Subpool 1 shows memory allocated to "NUMA pool X" where X is a number.
This is fixed in 10.2.0.5. Strangely, patch 68680680 is available for 10.2.0.3 but not for 10.2.0.4.