TNS-12531: TNS: Unable to allocate memory

Record an error in the customer's production environment.

The environment is Windows Server 2008. Oracle listening suddenly fails and cannot be connected externally. Check the logs. The alert_orcl.log reports an error ORA-00600, and the listener.log reports an error TNS-12531: TNS: Unable to allocate memory.

At first, I thought it was caused by the program abnormally occupying a large amount of memory. I restarted and observed for a period of time and the error was reported again. However, the memory usage was only 50%, and the CPU and file handle numbers were otherwise normal.

In the end, it was found that the problem was caused by insufficient shared memory in Windows. Windows could not check the usage of shared memory (this is a pitfall). The cause is that a batch file was accidentally deleted manually. There is a program that regularly executes "start ***.bat" to call this script. When the file does not exist, the start command will retry in an unlimited loop, which ultimately leads to shared memory . Insufficient causes Oracle monitoring exception.

Summarize:

When using start to start a program or script in the Windows environment, be sure to ensure that the path exists (the call command has not been verified), otherwise the resource manager will not be able to detect abnormalities, unlike Linux, which can see the usage of /dev/shm shared memory.

Guess you like

Origin blog.csdn.net/jiujiederoushan/article/details/132869881