ORA-24324&ORA-01041重啟資料庫報錯

Hoegh發表於2015-05-20
        昨天在重啟資料庫時報錯,報了ORA-24324和ORA-01041錯誤,下面還原一下報錯過程以及解決問題的過程。

1.環境準備

我們在Oracle 10g+Windows Server 2008中進行試驗。需要說明的是,伺服器上建立了多個資料庫,因此登陸需要指定服務名。

點選(此處)摺疊或開啟

  1. C:\\Users\\Administrator>sqlplus /@hoegh as sysdba

  2. SQL*Plus: Release 10.2.0.4.0 - Production on 星期二 5月 19 11:25:33 2015

  3. Copyright (c) 1982, 2007, Oracle. All Rights Reserved.


  4. 連線到:
  5. Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
  6. With the Partitioning, OLAP, Data Mining and Real Application Testing options

  7. SQL>
  8. SQL> select * from v$version;

  9. BANNER
  10. ----------------------------------------------------------------
  11. Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
  12. PL/SQL Release 10.2.0.4.0 - Production
  13. CORE 10.2.0.4.0 Production
  14. TNS for 64-bit Windows: Version 10.2.0.4.0 - Production
  15. NLSRTL Version 10.2.0.4.0 - Production

  16. SQL>

2.報錯

首先執行shutdown關閉資料庫,然後執行startup mount重啟資料庫,報了ORA-24324和ORA-01041錯誤。

點選(此處)摺疊或開啟

  1. SQL> shutdown immediate
  2. 資料庫已經關閉。
  3. 已經解除安裝資料庫。
  4. ORACLE 例程已經關閉。
  5. SQL>
  6. SQL>
  7. SQL> startup mount;
  8. ORA-24324: 未初始化服務控制程式碼
  9. ORA-01041: 內部錯誤, hostdef 副檔名不存在
  10. SQL>
然後,我嘗試重新登入sqlplus,依然報了ORA-01041錯誤

點選(此處)摺疊或開啟

  1. SQL>
  2. SQL> exit
  3. 從 Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
  4. With the Partitioning, OLAP, Data Mining and Real Application Testing options 斷開

  5. C:\\Users\\Administrator>sqlplus /@hoegh as sysdba

  6. SQL*Plus: Release 10.2.0.4.0 - Production on 星期三 5月 20 09:28:00 2015

  7. Copyright (c) 1982, 2007, Oracle. All Rights Reserved.

  8. ERROR:
  9. ORA-01041: 內部錯誤, hostdef 副檔名不存在


  10. 請輸入使用者名稱:

3.Trouble-shooting

透過查詢原因,知道這個報錯的本原因是監聽中已經沒有了例項的註冊資訊;可能和多資料庫有關,於是我嘗試指定ORACLE_SID,問題順利解決。

點選(此處)摺疊或開啟

  1. C:\\Users\\Administrator>
  2. C:\\Users\\Administrator>set ORACLE_SID=HOEGH

  3. C:\\Users\\Administrator>sqlplus / as sysdba

  4. SQL*Plus: Release 10.2.0.4.0 - Production on 星期三 5月 20 09:31:03 2015

  5. Copyright (c) 1982, 2007, Oracle. All Rights Reserved.

  6. 已連線到空閒例程。

  7. SQL> startup mount;
  8. ORACLE 例程已經啟動。

  9. Total System Global Area 2415919104 bytes
  10. Fixed Size 2165960 bytes
  11. Variable Size 1767568184 bytes
  12. Database Buffers 637534208 bytes
  13. Redo Buffers 8650752 bytes
  14. 資料庫裝載完畢。
  15. SQL>

4.總結

現在明白這個報錯的根本原因是監聽中已經沒有了例項的註冊資訊,我是透過指定ORACLE_SID,進而提供了例項資訊,順利解決了問題;以上內容只是給大家提供一種解決問題的思路,我看網上也有其他不同的解決辦法,可能是故障場景不盡相同,大家在解決類似問題時都可以參考一下,包括:
1.重啟監聽程式;
2.重啟sqlplus;
3.登陸伺服器本機重啟資料庫;

hoegh
15.05.20
-- The End --

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30162081/viewspace-1663282/,如需轉載,請註明出處,否則將追究法律責任。

相關文章