Oracle

Oracle Express 間歇性停止響應,需要重新啟動作業系統才能修復

  • May 2, 2018

在過去的 2 天裡,我一直在使用 Oracle XE 時遇到問題,這真的讓我大吃一驚。

發生這種情況或何時發生似乎沒有押韻或原因,但昨天發生了 6 次,今天早上到目前為止發生了兩次。我正在開發一個 .NET 應用程序,有時當我啟動應用程序、刷新頁面或執行任何操作時,我會收到無法與數據庫建立連接的異常。然後我嘗試連接我剛剛得到的 sqlplus:

C:\>sqlplus user/password@localhost

SQL*Plus: Release 11.2.0.2.0 Beta on Wed May 1 11:08:53 2013

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

然後它就永遠坐在那裡。沒有超時,沒有錯誤,什麼都沒有。我也無法連接任何其他數據庫程序,整個伺服器只是沒有響應。

如果我進入服務管理器,我會看到服務確實在執行,所以沒有任何崩潰:

在此處輸入圖像描述

我試過重啟OracleServiceXEOracleXETNSListener. 兩者都將關閉並重新啟動,但是我仍然無法連接到伺服器。

解決此問題的唯一方法是完全重新啟動 Windows。然而,這當然需要 5-10 分鐘,而且真的開始變老了。

此時在 Windows 事件查看器中似乎沒有任何與 Oracle 相關的內容。我很高興添加任何其他有助於調試的資訊。有任何想法嗎?

更新:

我確實注意到listener.log. 這些錯誤與崩潰開始發生的時間完全相同:

30-APR-2013 08:50:42 * 12531
TNS-12531: TNS:cannot allocate memory
Tue Apr 30 08:52:28 2013
30-APR-2013 08:52:28 * 12531
TNS-12531: TNS:cannot allocate memory
Tue Apr 30 08:52:58 2013
30-APR-2013 08:52:58 * 12531
TNS-12531: TNS:cannot allocate memory

最後 1,000 行 alert_XE.log 在這裡

您遇到這些問題是因為您在 64 位 Windows 上執行 32 位版本的 Oracle XE。這不是受支持的配置,並且已知有許多記錄在案的問題。

由於沒有 64 位版本的 XE,您可以從此處安裝標準版(免費開發) 。如果您也在使用 APEX,則可以在此處獲取。

第一期

在非英語 Windows 安裝上執行時,大約在通過偵聽器建立 2048 個連接之後,可能會發生此錯誤。

修復問題 1

在 listener.exe 所在的電腦上創建一個名為**Administrators的 Windows 使用者組。**這可以解決聽者死亡的問題。

***參考:***我一找到第一期的連結就貼出來


第 2 期

此錯誤也可能發生在桌面應用程序堆太小的 Windows 64 位系統上。

修復問題 2

嘗試在其位於的 Windows 中增加桌面應用程序堆系統資料庫

HKLM\System\CurrentControlSet\Control\Session Manager\SubSystems\Windows

就像注意不要自己添加這個值一樣,你必須依賴於文件。

基本上搜尋系統資料庫項並更改 key 的第三個值SharedSection=1024,20480,1024。這是一種反複試驗的方法,但似乎可以改善聽者的穩定性和記憶問題。

參考: TNS:cannot allocate memory - 一個盒子上的數據庫數量是否有限制(Oracle 開發人員社區)

引用自:https://dba.stackexchange.com/questions/41334