【问题标题】:Periodic tns-12531: TNS: Cannot allocate memory定期 tns-12531:TNS:无法分配内存
【发布时间】:2017-07-28 20:42:14
【问题描述】:

我有一个困扰了我大约一年的问题。我的机器上安装了 Oracle 12.1.x.x。一两天后,侦听器停止响应,并且 listener.log 包含一堆 TNS-12531 消息。如果我重新启动,问题就会消失,我可以再过一两天。我很懒,我讨厌重新启动,所以我决定最终找到这个,但我没有运气。因为另一种选择是做我真的不想做的工作,所以我将把所有的时间都花在研究这个上。

一些注意事项:

  • Windows 10 专业版
  • 64 位
  • 32 GB 内存
  • 一般情况下,发生错误时大约有 20GB 可用空间
  • 我有几个数据库,运行哪个数据库并不重要
  • 重启数据库没有帮助
  • 重新启动监听器没有帮助
  • 只有重新启动才能解决问题
  • 当我设置TRACE_LEVEL_LISTENER = 16 时,我没有得到更多信息。不写入跟踪文件
  • 如果我绕过监听器,我可以连接到数据库(即设置ORACLE_SID=xxx 并在没有数据库标识符的情况下连接)
  • 侦听器停止后,所有其他网络交互似乎都可以正常工作
  • lsnrctl 状态挂起并在 listener.log 中添加另一个 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

非常感谢您提供的任何帮助!

【问题讨论】:

    标签: oracle database-administration


    【解决方案1】:

    问题 1

    在非英语 Windows 安装上运行时,大约在通过侦听器建立 2048 个连接后,可能会发生此错误。

    修复问题 1

    在 listener.exe 所在的计算机上创建一个名为 Administrators 的 Windows 用户组。这可以解决听者死亡的问题。

    参考:我会尽快找到第一期的链接


    问题 2

    此错误也可能发生在 桌面应用程序堆 太小的 Windows 64 位系统上。

    修复问题 2

    尝试在其位于的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 开发者社区)

    【讨论】:

      猜你喜欢
      • 2018-04-27
      • 2017-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-17
      • 1970-01-01
      相关资源
      最近更新 更多