我有一个困扰我一年左右的问题。我的机器上安装了Oracle 12.1.x.x.一两天后,监听器停止响应,listener.log包含一堆TNS-12531
消息。如果我重新启动,问题就会消失,我可以再过一两天。我很懒,我讨厌重新启动,所以我决定最终追踪它,但我没有运气。由于替代方案是做我真正不想做的工作,我将把所有时间花在研究上。
一些注意事项:
TRACE_LEVEL_LISTENER = 16
时,我没有得到更多信息。跟踪文件不会写入ORACLE_SID=xxx
并且没有数据库标识符连接),我可以连接到数据库。TNS-12531
以下是listener.log
文件的示例:
Fri Jul 28 14:21:47 2017
System parameter file is D:\app\user\product\12.1.0\dbhome_1\network\admin\listener.ora
Log messages written to D:\app\user\diag\tnslsnr\LJ-Quad\listener\alert\log.xml
Trace information written to D:\app\user\diag\tnslsnr\LJ-Quad\listener\trace\ora_24288_14976.trc
Trace level is currently 16
Started with pid=24288
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=LJ-Quad)(PORT=1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
Listener completed notification to CRS on start
TIMESTAMP * CONNECT DATA [* PROTOCOL INFO] * EVENT [* SID] * RETURN CODE
28-JUL-2017 14:22:06 * 12531
TNS-12531: TNS:cannot allocate memory
28-JUL-2017 14:22:47 * 12531
TNS-12531: TNS:cannot allocate memory
28-JUL-2017 14:26:24 * 12531
TNS-12531: TNS:cannot allocate memory
非常感谢您提供任何帮助!
答案 0 :(得分:1)
在非英语Windows安装上运行时,大约在通过侦听器建立了2048个连接后,可能会发生此错误。
在listener.exe所在的计算机上创建名为 Administrators 的Windows用户组。这可以解决听众死亡的问题。
参考: 我会在找到第一个问题的链接时立即发布
在桌面应用程序堆太小的Windows 64位系统上也会发生此错误。
尝试在位于
中的Windows中增加桌面应用程序堆注册表HKLM\System\CurrentControlSet\Control\Session Manager\SubSystems\Windows
正如请注意,不要自己添加此值,您必须依赖文档。
基本上搜索注册表项并更改键SharedSection=1024,20480,1024
的第三个值。这是一种反复试验的方法,但似乎可以改善听众的稳定性和记忆问题。
参考: TNS:cannot allocate memory - is there limit to the num databases on one box(Oracle开发人员社区)