ITPub博客

首页 > 数据库 > Oracle > ORA-24324&ORA-01041重启数据库报错

ORA-24324&ORA-01041重启数据库报错

原创 Oracle 作者:Hoegh 时间:2015-05-20 09:36:37 0 删除 编辑
        昨天在重启数据库时报错,报了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博客 ” ,链接:https://blog.itpub.net/30162081/viewspace-1663282/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2015-03-13

  • 博文量
    132
  • 访问量
    2219934