首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 教學

ORA-01012 Not Logged On 診斷與三種恢復方案

     編輯:Oracle 教學

錯誤現象

  • SQLPLUS "/ AS SYSDBA" 登入時缺少版本橫幅,直接進入 SQL> 提示符。
  • CONN / AS SYSDBA 提示 Connected to an idle instance.
  • 其他用戶登入報 ORA-00020: maximum number of processes exceeded。

根因

資料庫實例處於 異常狀態:共享記憶體 (SGA) 存在但背景進程 (PMON/SMON/DBWn/LGWR) 部分或全部消失,導致新連線無法正常附著實例。常見於:

  • 進程數達上限 (PROCESSES 參數) 導致背景進程無法啟動/被 OS 終止。
  • 共享記憶體段被誤刪 (ipcrm)。
  • 主機重啟後 Oracle 服務未正常啟動。

三種恢復方案 (風險由低到高)

方案 1:重啟監聽器 + 修改參數 (最安全,需維護窗口)

sqlplus / as sysdba
SHUTDOWN ABORT;      -- 強制關閉,不檢查一致性
STARTUP;             -- 正常啟動,自動執行執行緒恢復

適用:實例掛起、背景進程異常但 SGA 完整。風險:未提交交易丟失,啟動時需執行執行緒恢復 (時間視 REDO 量)。

方案 3:OS 層面 Kill 背景進程 + STARTUP (高風險,極端情況)

ORA-01012: not logged on
  • 相關錯誤:ORA-12516: listener could not find available handler
    1. 上一篇文章:
    2. 下一篇文章:
    Copyright © 程式碼之家 All Rights Reserved